This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new f46d40b444 IGNITE-21941 Cover SQL F391(Long identifiers) feature by
tests (#3734)
f46d40b444 is described below
commit f46d40b444c3e3605b59ba79e192563731b62b92
Author: Andrew V. Mashenkov <[email protected]>
AuthorDate: Tue May 14 11:00:04 2024 +0300
IGNITE-21941 Cover SQL F391(Long identifiers) feature by tests (#3734)
---
.../sql/identifiers/test_long_identifiers.test | 227 +++++++++++++++++++++
1 file changed, 227 insertions(+)
diff --git
a/modules/sql-engine/src/integrationTest/sql/identifiers/test_long_identifiers.test
b/modules/sql-engine/src/integrationTest/sql/identifiers/test_long_identifiers.test
new file mode 100644
index 0000000000..84ea70023c
--- /dev/null
+++
b/modules/sql-engine/src/integrationTest/sql/identifiers/test_long_identifiers.test
@@ -0,0 +1,227 @@
+# name: sql/identifiers/test_long_identifiers.test
+# description: SQL feature F391 (Long identifiers)
+# group: [identifiers]
+
+# TODO: IGNITE-19703 Add cases for long identifiers for schema names.
+
+statement ok
+PRAGMA enable_verification
+
+# Create table with short identifiers for test simplicity purpose
+statement ok
+CREATE TABLE t (id INTEGER, val INTEGER, PRIMARY KEY (id))
+
+# Create table with long identifiers
+statement ok
+CREATE TABLE
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
(keyColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
INTEGER,
valueColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
INTEGER, PRIMARY KEY
(keyColumnName_veryLooooooooooooooooooooooooooooooooooooooooo [...]
+
+statement error: Failed to parse query: Length of identifier
+CREATE TABLE
tableName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
(key INTEGER, val INTEGER, PRIMARY KEY (key));
+
+
+# Rename table with long identifiers
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-19484
+statement error: Failed to parse query: Length of identifier
+ALTER TABLE t RENAME TO
tableName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters;
+
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-19484
+statement ok
+ALTER TABLE t RENAME TO
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-19484
+statement ok
+ALTER TABLE
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
RENAME TO tableName;
+
+
+# Alter table add/drop column with long identifier
+statement ok
+ALTER TABLE t ADD COLUMN
(columnName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
INTEGER);
+
+statement error: Failed to parse query: Length of identifier
+ALTER TABLE t ADD COLUMN
(columnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
INTEGER);
+
+statement ok
+ALTER TABLE t DROP COLUMN
(columnName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters);
+
+
+# Alter table rename column with long identifier
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-19485
+statement error: Failed to parse query: Length of identifier
+ALTER TABLE t RENAME COLUMN val TO
columnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters;
+
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-19485
+statement ok
+ALTER TABLE t RENAME COLUMN val TO
columnName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-19485
+statement ok
+ALTER TABLE t RENAME COLUMN
columnName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
TO val;
+
+
+# Alter table with long identifier
+statement ok
+ALTER TABLE
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
ADD COLUMN columnName INTEGER;
+
+statement ok
+ALTER TABLE
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
DROP COLUMN columnName;
+
+
+statement ok
+INSERT INTO
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
(keyColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters,
valueColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters)
VALUES (1, 1), (2, 1);
+
+statement ok
+INSERT INTO t (id, val) VALUES (1, 1), (2, 1);
+
+
+# Aliases with long identifiers
+query I
+SELECT
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
FROM (VALUES (1), (2))
tableAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters(columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters);
+----
+1
+2
+
+statement error: Failed to parse query: Length of identifier
+SELECT
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
FROM (VALUES (1), (2))
t(columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters);
+
+statement error: Failed to parse query: Length of identifier
+SELECT col FROM (VALUES (1), (2))
tableAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters(col);
+
+query I
+SELECT 1 as
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
+----
+1
+
+query I
+SELECT 1
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
+----
+1
+
+statement error: Failed to parse query: Length of identifier
+SELECT 1 as
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
+
+statement error: Failed to parse query: Length of identifier
+SELECT 1
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
+
+# Long column aliases with subquery
+query I
+SELECT
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
FROM (SELECT 1 as
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters);
+----
+1
+
+query I
+SELECT
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
FROM (SELECT 1
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters);
+----
+1
+
+statement error: Failed to parse query: Length of identifier
+SELECT
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
FROM (SELECT 1 as
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters);
+
+statement error: Failed to parse query: Length of identifier
+SELECT
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
FROM (SELECT 1
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters);
+
+query I
+SELECT
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters.keyColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
FROM
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+----
+1
+2
+
+# Long table alias
+query I
+SELECT * FROM (SELECT 1) as
tableAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+----
+1
+
+statement error: Failed to parse query: Length of identifier
+SELECT * FROM (SELECT 1) as
tableAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters;
+
+query I
+SELECT
tableAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters.id
FROM t as
tableAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+----
+1
+2
+
+# Long identifier in ORDER BY clause
+query II
+SELECT * FROM
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
ORDER BY
keyColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
DESC;
+----
+2 1
+1 1
+
+query I
+SELECT id as
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
FROM t ORDER BY
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
DESC;
+----
+2
+1
+
+statement error: Failed to parse query: Length of identifier
+SELECT id as
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
FROM t ORDER BY
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
DESC;
+
+
+# Long identifier in GROUP BY clause
+query II
+SELECT
valueColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters,
SUM(keyColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters)
FROM
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
GROUP BY
valueColumnName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
[...]
+----
+1 3
+
+query II
+SELECT val as
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters,
SUM(id) FROM t GROUP BY
columnAlias_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+----
+1 3
+
+statement error: Failed to parse query: Length of identifier
+SELECT id as
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
FROM t GROUP BY
columnAlias_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters;
+
+
+# Long identifier in WHERE clause
+query I
+SELECT
valueColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
FROM
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
WHERE
valueColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
= 1;
+----
+1
+1
+
+# Index with long identifiers
+statement ok
+CREATE INDEX
indexName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
on
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
(valueColumnName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters);
+
+statement ok
+DROP INDEX
indexName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+
+statement error: Failed to parse query: Length of identifier
+CREATE INDEX
indexName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
on t (val);
+
+
+# Drop test tables
+statement ok
+DROP TABLE t;
+
+statement ok
+DROP TABLE
tableName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+
+
+# Zone with long identifier
+statement ok
+CREATE ZONE
zoneName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
WITH STORAGE_PROFILES='default', PARTITIONS=1, REPLICAS=3;
+
+statement error: Failed to parse query: Length of identifier
+CREATE ZONE
zoneName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters
WITH STORAGE_PROFILES='default', PARTITIONS=1, REPLICAS=3;
+
+statement ok
+ALTER ZONE
zoneName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
SET REPLICAS = 4;
+
+statement ok
+ALTER ZONE
zoneName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters
RENAME TO zoneName;
+
+statement error: Failed to parse query: Length of identifier
+ALTER ZONE zoneName RENAME TO
zoneName_veryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf129Characters;
+
+statement ok
+ALTER ZONE zoneName RENAME TO
zoneName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;
+
+statement ok
+DROP ZONE
zoneName_veryLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongIdentifierOf128Characters;