This is an automated email from the ASF dual-hosted git repository.

discivigour pushed a change to branch feat/blobPara
in repository https://gitbox.apache.org/repos/asf/paimon.git


 discard 295e97466b feat(python): parallelize fallback blob reads
     add d41ec7357f [core] Read primary-key vector results by position (#8576)
     add a50a36ff85 [core] Search primary-key vector indexes (#8579)
     add 3d463ba392 [spark][flink] Support primary-key vector search (#8581)
     add df71005c7c [iceberg] Fix UnsupportedOperationException reading 
multiset columns (#8580)
     add 960cb6a8e9 [filesystem] Fix misleading OBS comment in hadoop-uber 
shade config (#8575)
     add f218528437 [core] Clean up index files on aborted commits (#8572)
     add 6509987c60 [avro] Optimize array in avro (#8567)
     add 8393d28ba2 [python] Reject changing immutable options once a table has 
snapshots (#8565)
     add 3cfaa512cb [core] Mark table 'type' option as immutable (#8564)
     add 73d38b6df3 [fs] Force CVE-patched commons-lang3 and snappy-java in 
hadoop-shaded (#8560)
     add 1b43de297a [fs] Fix GSFileIO to return actual file access time and 
owner (#8559)
     add ee61b54e32 [filesystem] Fix jersey-json typo in hadoop-shaded-3.4 pom 
comment (#8557)
     add 208764a0de [fs] Declare serialVersionUID in COSNLoader for 
Serializable consistency (#8555)
     add 1b821f595e [cosn] Log Hadoop config entries at debug level instead of 
warn (#8554)
     add aa41699e6f [docs] Escape ampersand (&) in config doc generator's 
escapeCharacters (#8552)
     add 2b2904d211 [python] Fix mock REST snapshot serialization (#8546)
     add bb085744d7 [hive] Correct column.name.delimiter (#8545)
     add f797982eb6 [spark] convert EqualTo(NaN) to isNaN in V2 filters (#8542)
     add 450a993e02 [python][ray] Fix HASH_FIXED primary-key writer ownership 
(#8541)
     add 8490f4d5c9 [spark] Reject SET LOCATION for Paimon tables (#8540)
     add fa62f98a7f [spark] Support V2 delta-based row-level operations for 
deletion-vector append tables (#8539)
     add ee50c951fe [common] Fix map equality for binary keys (#8536)
     add 8b51ac5bc6 [codegen] Fix floating point record equaliser semantics 
(#8534)
     add 1379eefb21 [format] Support narrowing Parquet reads (#8505)
     add d7e493341a [Blob] Add some metric when write blob from http. (#8464)
     add 5cfb2cf659 [flink-cdc] Stabilize schema change IT under load (#8585)
     add a7fa5594d3 [codegen-loader] Fix stale dependency comments (#8533)
     add 23da742275 [core] Enforce LIMIT at the table-read level for 
primary-key tables (#8116)
     add 4a2d409f96 [core] Add asynchronous PK vector ANN compaction (#8584)
     add ec1d8ee8ac [hotfix] Fix test error from Limit PR merging
     add 7e396cff87 Add rerank to primary-key vector search (#8591)
     add 26f415a1a2 [core][flink][spark] Support PK-vector indexes for postpone 
buckets (#8594)
     add f87fe0fb07 [core] Generalize source metadata for primary-key indexes 
(#8595)
     add 32e1032128 [docs] Add Variant storage documentation (#8597)
     add 9107d0a6a1 [core] Generalize the primary-key index write lifecycle 
(#8598)
     add f31f199ebc [core] Define scalar primary-key global indexes (#8599)
     add c8a87e9cbd [core] Build source-backed sorted index payloads (#8600)
     add be80abff41 [core] Maintain sorted primary-key index payloads (#8601)
     add 4dddb86aca [core] Wire sorted primary-key indexes into writes (#8602)
     add 55e4358d8e [hotfix] Fix unstable test in 
BucketedSortedIndexMaintainerTest
     add cad041961c [core] add a `deleted_record_count` field in 
PartitionsTable (#8526)
     add 0376c8bb28 [flink][spark] Fix conflict error for no-op file index 
rewrites (#8596)
     add 4fe3cfdd13 [core] Prune primary-key scans and vector search with 
sorted indexes (#8603)
     add d37e503dc1 [global-index-eslib]  integrates the Elasticsearch (Lucene) 
index engine into Paimon's global index system (#8000)
     add 1a44193ec2 [global-index] Fix full-text range selection and 
scalar-filter coverage for multi-field indexes (#8547)
     add e425fb42e8 [spark] Make DeletionVectorTest pass with 
write.use-v2-write enabled (#8614)
     add ee86522053 [core][flink][spark] Support ARRAY<BLOB> blob files (#8181)
     add a910c615ac  [global-index-eslib]use thin packaging and fix pom 
bundle,fix query compatibility and vector metrics, and (#8618)
     add ebac66c717 feat(python): parallelize fallback blob reads
     add 2147be2f40 fix

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (295e97466b)
            \
             N -- N -- N   refs/heads/feat/blobPara (2147be2f40)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 docs/docs/concepts/spec/fileformat.md              |   22 +-
 docs/docs/concepts/system-tables.mdx               |   11 +-
 docs/docs/maintenance/metrics.md                   |   86 +-
 docs/docs/multimodal-table/blob.mdx                |   78 +-
 docs/docs/multimodal-table/index.mdx               |    4 +-
 docs/docs/multimodal-table/variant.mdx             |  251 +++
 docs/docs/primary-key-table/vector-index.md        |  255 +++
 docs/docs/pypaimon/ray-data.md                     |   34 +-
 docs/docs/pypaimon/system-tables.md                |    1 +
 docs/generated/core_configuration.html             |   24 +
 docs/sidebars.js                                   |    1 +
 .../main/java/org/apache/paimon/CoreOptions.java   |  101 +-
 .../java/org/apache/paimon/types/BlobType.java     |   13 +-
 .../benchmark/compact/ArrayCompactBenchmark.java   |  142 ++
 paimon-codegen-loader/pom.xml                      |    4 +-
 .../paimon/codegen/EqualiserCodeGenerator.scala    |   20 +-
 .../apache/paimon/codegen/ScalarOperatorGens.scala |  171 +-
 .../paimon/codegen/EqualiserCodeGeneratorTest.java |  156 ++
 .../apache/paimon/data/BlobArrayPlaceholder.java   |  124 +-
 .../paimon/data/BlobFetchMetricReporter.java       |   42 +-
 .../java/org/apache/paimon/data/InternalRow.java   |    2 +
 .../paimon/globalindex/GlobalIndexEvaluator.java   |   69 +-
 .../paimon/globalindex/UnionGlobalIndexReader.java |    9 +-
 .../apache/paimon/reader/LimitRecordReader.java    |  117 ++
 ...ileRecordReader.java => ScoreRecordReader.java} |    8 +-
 .../org/apache/paimon/utils/InternalRowUtils.java  |   49 +-
 .../globalindex/GlobalIndexEvaluatorTest.java      |  105 +-
 .../TestFullTextGlobalIndexerFactory.java          |   20 +
 .../TestMultiFieldVectorGlobalIndexer.java         |  261 +++
 .../testvector/TestVectorGlobalIndexerFactory.java |   11 +
 .../apache/paimon/utils/InternalRowUtilsTest.java  |   54 +
 .../java/org/apache/paimon/KeyValueFileStore.java  |   24 +-
 .../append/DedicatedFormatRollingFileWriter.java   |    3 +-
 .../paimon/append/MultipleBlobFileWriter.java      |    5 +-
 .../DataEvolutionCompactCoordinator.java           |    4 +-
 .../paimon/globalindex/DataEvolutionBatchScan.java |    6 +-
 .../paimon/globalindex/GlobalIndexCoverage.java    |    3 +
 .../paimon/globalindex/GlobalIndexScanner.java     |   67 +-
 .../apache/paimon/globalindex/IndexedSplit.java    |    8 +-
 .../globalindex/IndexedSplitRecordReader.java      |    3 +-
 .../sorted/SortedGlobalIndexBuilder.java           |   24 +-
 .../sorted/SortedSingleColumnIndexWriter.java      |   87 +
 .../paimon/iceberg/metadata/IcebergDataField.java  |    9 +
 .../org/apache/paimon/index/IndexFileHandler.java  |    5 +
 .../pk/BucketedPrimaryKeyIndexMaintainer.java      |  414 ++++
 .../paimon/index/pk/PrimaryKeyIndexDefinition.java |   51 +-
 .../index/pk/PrimaryKeyIndexDefinitions.java       |  118 ++
 .../PrimaryKeyIndexSourceFile.java}                |   10 +-
 .../PrimaryKeyIndexSourceMeta.java}                |   59 +-
 .../PrimaryKeyIndexSourcePolicy.java}              |    8 +-
 .../pksorted/BucketedSortedIndexMaintainer.java    |  561 ++++++
 .../index/pksorted/PkSortedBucketIndexState.java   |  110 ++
 .../PkSortedDataFileReader.java}                   |   98 +-
 .../index/pksorted/PkSortedIndexBuilder.java       |  179 ++
 .../paimon/index/pksorted/PkSortedIndexFile.java   |  202 ++
 .../paimon/index/pksorted/PkSortedIndexGroup.java  |   79 +
 .../pkvector/BucketedVectorIndexMaintainer.java    |  388 +++-
 .../paimon/index/pkvector/PkVectorAnnLevels.java   |  163 ++
 .../index/pkvector/PkVectorAnnSegmentFile.java     |   18 +-
 .../index/pkvector/PkVectorAnnSegmentSearcher.java |  127 +-
 .../index/pkvector/PkVectorBucketIndexState.java   |   10 +-
 .../pkvector/PrimaryKeyVectorBucketSearch.java     |  168 +-
 .../paimon/operation/AbstractFileStoreWrite.java   |  100 +-
 .../operation/AllPlaceholdersRecordReader.java     |    9 +-
 .../paimon/operation/BaseAppendFileStoreWrite.java |   21 +
 .../paimon/operation/BlobFallbackRecordReader.java |   17 +-
 .../apache/paimon/operation/BlobFileContext.java   |   23 +-
 .../paimon/operation/DataEvolutionSplitRead.java   |    4 +-
 .../paimon/operation/FileStoreCommitImpl.java      |   34 +-
 .../apache/paimon/operation/FileStoreWrite.java    |   10 +-
 .../paimon/operation/FileSystemWriteRestore.java   |   37 +-
 .../paimon/operation/KeyValueFileStoreWrite.java   |    6 +-
 .../paimon/operation/MemoryFileStoreWrite.java     |    6 +-
 .../operation/PrimaryKeyIndexedSplitRead.java      |  121 ++
 .../apache/paimon/operation/RawFileSplitRead.java  |   88 +-
 .../org/apache/paimon/operation/RestoreFiles.java  |   10 +-
 .../org/apache/paimon/operation/WriteRestore.java  |    2 +-
 .../paimon/operation/metrics/BlobFetchMetrics.java |  146 ++
 .../org/apache/paimon/postpone/BucketFiles.java    |    2 +
 .../paimon/privilege/PrivilegedFileStoreTable.java |    6 +
 .../apache/paimon/schema/ColumnDirectiveUtils.java |   43 +-
 .../org/apache/paimon/schema/SchemaManager.java    |   69 +-
 .../org/apache/paimon/schema/SchemaValidation.java |  147 +-
 .../paimon/table/AbstractFileStoreTable.java       |   24 -
 .../paimon/table/AppendOnlyFileStoreTable.java     |   21 +
 .../apache/paimon/table/ChainGroupReadTable.java   |   35 +-
 .../paimon/table/DelegatedFileStoreTable.java      |    5 +
 .../paimon/table/FallbackReadFileStoreTable.java   |    9 +-
 .../org/apache/paimon/table/FileStoreTable.java    |   12 +
 .../org/apache/paimon/table/PostponeUtils.java     |  116 +-
 .../paimon/table/PrimaryKeyFileStoreTable.java     |   16 +
 .../paimon/table/format/FormatTableRead.java       |   48 +-
 ...eBatchScan.java => AbstractBatchTableScan.java} |   70 +-
 .../paimon/table/source/AbstractDataTableScan.java |   43 +-
 .../paimon/table/source/AbstractVectorRead.java    |   84 +-
 .../paimon/table/source/AppendBatchTableScan.java  |   26 +-
 .../table/source/BatchVectorSearchBuilderImpl.java |    2 +-
 .../table/source/BucketVectorSearchSplit.java      |  133 ++
 ...rReadImpl.java => DataEvolutionVectorRead.java} |    6 +-
 ...rScanImpl.java => DataEvolutionVectorScan.java} |   28 +-
 .../paimon/table/source/FullTextReadImpl.java      |   58 +-
 .../paimon/table/source/FullTextScanImpl.java      |  284 ++-
 ...llTextRead.java => GlobalIndexSplitResult.java} |   10 +-
 .../table/source/IndexFullTextSearchSplit.java     |   41 +-
 .../paimon/table/source/KeyValueTableRead.java     |   17 +-
 .../paimon/table/source/PrimaryKeyBatchScan.java   |  171 ++
 .../table/source/PrimaryKeySortedIndexResult.java  |  143 ++
 .../table/source/PrimaryKeySortedIndexScan.java    |  358 ++++
 .../source/PrimaryKeyVectorPositionReader.java     |  106 +
 .../paimon/table/source/PrimaryKeyVectorRead.java  |  640 ++++++
 .../table/source/PrimaryKeyVectorResult.java       |  228 +++
 .../paimon/table/source/PrimaryKeyVectorScan.java  |  299 +++
 .../table/source/VectorSearchBuilderImpl.java      |   20 +-
 .../table/source/VectorSearchRefineOptions.java    |  121 ++
 .../table/source/snapshot/SnapshotReader.java      |    4 +
 .../table/source/snapshot/SnapshotReaderImpl.java  |    5 +
 ...ava => PrimaryKeyIndexedSplitReadProvider.java} |   21 +-
 .../apache/paimon/table/system/AuditLogTable.java  |   35 +-
 .../paimon/table/system/PartitionsTable.java       |   74 +-
 .../paimon/table/system/ReadOptimizedTable.java    |   19 +-
 .../test/java/org/apache/paimon/JavaPyE2ETest.java |   93 +
 .../org/apache/paimon/append/BlobTableTest.java    |  131 ++
 .../globalindex/DataEvolutionBatchScanTest.java    |   12 +-
 .../sorted/SortedGlobalIndexBuilderTest.java       |   36 +
 .../iceberg/metadata/IcebergDataFieldTest.java     |   22 +
 .../pk/BucketedPrimaryKeyIndexMaintainerTest.java  |  351 ++++
 .../index/pk/PrimaryKeyIndexDefinitionsTest.java   |  104 +
 .../index/pk/PrimaryKeyIndexSourceMetaTest.java    |  127 ++
 .../BucketedSortedIndexMaintainerTest.java         |  537 ++++++
 .../pksorted/PkSortedBucketIndexStateTest.java     |  206 ++
 .../PkSortedDataFileReaderTest.java}               |   59 +-
 .../index/pksorted/PkSortedIndexBuilderTest.java   |  294 +++
 .../index/pksorted/PkSortedIndexFileTest.java      |  186 ++
 .../PrimaryKeySortedIndexMaintenanceTest.java      |  396 ++++
 .../pksorted/PrimaryKeySortedIndexOptionsTest.java |   78 +
 .../BucketedVectorIndexMaintainerTest.java         |  593 +++++-
 .../index/pkvector/PkVectorAnnLevelsTest.java      |  141 ++
 .../index/pkvector/PkVectorAnnSegmentFileTest.java |   57 +-
 .../pkvector/PkVectorBucketIndexStateTest.java     |    6 +-
 .../index/pkvector/PkVectorSourceMetaTest.java     |   56 -
 .../pkvector/PrimaryKeyVectorBucketSearchTest.java |  143 +-
 .../operation/BlobFallbackRecordReaderTest.java    |   70 +
 .../paimon/operation/FileStoreCommitTest.java      |   53 +
 .../operation/FileSystemWriteRestoreTest.java      |   43 +-
 .../paimon/operation/PrimaryKeyIndexWriteTest.java |  197 ++
 .../operation/PrimaryKeyIndexedSplitReadTest.java  |   98 +
 .../operation/PrimaryKeyVectorIndexWriteTest.java  |   79 +-
 .../operation/metrics/BlobFetchMetricsTest.java    |   97 +
 .../apache/paimon/postpone/BucketFilesTest.java    |   72 +
 .../paimon/schema/ColumnDirectiveUtilsTest.java    |   63 +-
 .../PrimaryKeySortedIndexValidationTest.java       |  191 ++
 .../PrimaryKeyVectorIndexValidationTest.java       |   59 +-
 .../apache/paimon/schema/SchemaManagerTest.java    |  153 +-
 .../apache/paimon/schema/SchemaValidationTest.java |    9 +-
 .../paimon/table/BtreeGlobalIndexTableTest.java    |   59 +
 .../org/apache/paimon/table/PostponeUtilsTest.java |  106 +
 .../paimon/table/PrimaryKeySimpleTableTest.java    |  229 +++
 .../apache/paimon/table/SchemaEvolutionTest.java   |    3 +-
 .../table/source/FullTextSearchBuilderTest.java    |  225 ++-
 .../source/PrimaryKeySortedIndexBatchScanTest.java |  243 +++
 .../source/PrimaryKeySortedIndexReadTest.java      |  149 ++
 .../source/PrimaryKeySortedIndexResultTest.java    |  287 +++
 .../source/PrimaryKeySortedIndexScanTest.java      |  368 ++++
 .../source/PrimaryKeyVectorPositionReaderTest.java |  197 ++
 .../PrimaryKeyVectorRawFileSplitReadTest.java      |  108 ++
 .../table/source/PrimaryKeyVectorReadTest.java     |   58 +
 .../table/source/PrimaryKeyVectorResultTest.java   |   96 +
 .../table/source/PrimaryKeyVectorScanTest.java     |  289 +++
 .../table/source/PrimaryKeyVectorSearchTest.java   |  306 +++
 .../apache/paimon/table/source/ScanBucketTest.java |   37 +-
 .../apache/paimon/table/source/TableScanTest.java  |   16 +
 .../table/source/VectorSearchBuilderTest.java      |  144 +-
 .../source/VectorSearchRefineOptionsTest.java      |  112 ++
 .../paimon/table/system/AuditLogTableTest.java     |  155 ++
 .../paimon/table/system/PartitionsTableTest.java   |  105 +
 .../apache/paimon/tag/BatchReadTagCreatorTest.java |   11 +-
 .../java/org/apache/paimon/docs/util/Utils.java    |    1 +
 .../org/apache/paimon/docs/util/UtilsTest.java     |   32 +-
 paimon-eslib/README.md                             |  221 +++
 paimon-eslib/pom.xml                               |  124 ++
 .../paimon/eslib/index/ESIndexBuilderFactory.java  |   28 +-
 .../apache/paimon/eslib/index/ESIndexFileMeta.java |  382 ++++
 .../eslib/index/ESIndexGlobalIndexReader.java      | 1953 +++++++++++++++++++
 .../eslib/index/ESIndexGlobalIndexWriter.java      |  629 ++++++
 .../paimon/eslib/index/ESIndexGlobalIndexer.java   |  111 ++
 .../eslib/index/ESIndexGlobalIndexerFactory.java   |   28 +-
 .../apache/paimon/eslib/index/ESIndexOptions.java  |  643 +++++++
 ....apache.paimon.globalindex.GlobalIndexerFactory |    2 +-
 .../paimon/eslib/index/ESIndexFileMetaTest.java    |  365 ++++
 .../index/ESIndexFullTextQueryParserTest.java      |  152 ++
 .../eslib/index/ESIndexGlobalIndexE2ETest.java     | 2034 ++++++++++++++++++++
 .../index/ESIndexGlobalIndexReaderDebugTest.java   |   82 +
 .../index/ESIndexGlobalIndexerExecutorTest.java    |   92 +
 .../paimon/eslib/index/ESIndexOptionsTest.java     |  403 ++++
 .../eslib/index/ESIndexVectorMetricTest.java       |  162 ++
 .../java/org/apache/paimon/cosn/COSNFileIO.java    |    2 +-
 .../java/org/apache/paimon/cosn/COSNLoader.java    |    3 +
 .../apache/paimon/gs/HadoopCompliantFileIO.java    |   10 +
 .../paimon-hadoop-shaded-3.4/pom.xml               |    2 +-
 paimon-filesystems/paimon-hadoop-shaded/pom.xml    |   12 +
 paimon-filesystems/paimon-hadoop-uber/pom.xml      |    2 +-
 .../cdc/mysql/MySqlSyncDatabaseActionITCase.java   |    5 +
 .../paimon/flink/AbstractFlinkTableFactory.java    |   30 +-
 .../java/org/apache/paimon/flink/FlinkCatalog.java |   26 +-
 .../apache/paimon/flink/FlinkRowDataWithBlob.java  |   34 +-
 .../org/apache/paimon/flink/FlinkRowWrapper.java   |   42 +-
 .../apache/paimon/flink/LogicalTypeConversion.java |   32 +-
 .../apache/paimon/flink/action/CompactAction.java  |  116 +-
 .../flink/action/DataEvolutionMergeIntoAction.java |    5 +-
 .../flink/lookup/FileStoreLookupFunction.java      |   20 +-
 .../paimon/flink/lookup/FullCacheLookupTable.java  |   12 +-
 .../postpone/PostponeBucketCompactOperator.java    |  134 ++
 .../postpone/PostponeBucketCompactSplitSource.java |   44 +-
 .../paimon/flink/sink/RewriteFileIndexSink.java    |    3 +
 .../flink/source/FileStoreSourceSplitReader.java   |    8 +-
 .../org/apache/paimon/flink/BlobTableITCase.java   |  124 ++
 .../paimon/flink/FlinkRowDataWithBlobTest.java     |   98 +
 .../paimon/flink/KeyValueTableReadLimitITCase.java |  110 ++
 .../org/apache/paimon/flink/LookupJoinITCase.java  |   67 +
 .../org/apache/paimon/flink/ScanBucketITCase.java  |   48 -
 .../action/DataEvolutionMergeIntoActionITCase.java |   84 +-
 .../PostponeBucketCompactSplitSourceTest.java      |   57 +
 .../procedure/RewriteFileIndexProcedureITCase.java |    9 +
 .../procedure/VectorSearchProcedureITCase.java     |  205 ++
 .../coordinator/TableWriteCoordinatorTest.java     |   10 +-
 .../apache/paimon/format/avro/AvroBytesArray.java  |  380 ++++
 .../paimon/format/avro/FieldReaderFactory.java     |   17 +-
 .../paimon/format/avro/FieldWriterFactory.java     |   36 +
 .../apache/paimon/format/blob/BlobFileFormat.java  |   35 +-
 .../paimon/format/blob/BlobFormatReader.java       |  160 +-
 .../paimon/format/blob/BlobFormatWriter.java       |  249 ++-
 .../reader/ParquetVectorUpdaterFactory.java        |   85 +-
 .../paimon/format/avro/AvroBytesArrayTest.java     |  335 ++++
 .../paimon/format/blob/BlobFileFormatTest.java     |  206 ++
 .../paimon/format/blob/BlobFormatWriterTest.java   |  304 ++-
 .../reader/FileTypeNotMatchReadTypeTest.java       |   78 +
 .../paimon/hive/mapred/PaimonRecordReader.java     |    2 +-
 paimon-python/dev/run_mixed_tests.sh               |   53 +-
 .../pypaimon/common/options/core_options.py        |   30 +-
 paimon-python/pypaimon/daft/daft_blob.py           |   42 +
 paimon-python/pypaimon/daft/daft_datasource.py     |   69 +-
 paimon-python/pypaimon/multimodal/blob_store.py    |    3 +-
 paimon-python/pypaimon/multimodal/query.py         |    3 +-
 paimon-python/pypaimon/multimodal/table.py         |    4 +-
 paimon-python/pypaimon/ray/ray_paimon.py           |   38 +-
 paimon-python/pypaimon/ray/shuffle.py              |   20 +-
 paimon-python/pypaimon/ray/update_by_row_id.py     |    3 +-
 .../pypaimon/read/reader/concat_batch_reader.py    |   68 +-
 .../pypaimon/read/reader/format_blob_reader.py     |  249 ++-
 .../pypaimon/schema/column_directive_utils.py      |   32 +-
 paimon-python/pypaimon/schema/data_types.py        |   28 +-
 paimon-python/pypaimon/schema/schema_manager.py    |  117 +-
 .../pypaimon/snapshot/snapshot_manager.py          |   70 +-
 paimon-python/pypaimon/table/row/blob.py           |    9 +
 .../pypaimon/table/system/partitions_table.py      |   42 +
 paimon-python/pypaimon/tests/blob_table_test.py    |  229 ++-
 paimon-python/pypaimon/tests/blob_test.py          |  513 ++++-
 .../pypaimon/tests/column_directive_utils_test.py  |   25 +
 .../pypaimon/tests/daft/daft_blob_test.py          |   27 +-
 .../pypaimon/tests/daft/daft_explain_test.py       |   33 +
 .../pypaimon/tests/daft/daft_sink_test.py          |   54 +
 paimon-python/pypaimon/tests/data_types_test.py    |   15 +
 .../pypaimon/tests/e2e/java_py_read_write_test.py  |   74 +
 .../pypaimon/tests/filesystem_catalog_test.py      |  132 ++
 .../pypaimon/tests/ray_read_by_row_id_test.py      |   20 +-
 .../pypaimon/tests/ray_repartition_test.py         |  101 +
 .../rest/rest_catalog_commit_snapshot_test.py      |   29 +
 paimon-python/pypaimon/tests/rest/rest_server.py   |   18 +-
 .../pypaimon/tests/schema_manager_test.py          |   60 +
 .../pypaimon/tests/snapshot_manager_test.py        |   63 +-
 .../pypaimon/tests/system/partitions_table_test.py |   67 +-
 paimon-python/pypaimon/write/blob_format_writer.py |  186 +-
 paimon-python/pypaimon/write/file_store_write.py   |    8 +-
 paimon-python/pypaimon/write/ray_datasink.py       |  120 ++
 paimon-python/pypaimon/write/row_utils.py          |   23 +-
 .../pypaimon/write/table_update_by_row_id.py       |   27 +-
 paimon-python/pypaimon/write/table_write.py        |   17 +-
 .../pypaimon/write/writer/blob_file_writer.py      |   42 +-
 paimon-python/pypaimon/write/writer/blob_writer.py |    2 +-
 .../write/writer/dedicated_format_writer.py        |   65 +-
 .../scala/org/apache/paimon/spark/SparkTable.scala |    2 +
 .../scala/org/apache/paimon/spark/SparkTable.scala |    2 +
 .../scala/org/apache/paimon/spark/SparkTable.scala |    2 +
 .../MergeIntoPaimonDataEvolutionTable.scala        |   48 +-
 .../spark/write/PaimonDeltaBatchWrite.scala}       |   31 +-
 .../apache/spark/sql/paimon/shims/Spark4Shim.scala |   10 +-
 .../paimon/spark/AbstractSparkInternalRow.java     |   14 +-
 .../org/apache/paimon/spark/DataConverter.java     |   19 +-
 .../java/org/apache/paimon/spark/SparkCatalog.java |   32 +-
 .../paimon/spark/SparkInternalRowWrapper.java      |   60 +-
 .../java/org/apache/paimon/spark/SparkRow.java     |   26 +-
 .../spark/procedure/RewriteFileIndexProcedure.java |    3 +
 ...Impl.java => SparkDataEvolutionVectorRead.java} |   10 +-
 .../spark/read/SparkPrimaryKeyVectorRead.java      |  133 ++
 .../spark/read/SparkVectorSearchBuilderImpl.java   |    9 +-
 .../org/apache/paimon/spark/PaimonBaseScan.scala   |    2 +-
 .../org/apache/paimon/spark/PaimonMetrics.scala    |   10 +
 .../paimon/spark/PaimonRecordReaderIterator.scala  |    5 +-
 .../apache/paimon/spark/PaimonScanBuilder.scala    |    5 +
 .../apache/paimon/spark/PaimonSparkTableBase.scala |   19 +-
 .../scala/org/apache/paimon/spark/SparkTable.scala |   49 +-
 .../paimon/spark/SparkV2FilterConverter.scala      |   13 +-
 .../spark/catalyst/analysis/PaimonAnalysis.scala   |    4 +
 .../spark/commands/DataEvolutionPaimonWriter.scala |    5 +-
 .../MergeIntoPaimonDataEvolutionTable.scala        |   48 +-
 .../apache/paimon/spark/data/SparkArrayData.scala  |   63 +-
 .../paimon/spark/data/SparkInternalRow.scala       |    4 +-
 .../procedure/SparkPostponeCompactProcedure.scala  |  231 ++-
 .../spark/rowops/PaimonSparkDeltaOperation.scala   |   84 +
 .../paimon/spark/schema/PaimonMetadataColumn.scala |    9 +-
 .../spark/write/DataEvolutionTableDataWrite.scala  |   18 +-
 .../paimon/spark/write/PaimonBatchWriteBase.scala  |   26 +-
 .../paimon/spark/write/PaimonDeltaWrite.scala      |   77 +
 .../paimon/spark/write/PaimonDeltaWriteBase.scala  |  225 +++
 .../PaimonDeltaWriteBuilder.scala}                 |   40 +-
 .../paimon/spark/write/PaimonDeltaWriter.scala     |  150 ++
 .../apache/paimon/spark/write/WriteHelper.scala    |   21 +
 .../apache/spark/sql/paimon/shims/SparkShim.scala  |   13 +
 ....java => SparkDataEvolutionVectorReadTest.java} |   10 +-
 .../procedure/RewriteFileIndexProcedureTest.scala  |    7 +
 .../read/BatchReadTagConcurrentExpireTest.scala    |    4 +-
 .../org/apache/paimon/spark/sql/BlobTestBase.scala |  211 +-
 .../paimon/spark/sql/BlobUpdateTestBase.scala      |   21 +
 .../org/apache/paimon/spark/sql/DDLTestBase.scala  |   15 +
 .../paimon/spark/sql/DeletionVectorTest.scala      |   76 +-
 .../paimon/spark/sql/DeltaRowLevelOpsTest.scala    |  302 +++
 .../apache/paimon/spark/sql/PaimonMetricTest.scala |   31 +
 .../spark/sql/PrimaryKeyVectorSearchTest.scala     |  380 ++++
 .../spark/sql/SparkV2FilterConverterTestBase.scala |   32 +
 .../paimon/spark/sql/VectorSearchOptionsTest.scala |    9 +
 .../spark/data/Spark3InternalRowWithBlob.scala     |    2 +
 .../PaimonDeltaBatchWrite.scala}                   |   28 +-
 .../apache/spark/sql/paimon/shims/Spark3Shim.scala |   10 +-
 .../spark/data/Spark4InternalRowWithBlob.scala     |    2 +
 .../spark/write/PaimonDeltaBatchWrite.scala}       |   32 +-
 .../catalyst/analysis/PureAppendOnlyScope.scala    |   22 +-
 .../analysis/Spark41DeleteMetadataRestore.scala    |   34 +-
 .../analysis/Spark41MergeIntoRewrite.scala         |  191 +-
 .../analysis/Spark41UpdateTableRewrite.scala       |   77 +-
 .../apache/spark/sql/paimon/shims/Spark4Shim.scala |   10 +-
 pom.xml                                            |   15 +
 341 files changed, 32205 insertions(+), 1957 deletions(-)
 create mode 100644 docs/docs/multimodal-table/variant.mdx
 create mode 100644 docs/docs/primary-key-table/vector-index.md
 create mode 100644 
paimon-benchmark/paimon-micro-benchmarks/src/test/java/org/apache/paimon/benchmark/compact/ArrayCompactBenchmark.java
 copy paimon-core/src/main/java/org/apache/paimon/utils/PartialRow.java => 
paimon-common/src/main/java/org/apache/paimon/data/BlobArrayPlaceholder.java 
(53%)
 copy 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/source/ReaderConsumeProgressEvent.java
 => 
paimon-common/src/main/java/org/apache/paimon/data/BlobFetchMetricReporter.java 
(52%)
 create mode 100644 
paimon-common/src/main/java/org/apache/paimon/reader/LimitRecordReader.java
 copy 
paimon-common/src/main/java/org/apache/paimon/reader/{FileRecordReader.java => 
ScoreRecordReader.java} (81%)
 create mode 100644 
paimon-common/src/test/java/org/apache/paimon/globalindex/testvector/TestMultiFieldVectorGlobalIndexer.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/globalindex/sorted/SortedSingleColumnIndexWriter.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pk/BucketedPrimaryKeyIndexMaintainer.java
 copy 
paimon-hive/paimon-hive-catalog/src/main/java/org/apache/paimon/hive/HiveCatalogLockContext.java
 => 
paimon-core/src/main/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinition.java
 (53%)
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinitions.java
 rename 
paimon-core/src/main/java/org/apache/paimon/index/{pkvector/PkVectorSourceFile.java
 => pk/PrimaryKeyIndexSourceFile.java} (84%)
 rename 
paimon-core/src/main/java/org/apache/paimon/index/{pkvector/PkVectorSourceMeta.java
 => pk/PrimaryKeyIndexSourceMeta.java} (52%)
 rename 
paimon-core/src/main/java/org/apache/paimon/index/{pkvector/PkVectorSourcePolicy.java
 => pk/PrimaryKeyIndexSourcePolicy.java} (85%)
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pksorted/BucketedSortedIndexMaintainer.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pksorted/PkSortedBucketIndexState.java
 copy 
paimon-core/src/main/java/org/apache/paimon/index/{pkvector/PkVectorDataFileReader.java
 => pksorted/PkSortedDataFileReader.java} (59%)
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pksorted/PkSortedIndexBuilder.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pksorted/PkSortedIndexFile.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pksorted/PkSortedIndexGroup.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/index/pkvector/PkVectorAnnLevels.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/operation/PrimaryKeyIndexedSplitRead.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/operation/metrics/BlobFetchMetrics.java
 rename 
paimon-core/src/main/java/org/apache/paimon/table/source/{DataTableBatchScan.java
 => AbstractBatchTableScan.java} (85%)
 copy 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/sink/cdc/CdcRecordChannelComputer.java
 => 
paimon-core/src/main/java/org/apache/paimon/table/source/AppendBatchTableScan.java
 (59%)
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/BucketVectorSearchSplit.java
 rename 
paimon-core/src/main/java/org/apache/paimon/table/source/{VectorReadImpl.java 
=> DataEvolutionVectorRead.java} (96%)
 rename 
paimon-core/src/main/java/org/apache/paimon/table/source/{VectorScanImpl.java 
=> DataEvolutionVectorScan.java} (89%)
 copy 
paimon-core/src/main/java/org/apache/paimon/table/source/{FullTextRead.java => 
GlobalIndexSplitResult.java} (79%)
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeyBatchScan.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeySortedIndexResult.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeySortedIndexScan.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeyVectorPositionReader.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeyVectorRead.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeyVectorResult.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/PrimaryKeyVectorScan.java
 create mode 100644 
paimon-core/src/main/java/org/apache/paimon/table/source/VectorSearchRefineOptions.java
 copy 
paimon-core/src/main/java/org/apache/paimon/table/source/splitread/{RawFileSplitReadProvider.java
 => PrimaryKeyIndexedSplitReadProvider.java} (63%)
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pk/BucketedPrimaryKeyIndexMaintainerTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinitionsTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pk/PrimaryKeyIndexSourceMetaTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pksorted/BucketedSortedIndexMaintainerTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSortedBucketIndexStateTest.java
 copy 
paimon-core/src/test/java/org/apache/paimon/index/{pkvector/PkVectorDataFileReaderTest.java
 => pksorted/PkSortedDataFileReaderTest.java} (74%)
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSortedIndexBuilderTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSortedIndexFileTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pksorted/PrimaryKeySortedIndexMaintenanceTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pksorted/PrimaryKeySortedIndexOptionsTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pkvector/PkVectorAnnLevelsTest.java
 delete mode 100644 
paimon-core/src/test/java/org/apache/paimon/index/pkvector/PkVectorSourceMetaTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/operation/PrimaryKeyIndexWriteTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/operation/PrimaryKeyIndexedSplitReadTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/operation/metrics/BlobFetchMetricsTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/postpone/BucketFilesTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/schema/PrimaryKeySortedIndexValidationTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeySortedIndexBatchScanTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeySortedIndexReadTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeySortedIndexResultTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeySortedIndexScanTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeyVectorPositionReaderTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeyVectorRawFileSplitReadTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeyVectorReadTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeyVectorResultTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeyVectorScanTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/PrimaryKeyVectorSearchTest.java
 create mode 100644 
paimon-core/src/test/java/org/apache/paimon/table/source/VectorSearchRefineOptionsTest.java
 copy 
paimon-common/src/test/java/org/apache/paimon/globalindex/sorted/SortedIndexOptionsTest.java
 => paimon-docs/src/test/java/org/apache/paimon/docs/util/UtilsTest.java (55%)
 create mode 100644 paimon-eslib/README.md
 create mode 100644 paimon-eslib/pom.xml
 copy 
paimon-format/src/main/java/org/apache/paimon/format/parquet/writer/MetadataParquetBuilder.java
 => 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexBuilderFactory.java
 (54%)
 create mode 100644 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexFileMeta.java
 create mode 100644 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexReader.java
 create mode 100644 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexWriter.java
 create mode 100644 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexer.java
 copy 
paimon-common/src/test/java/org/apache/paimon/globalindex/testfulltext/TestFullTextGlobalIndexerFactory.java
 => 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexerFactory.java
 (57%)
 create mode 100644 
paimon-eslib/src/main/java/org/apache/paimon/eslib/index/ESIndexOptions.java
 copy 
paimon-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
 => 
paimon-eslib/src/main/resources/META-INF/services/org.apache.paimon.globalindex.GlobalIndexerFactory
 (93%)
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexFileMetaTest.java
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexFullTextQueryParserTest.java
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexE2ETest.java
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexReaderDebugTest.java
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexGlobalIndexerExecutorTest.java
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexOptionsTest.java
 create mode 100644 
paimon-eslib/src/test/java/org/apache/paimon/eslib/index/ESIndexVectorMetricTest.java
 create mode 100644 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/postpone/PostponeBucketCompactOperator.java
 create mode 100644 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/FlinkRowDataWithBlobTest.java
 create mode 100644 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/KeyValueTableReadLimitITCase.java
 create mode 100644 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/postpone/PostponeBucketCompactSplitSourceTest.java
 create mode 100644 
paimon-format/src/main/java/org/apache/paimon/format/avro/AvroBytesArray.java
 create mode 100644 
paimon-format/src/test/java/org/apache/paimon/format/avro/AvroBytesArrayTest.java
 copy 
paimon-spark/{paimon-spark3-common/src/main/scala/org/apache/paimon/spark/format/FormatTableBatchWrite.scala
 => 
paimon-spark-4.0/src/main/scala/org/apache/paimon/spark/write/PaimonDeltaBatchWrite.scala}
 (58%)
 rename 
paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/read/{SparkVectorReadImpl.java
 => SparkDataEvolutionVectorRead.java} (97%)
 create mode 100644 
paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/read/SparkPrimaryKeyVectorRead.java
 create mode 100644 
paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/rowops/PaimonSparkDeltaOperation.scala
 create mode 100644 
paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/write/PaimonDeltaWrite.scala
 create mode 100644 
paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/write/PaimonDeltaWriteBase.scala
 copy 
paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/{commands/WithFileStoreTable.scala
 => write/PaimonDeltaWriteBuilder.scala} (55%)
 create mode 100644 
paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/write/PaimonDeltaWriter.scala
 rename 
paimon-spark/paimon-spark-common/src/test/java/org/apache/paimon/spark/read/{SparkVectorReadImplTest.java
 => SparkDataEvolutionVectorReadTest.java} (97%)
 create mode 100644 
paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/DeltaRowLevelOpsTest.scala
 create mode 100644 
paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/PrimaryKeyVectorSearchTest.scala
 copy 
paimon-spark/paimon-spark3-common/src/main/scala/org/apache/paimon/spark/{format/FormatTableBatchWrite.scala
 => write/PaimonDeltaBatchWrite.scala} (64%)
 copy 
paimon-spark/{paimon-spark3-common/src/main/scala/org/apache/paimon/spark/format/FormatTableBatchWrite.scala
 => 
paimon-spark4-common/src/main/scala/org/apache/paimon/spark/write/PaimonDeltaBatchWrite.scala}
 (59%)


Reply via email to