[ 
https://issues.apache.org/jira/browse/IGNITE-25173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Dmitrienko resolved IGNITE-25173.
------------------------------------------
    Resolution: Not A Problem

The behavior is expected.

> System object names are auto-capitalized, leading to unexpected query behavior
> ------------------------------------------------------------------------------
>
>                 Key: IGNITE-25173
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25173
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 3.0.0-beta1
>            Reporter: Vladimir Dmitrienko
>            Priority: Major
>              Labels: ignite-3
>
> System object names like table names, distribution zone names are capitalized 
> implicitly unless enclosed in double quotes.
> This behavior can lead to unexpected behavior when querying tables or 
> referencing a distribution zone in a CREATE TABLE statement, especially when 
> a user relies on the original casing they provided.
> Consider the following examples:
> 1. Unquoted table name:
> {code:java}
> sql-cli> CREATE TABLE person (ID INT PRIMARY KEY, NAME VARCHAR);
> // 1.
> sql-cli> SELECT * FROM person;
> OK
> // 2.
> sql-cli> SELECT * FROM PERSON;
> OK
> // 3.
> sql-cli> SELECT * FROM "person";
> SQL query execution error
> Failed to validate query. From line 1, column 15 to line 1, column 22: 
> Object 'person' not found within 'PUBLIC'; did you mean 'PERSON'?
> // 4.
> sql-cli> SELECT * FROM "PERSON";
> OK{code}
> In example #3, the query fails event despite using the original casing as 
> defined in the CREATE TABLE statement.
> 2. Quoted table name:
>  
> {code:java}
> sql-cli> CREATE TABLE "person_in_quotes" (ID INT PRIMARY KEY, NAME VARCHAR);
> // 1.
> sql-cli> SELECT * FROM person_in_quotes;
> SQL query execution error
> Failed to validate query. From line 1, column 15 to line 1, column 30: 
> Object 'PERSON_IN_QUOTES' not found within 'PUBLIC'; 
> did you mean 'person_in_quotes'?
> // 2.
> sql-cli> SELECT * FROM 'person_in_quotes';
> SQL query execution error
> Failed to parse query: 
> Encountered "'person_in_quotes'" at line 1, column 15
> // 3.
> sql-cli> SELECT * FROM PERSON_IN_QUOTES;
> SQL query execution error
> Failed to validate query. 
> From line 1, column 15 to line 1, column 30: 
> Object 'PERSON_IN_QUOTES' not found within 'PUBLIC'; 
> did you mean 'person_in_quotes'?
> // 4.
> sql-cli> SELECT * FROM "person_in_quotes";
> OK{code}
> When the table name is quoted in the CREATE TABLE statement, it becomes 
> case-sensitive. The only way to reference it successfully is to use double 
> quotes with the exact same casing. Additionally, the error messages in 
> examples #1 and #3 are misleading, as they suggest using single quotes 
> ('person_in_quotes'), which results in a validation error.
> 3. Quoted zone name:
>  
> {code:java}
> sql-cli> CREATE ZONE "test_zone" WITH STORAGE_PROFILES='default';
> // 1.
> sql-cli> CREATE TABLE person_with_zone (ID INT PRIMARY KEY, NAME VARCHAR) 
> ZONE test_zone;
> SQL query execution error
> Distribution zone with name 'TEST_ZONE' not found.{code}
> Since the zone name was quoted when created, referencing it without quotes 
> fails. The error message does not clarify the case-sensitivity issue.
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to