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]

Reply via email to