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