JunRuiLee opened a new issue, #495:
URL: https://github.com/apache/paimon-rust/issues/495

   ### Motivation
   
   Spark + Java Paimon already support **case-insensitive column matching** on 
reads: with `spark.sql.caseSensitive = false` (Spark's default), Catalyst 
resolves projection and filter column references case-insensitively and 
normalizes them to the schema's field names before pushing down to the 
connector.
   
   The Rust implementation (`paimon-rust`) has no equivalent — projection and 
predicate column resolution are always exact-case. Engines that read Paimon 
through the Rust core / C bindings / DataFusion / Python (e.g. Apache Doris) 
therefore cannot offer the case-insensitive behavior users get from Spark. A 
user querying `SELECT NAME` or `WHERE NAME = ...` against a schema field `name` 
fails, even though the same query works via Spark.
   
   ### Proposal
   
   Add a `case-sensitive` table option (default `true`, matching Java Paimon 
and preserving today's exact-match behavior). When set to `false`, column-name 
resolution on the **read path** matches by ASCII case-folding and reports an 
error when a name is ambiguous (multiple schema fields collide under folding), 
mirroring Spark's `AMBIGUOUS` behavior. This lets a reader control, per table, 
whether column matching ignores case.
   
   Scope (read path, top-level columns):
   - Core projection resolution and `PredicateBuilder`.
   - DataFusion filter pushdown (translation + `supports_filters_pushdown` 
classification).
   - Python `with_filter` predicate conversion.
   - C binding predicate construction (used by Doris and the Go binding).
   
   Out of scope for the initial change:
   - Nested/dotted column paths (top-level only).
   - The `_ROW_ID` system column stays an exact reserved name.
   - Write path / DDL.
   
   ### Notes
   
   Default stays `true`, so existing behavior is unchanged unless a table 
explicitly opts in with `case-sensitive = false`.


-- 
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