shyjsarah opened a new pull request, #7400: URL: https://github.com/apache/paimon/pull/7400
<!-- Please specify the module before the PR name: [core] ... or [flink] ... --> ### Purpose This PR implements the Python version of ObjectTable, which provides metadata indexes for unstructured data objects (files) in a directory. The implementation mirrors the Java ObjectTableImpl design: ObjectTable is a read-only table with a fixed schema: path, name, length, mtime, atime, owner Scan produces exactly one split (the entire location directory) Read recursively enumerates all files under the location and returns their metadata as a PyArrow Table Supports projection (column selection) and limit (row count) Write operations (new_batch_write_builder, new_stream_write_builder) raise NotImplementedError New files: paimon-python/pypaimon/table/object/object_table.py — ObjectTable class paimon-python/pypaimon/table/object/object_split.py — ObjectSplit dataclass paimon-python/pypaimon/table/object/object_read_builder.py — ObjectReadBuilder paimon-python/pypaimon/table/object/object_table_scan.py — ObjectTableScan paimon-python/pypaimon/table/object/object_table_read.py — ObjectTableRead paimon-python/pypaimon/table/object/__init__.py — module exports Modified files: paimon-python/pypaimon/catalog/rest/rest_catalog.py — added object-table type routing, _create_object_table() factory method, and ObjectTable to drop_partitions type check <!-- What is the purpose of the change --> ### Tests <!-- List UT and IT cases to verify this change --> RESTObjectTableTest.test_get_object_table — verifies table creation and metadata RESTObjectTableTest.test_object_table_read_files — writes files to location, reads and verifies file metadata RESTObjectTableTest.test_object_table_read_with_subdirectories — verifies recursive directory traversal RESTObjectTableTest.test_object_table_with_projection — verifies column projection RESTObjectTableTest.test_object_table_with_limit — verifies row limit RESTObjectTableTest.test_object_table_options_and_copy — verifies options propagation and copy merge RESTObjectTableTest.test_object_table_unsupported_write — verifies write raises NotImplementedError RESTObjectTableTest.test_object_table_unsupported_drop_partitions — verifies drop_partitions raises ValueError RESTObjectTableTest.test_object_table_to_pandas — verifies to_pandas conversion ### API and Format <!-- Does this change affect API or storage format --> ### Documentation <!-- Does this change introduce a new feature --> ### Generative AI tooling <!-- If generative AI tooling has been used in the process of authoring this patch, please include the phrase: 'Generated-by: ' followed by the name of the tool and its version. If no, write 'No'. Please refer to the [ASF Generative Tooling Guidance](https://www.apache.org/legal/generative-tooling.html) for details. --> Generated-by: Aone Copilot -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
