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]

Reply via email to