Yes, Calcite can do this. In CalciteConnectionProperty [1] there are separate properties QUOTED_CASING and UNQUOTED_CASING. Hopefully you can figure out how to set them.
Julian [1] https://calcite.apache.org/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html > On Dec 18, 2023, at 5:40 AM, Annepu, Sai Sriharsha > <[email protected]> wrote: > > Hello Team, > > We are attempting to use Calcite as a dialect specific SQL string generator / > optimizer for SQL queries systematically generated by Legend data management > platform (https://github.com/finos/legend). > > In this context, I am trying to find if there exists a Calcite parser > configuration which allows case sensitive matching only if the identifier is > quoted, and also record that identifier as a quoted identifier to ensure it > remains the same in the final SQL generated by the dialect. quotedCasing and > unQuotedCasing configurations do help to some extent, but the identifier is > stored without quoting information. > > As an example, in the below SQL, I would like to do case in-sensitive > matching (from schema) for people table and name column but case sensitive > match for date column. Also, post parsing, validation and optimization, the > final SQL should have quotes only for date column - > > SELECT p.name AS name, p."date" AS dt FROM people AS p > > Does any such configuration exist? If it doesn't, can you please provide us > feedback on feasibility of the request and some pointers on where we can get > started if we want to contribute this feature. > > Thanks, > Sriharsha > > ________________________________ > > Your Personal Data: We may collect and process information about you that may > be subject to data protection laws. For more information about how we use and > disclose your personal data, how we protect your information, our legal basis > to use your information, your rights and who you can contact, please refer > to: www.gs.com/privacy-notices<http://www.gs.com/privacy-notices>
