Pandas886 opened a new issue, #527: URL: https://github.com/apache/paimon-rust/issues/527
### Bug The filesystem catalog checks database and table paths with `FileIO::exists()`. On S3-compatible storage this becomes a HEAD request for the exact key, but an existing Paimon warehouse often contains only objects below that prefix and no directory marker. This can produce inconsistent results: - `list_databases()` finds a database prefix, while `get_database()` or `list_tables()` returns `DatabaseNotExist`. - A table with valid schema files can be listed but `get_table()` returns `TableNotExist`. - A directory without any schema file can be exposed by `list_tables()` as if it were a table. ### Reproduction Create or copy a Paimon warehouse to an S3-compatible store without directory marker objects, then open it with `FileSystemCatalog`. A layout such as: ```text warehouse/db.db/table/schema/schema-0 warehouse/db.db/table/data/data-file ``` has no objects named `warehouse/db.db/` or `warehouse/db.db/table/`. Listing sees the prefixes, but an exact existence check does not. ### Expected behavior Database paths should use directory semantics so markerless prefixes are recognized. A table should exist only when it has a valid `schema-*` file, and `list_tables()` should filter incomplete directories. This matches the Java filesystem catalog behavior. ### Proposed fix Add a directory-aware existence check in `FileIO`, use it for databases, and use schema files to determine table existence. I am willing to submit a PR. -- 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]
