Skip to content

Commit d580b65

Browse files
viiryadongjoon-hyun
authored andcommitted
[SPARK-49543][SQL] Add SHOW COLLATIONS command
### What changes were proposed in this pull request? Add SHOW COLLATIONS SQL syntax to list all Spark built-in collations. Supports optional LIKE pattern filtering (e.g. SHOW COLLATIONS LIKE 'UNICODE*'). Output schema: NAME, LANGUAGE, COUNTRY, ACCENT_SENSITIVITY, CASE_SENSITIVITY, PAD_ATTRIBUTE, ICU_VERSION — matching the existing collations() TVF but without the constant CATALOG/SCHEMA columns. Implementation follows the ShowCatalogsCommand pattern as collations are engine-global and not tied to any catalog or namespace. ### Why are the changes needed? SHOW COLLATIONS is a SQL command supported by MySQL and its derivatives (MariaDB, TiDB) for listing available collations. Spark currently only exposes this information via a table-valued function (SELECT * FROM collations()), which is inconsistent with how other catalog objects are queried (SHOW CATALOGS, SHOW TABLES, etc.) and unfamiliar to users coming from MySQL-compatible databases. This change adds a more intuitive SQL syntax consistent with Spark's existing SHOW command family. ### Does this PR introduce _any_ user-facing change? Yes, this adds `SHOW COLLATIONS` command. ### How was this patch tested? Unit tests ### Was this patch authored or co-authored using generative AI tooling? Generated-by: Claude Sonnet 4.6 Closes #55099 from viirya/SPARK-49543-show-collations. Authored-by: Liang-Chi Hsieh <viirya@gmail.com> Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
1 parent a471959 commit d580b65

14 files changed

Lines changed: 229 additions & 2 deletions

File tree

docs/sql-ref-ansi-compliance.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ Below is a list of all the keywords in Spark SQL.
460460
|CODEGEN|non-reserved|non-reserved|non-reserved|
461461
|COLLATE|reserved|non-reserved|reserved|
462462
|COLLATION|reserved|non-reserved|reserved|
463+
|COLLATIONS|reserved|non-reserved|non-reserved|
463464
|COLLECTION|non-reserved|non-reserved|non-reserved|
464465
|COLUMN|reserved|non-reserved|reserved|
465466
|COLUMNS|non-reserved|non-reserved|non-reserved|
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
layout: global
3+
title: SHOW COLLATIONS
4+
displayTitle: SHOW COLLATIONS
5+
license: |
6+
Licensed to the Apache Software Foundation (ASF) under one or more
7+
contributor license agreements. See the NOTICE file distributed with
8+
this work for additional information regarding copyright ownership.
9+
The ASF licenses this file to You under the Apache License, Version 2.0
10+
(the "License"); you may not use this file except in compliance with
11+
the License. You may obtain a copy of the License at
12+
13+
http://www.apache.org/licenses/LICENSE-2.0
14+
15+
Unless required by applicable law or agreed to in writing, software
16+
distributed under the License is distributed on an "AS IS" BASIS,
17+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
See the License for the specific language governing permissions and
19+
limitations under the License.
20+
---
21+
22+
### Description
23+
24+
Returns the list of collations supported by Spark. An optional pattern may be used to filter
25+
the results. The `LIKE` clause is optional.
26+
27+
### Syntax
28+
29+
```sql
30+
SHOW COLLATIONS [ LIKE regex_pattern ]
31+
```
32+
33+
### Parameters
34+
35+
* **regex_pattern**
36+
37+
Specifies the regular expression pattern that is used to filter the results of the statement.
38+
39+
* Except for `*` and `|` character, the pattern works like a regular expression.
40+
* `*` alone matches 0 or more characters and `|` is used to separate multiple different regular expressions,
41+
any of which can match.
42+
* The leading and trailing blanks are trimmed in the input pattern before processing. The pattern match is case-insensitive.
43+
44+
### Output
45+
46+
The output has the following columns:
47+
48+
| Column | Type | Nullable | Description |
49+
|--------|------|----------|-------------|
50+
| NAME | STRING | No | The name of the collation. |
51+
| LANGUAGE | STRING | Yes | The display language of the locale, or `null` for locale-independent collations. |
52+
| COUNTRY | STRING | Yes | The display country of the locale, or `null` for locale-independent collations. |
53+
| ACCENT_SENSITIVITY | STRING | No | Whether the collation is accent-sensitive (`ACCENT_SENSITIVE`) or accent-insensitive (`ACCENT_INSENSITIVE`). |
54+
| CASE_SENSITIVITY | STRING | No | Whether the collation is case-sensitive (`CASE_SENSITIVE`) or case-insensitive (`CASE_INSENSITIVE`). |
55+
| PAD_ATTRIBUTE | STRING | No | The pad attribute of the collation: `NO_PAD` or `RTRIM`. |
56+
| ICU_VERSION | STRING | Yes | The ICU library version used for the collation, or `null` for non-ICU collations such as `UTF8_BINARY` and `UTF8_LCASE`. |
57+
58+
### Examples
59+
60+
```sql
61+
-- List all supported collations (results truncated)
62+
SHOW COLLATIONS;
63+
+-----------------+--------+-------+------------------+----------------+-------------+-----------+
64+
| NAME|LANGUAGE|COUNTRY|ACCENT_SENSITIVITY|CASE_SENSITIVITY|PAD_ATTRIBUTE|ICU_VERSION|
65+
+-----------------+--------+-------+------------------+----------------+-------------+-----------+
66+
| UTF8_BINARY| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| NO_PAD| null|
67+
| UTF8_LCASE| null| null| ACCENT_SENSITIVE|CASE_INSENSITIVE| NO_PAD| null|
68+
| UNICODE| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| NO_PAD| 78.2|
69+
| UNICODE_CI| null| null| ACCENT_SENSITIVE|CASE_INSENSITIVE| NO_PAD| 78.2|
70+
| en_USA| English| United States|ACCENT_SENSITIVE|CASE_SENSITIVE| NO_PAD| 78.2|
71+
| en_USA_CI| English| United States|ACCENT_SENSITIVE|CASE_INSENSITIVE| NO_PAD| 78.2|
72+
| ...| ...| ...| ...| ...| ...| ...|
73+
+-----------------+--------+-------+------------------+----------------+-------------+-----------+
74+
75+
-- List all collations matching `UTF8_BINARY*`
76+
SHOW COLLATIONS LIKE 'UTF8_BINARY*';
77+
+-----------------+--------+-------+------------------+----------------+-------------+-----------+
78+
| NAME|LANGUAGE|COUNTRY|ACCENT_SENSITIVITY|CASE_SENSITIVITY|PAD_ATTRIBUTE|ICU_VERSION|
79+
+-----------------+--------+-------+------------------+----------------+-------------+-----------+
80+
| UTF8_BINARY| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| NO_PAD| null|
81+
| UTF8_BINARY_RTRIM| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| RTRIM| null|
82+
+-----------------+--------+-------+------------------+----------------+-------------+-----------+
83+
84+
-- List all collations matching `UNICODE*`
85+
SHOW COLLATIONS LIKE 'UNICODE*';
86+
+--------------+--------+-------+-------------------+----------------+-------------+-----------+
87+
| NAME|LANGUAGE|COUNTRY| ACCENT_SENSITIVITY|CASE_SENSITIVITY|PAD_ATTRIBUTE|ICU_VERSION|
88+
+--------------+--------+-------+-------------------+----------------+-------------+-----------+
89+
| UNICODE| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| NO_PAD| 78.2|
90+
| UNICODE_AI| null| null| ACCENT_INSENSITIVE| CASE_SENSITIVE| NO_PAD| 78.2|
91+
| UNICODE_AI_RTRIM| null| null|ACCENT_INSENSITIVE|CASE_SENSITIVE| RTRIM| 78.2|
92+
| UNICODE_CI| null| null| ACCENT_SENSITIVE|CASE_INSENSITIVE| NO_PAD| 78.2|
93+
| UNICODE_CI_AI| null| null| ACCENT_INSENSITIVE|CASE_INSENSITIVE| NO_PAD| 78.2|
94+
|UNICODE_CI_AI_RTRIM| null| null|ACCENT_INSENSITIVE|CASE_INSENSITIVE| RTRIM| 78.2|
95+
| UNICODE_CI_RTRIM| null| null| ACCENT_SENSITIVE|CASE_INSENSITIVE| RTRIM| 78.2|
96+
| UNICODE_RTRIM| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| RTRIM| 78.2|
97+
+--------------+--------+-------+-------------------+----------------+-------------+-----------+
98+
99+
-- List all collations matching `UNICODE` or `UTF8_BINARY`
100+
SHOW COLLATIONS LIKE 'UNICODE|UTF8_BINARY';
101+
+-----------+--------+-------+------------------+----------------+-------------+-----------+
102+
| NAME|LANGUAGE|COUNTRY|ACCENT_SENSITIVITY|CASE_SENSITIVITY|PAD_ATTRIBUTE|ICU_VERSION|
103+
+-----------+--------+-------+------------------+----------------+-------------+-----------+
104+
|UTF8_BINARY| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| NO_PAD| null|
105+
| UNICODE| null| null| ACCENT_SENSITIVE| CASE_SENSITIVE| NO_PAD| 78.2|
106+
+-----------+--------+-------+------------------+----------------+-------------+-----------+
107+
```
108+
109+
### Related Statements
110+
111+
* [STRING TYPE](sql-ref-datatypes.html)

docs/sql-ref-syntax.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ You use SQL scripting to execute procedural logic in SQL.
125125
* [SET](sql-ref-syntax-aux-conf-mgmt-set.html)
126126
* [SET VAR](sql-ref-syntax-aux-set-var.html)
127127
* [SHOW CACHED TABLES](sql-ref-syntax-aux-show-cached-tables.html)
128+
* [SHOW COLLATIONS](sql-ref-syntax-aux-show-collations.html)
128129
* [SHOW COLUMNS](sql-ref-syntax-aux-show-columns.html)
129130
* [SHOW CREATE TABLE](sql-ref-syntax-aux-show-create-table.html)
130131
* [SHOW DATABASES](sql-ref-syntax-aux-show-databases.html)

sql/api/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseLexer.g4

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ CLUSTERED: 'CLUSTERED';
179179
CODEGEN: 'CODEGEN';
180180
COLLATE: 'COLLATE';
181181
COLLATION: 'COLLATION';
182+
COLLATIONS: 'COLLATIONS';
182183
COLLECTION: 'COLLECTION';
183184
COLUMN: 'COLUMN';
184185
COLUMNS: 'COLUMNS';

sql/api/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseParser.g4

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@ statement
377377
| SHOW CREATE TABLE identifierReference (AS SERDE)? #showCreateTable
378378
| SHOW CURRENT namespace #showCurrentNamespace
379379
| SHOW CATALOGS (LIKE? pattern=stringLit)? #showCatalogs
380+
| SHOW COLLATIONS (LIKE? pattern=stringLit)? #showCollations
380381
| (DESC | DESCRIBE) FUNCTION EXTENDED? describeFuncName #describeFunction
381382
| (DESC | DESCRIBE) PROCEDURE identifierReference #describeProcedure
382383
| (DESC | DESCRIBE) namespace EXTENDED?
@@ -2321,6 +2322,7 @@ nonReserved
23212322
| CODEGEN
23222323
| COLLATE
23232324
| COLLATION
2325+
| COLLATIONS
23242326
| COLLECTION
23252327
| COLUMN
23262328
| COLUMNS

sql/connect/client/jdbc/src/test/scala/org/apache/spark/sql/connect/client/jdbc/SparkConnectDatabaseMetaDataSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ class SparkConnectDatabaseMetaDataSuite extends ConnectFunSuite with RemoteSpark
209209
withConnection { conn =>
210210
val metadata = conn.getMetaData
211211
// scalastyle:off line.size.limit
212-
assert(metadata.getSQLKeywords === "ADD,AFTER,AGGREGATE,ALWAYS,ANALYZE,ANTI,ANY_VALUE,ARCHIVE,ASC,BINDING,BUCKET,BUCKETS,BYTE,CACHE,CACHED,CASCADE,CATALOG,CATALOGS,CHANGE,CHANGES,CLEAR,CLUSTER,CLUSTERED,CODEGEN,COLLATION,COLLECTION,COLUMNS,COMMENT,COMPACT,COMPACTIONS,COMPENSATION,COMPUTE,CONCATENATE,CONTAINS,CONTINUE,COST,DATA,DATABASE,DATABASES,DATEADD,DATEDIFF,DATE_ADD,DATE_DIFF,DAYOFYEAR,DAYS,DBPROPERTIES,DEFINED,DEFINER,DELAY,DELIMITED,DESC,DFS,DIRECTORIES,DIRECTORY,DISTRIBUTE,DIV,DO,ELSEIF,ENFORCED,ESCAPED,EVOLUTION,EXCHANGE,EXCLUDE,EXCLUSIVE,EXIT,EXPLAIN,EXPORT,EXTEND,EXTENDED,FIELDS,FILEFORMAT,FIRST,FLOW,FOLLOWING,FORMAT,FORMATTED,FOUND,FUNCTIONS,GENERATED,GEOGRAPHY,GEOMETRY,HANDLER,HOURS,IDENTIFIED,IDENTIFIER,IF,IGNORE,ILIKE,IMMEDIATE,INCLUDE,INCLUSIVE,INCREMENT,INDEX,INDEXES,INPATH,INPUT,INPUTFORMAT,INVOKER,ITEMS,ITERATE,JSON,KEY,KEYS,LAST,LAZY,LEAVE,LEVEL,LIMIT,LINES,LIST,LOAD,LOCATION,LOCK,LOCKS,LOGICAL,LONG,LOOP,MACRO,MAP,MATCHED,MATERIALIZED,MEASURE,METRICS,MICROSECOND,MICROSECONDS,MILLISECOND,MILLISECONDS,MINUS,MINUTES,MONTHS,MSCK,NAME,NAMESPACE,NAMESPACES,NANOSECOND,NANOSECONDS,NORELY,NULLS,OFFSET,OPTION,OPTIONS,OUTPUTFORMAT,OVERWRITE,PARTITIONED,PARTITIONS,PERCENT,PIVOT,PLACING,PRECEDING,PRINCIPALS,PROCEDURES,PROPERTIES,PURGE,QUARTER,QUERY,RECORDREADER,RECORDWRITER,RECOVER,RECURSION,REDUCE,REFRESH,RELY,RENAME,REPAIR,REPEAT,REPEATABLE,REPLACE,RESET,RESPECT,RESTRICT,ROLE,ROLES,SCHEMA,SCHEMAS,SECONDS,SECURITY,SEMI,SEPARATED,SERDE,SERDEPROPERTIES,SETS,SHORT,SHOW,SINGLE,SKEWED,SORT,SORTED,SOURCE,STATISTICS,STORED,STRATIFY,STREAM,STREAMING,STRING,STRUCT,SUBSTR,SYNC,SYSTEM_TIME,SYSTEM_VERSION,TABLES,TARGET,TBLPROPERTIES,TERMINATED,TIMEDIFF,TIMESTAMPADD,TIMESTAMPDIFF,TIMESTAMP_LTZ,TIMESTAMP_NTZ,TINYINT,TOUCH,TRANSACTION,TRANSACTIONS,TRANSFORM,TRUNCATE,TRY_CAST,TYPE,UNARCHIVE,UNBOUNDED,UNCACHE,UNLOCK,UNPIVOT,UNSET,UNTIL,USE,VAR,VARIABLE,VARIANT,VERSION,VIEW,VIEWS,VOID,WATERMARK,WEEK,WEEKS,WHILE,X,YEARS,ZONE")
212+
assert(metadata.getSQLKeywords === "ADD,AFTER,AGGREGATE,ALWAYS,ANALYZE,ANTI,ANY_VALUE,ARCHIVE,ASC,BINDING,BUCKET,BUCKETS,BYTE,CACHE,CACHED,CASCADE,CATALOG,CATALOGS,CHANGE,CHANGES,CLEAR,CLUSTER,CLUSTERED,CODEGEN,COLLATION,COLLATIONS,COLLECTION,COLUMNS,COMMENT,COMPACT,COMPACTIONS,COMPENSATION,COMPUTE,CONCATENATE,CONTAINS,CONTINUE,COST,DATA,DATABASE,DATABASES,DATEADD,DATEDIFF,DATE_ADD,DATE_DIFF,DAYOFYEAR,DAYS,DBPROPERTIES,DEFINED,DEFINER,DELAY,DELIMITED,DESC,DFS,DIRECTORIES,DIRECTORY,DISTRIBUTE,DIV,DO,ELSEIF,ENFORCED,ESCAPED,EVOLUTION,EXCHANGE,EXCLUDE,EXCLUSIVE,EXIT,EXPLAIN,EXPORT,EXTEND,EXTENDED,FIELDS,FILEFORMAT,FIRST,FLOW,FOLLOWING,FORMAT,FORMATTED,FOUND,FUNCTIONS,GENERATED,GEOGRAPHY,GEOMETRY,HANDLER,HOURS,IDENTIFIED,IDENTIFIER,IF,IGNORE,ILIKE,IMMEDIATE,INCLUDE,INCLUSIVE,INCREMENT,INDEX,INDEXES,INPATH,INPUT,INPUTFORMAT,INVOKER,ITEMS,ITERATE,JSON,KEY,KEYS,LAST,LAZY,LEAVE,LEVEL,LIMIT,LINES,LIST,LOAD,LOCATION,LOCK,LOCKS,LOGICAL,LONG,LOOP,MACRO,MAP,MATCHED,MATERIALIZED,MEASURE,METRICS,MICROSECOND,MICROSECONDS,MILLISECOND,MILLISECONDS,MINUS,MINUTES,MONTHS,MSCK,NAME,NAMESPACE,NAMESPACES,NANOSECOND,NANOSECONDS,NORELY,NULLS,OFFSET,OPTION,OPTIONS,OUTPUTFORMAT,OVERWRITE,PARTITIONED,PARTITIONS,PERCENT,PIVOT,PLACING,PRECEDING,PRINCIPALS,PROCEDURES,PROPERTIES,PURGE,QUARTER,QUERY,RECORDREADER,RECORDWRITER,RECOVER,RECURSION,REDUCE,REFRESH,RELY,RENAME,REPAIR,REPEAT,REPEATABLE,REPLACE,RESET,RESPECT,RESTRICT,ROLE,ROLES,SCHEMA,SCHEMAS,SECONDS,SECURITY,SEMI,SEPARATED,SERDE,SERDEPROPERTIES,SETS,SHORT,SHOW,SINGLE,SKEWED,SORT,SORTED,SOURCE,STATISTICS,STORED,STRATIFY,STREAM,STREAMING,STRING,STRUCT,SUBSTR,SYNC,SYSTEM_TIME,SYSTEM_VERSION,TABLES,TARGET,TBLPROPERTIES,TERMINATED,TIMEDIFF,TIMESTAMPADD,TIMESTAMPDIFF,TIMESTAMP_LTZ,TIMESTAMP_NTZ,TINYINT,TOUCH,TRANSACTION,TRANSACTIONS,TRANSFORM,TRUNCATE,TRY_CAST,TYPE,UNARCHIVE,UNBOUNDED,UNCACHE,UNLOCK,UNPIVOT,UNSET,UNTIL,USE,VAR,VARIABLE,VARIANT,VERSION,VIEW,VIEWS,VOID,WATERMARK,WEEK,WEEKS,WHILE,X,YEARS,ZONE")
213213
// scalastyle:on line.size.limit
214214
}
215215
}

sql/core/src/main/scala/org/apache/spark/sql/execution/SparkSqlParser.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,13 @@ class SparkSqlAstBuilder extends AstBuilder {
501501
ShowCatalogsCommand(Option(ctx.pattern).map(x => string(visitStringLit(x))))
502502
}
503503

504+
/**
505+
* Create a [[ShowCollationsCommand]] logical command.
506+
*/
507+
override def visitShowCollations(ctx: ShowCollationsContext): LogicalPlan = withOrigin(ctx) {
508+
ShowCollationsCommand(Option(ctx.pattern).map(x => string(visitStringLit(x))))
509+
}
510+
504511
/**
505512
* Converts a multi-part identifier to a TableIdentifier.
506513
*
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
package org.apache.spark.sql.execution.command
19+
20+
import scala.jdk.CollectionConverters._
21+
22+
import org.apache.spark.sql.{Row, SparkSession}
23+
import org.apache.spark.sql.catalyst.expressions.{Attribute, AttributeReference}
24+
import org.apache.spark.sql.catalyst.util.{CollationFactory, StringUtils}
25+
import org.apache.spark.sql.types.StringType
26+
27+
/**
28+
* The command for `SHOW COLLATIONS`.
29+
*/
30+
case class ShowCollationsCommand(pattern: Option[String]) extends LeafRunnableCommand {
31+
override val output: Seq[Attribute] = Seq(
32+
AttributeReference("NAME", StringType, nullable = false)(),
33+
AttributeReference("LANGUAGE", StringType, nullable = true)(),
34+
AttributeReference("COUNTRY", StringType, nullable = true)(),
35+
AttributeReference("ACCENT_SENSITIVITY", StringType, nullable = false)(),
36+
AttributeReference("CASE_SENSITIVITY", StringType, nullable = false)(),
37+
AttributeReference("PAD_ATTRIBUTE", StringType, nullable = false)(),
38+
AttributeReference("ICU_VERSION", StringType, nullable = true)())
39+
40+
override def run(sparkSession: SparkSession): Seq[Row] = {
41+
val collations = CollationFactory.listCollations().asScala
42+
.map(CollationFactory.loadCollationMeta)
43+
val filtered = pattern
44+
.map(p => collations.filter(m => StringUtils.filterPattern(Seq(m.collationName), p).nonEmpty))
45+
.getOrElse(collations)
46+
filtered.map { m =>
47+
Row(
48+
m.collationName,
49+
m.language,
50+
m.country,
51+
if (m.accentSensitivity) "ACCENT_SENSITIVE" else "ACCENT_INSENSITIVE",
52+
if (m.caseSensitivity) "CASE_SENSITIVE" else "CASE_INSENSITIVE",
53+
m.padAttribute,
54+
m.icuVersion)
55+
}.toSeq
56+
}
57+
}

sql/core/src/test/resources/sql-tests/results/keywords-enforced.sql.out

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ CLUSTERED false
5555
CODEGEN false
5656
COLLATE true
5757
COLLATION true
58+
COLLATIONS true
5859
COLLECTION false
5960
COLUMN true
6061
COLUMNS false
@@ -432,6 +433,7 @@ CAST
432433
CHECK
433434
COLLATE
434435
COLLATION
436+
COLLATIONS
435437
COLUMN
436438
CONSTRAINT
437439
CREATE

sql/core/src/test/resources/sql-tests/results/keywords.sql.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ CLUSTERED false
5555
CODEGEN false
5656
COLLATE false
5757
COLLATION false
58+
COLLATIONS false
5859
COLLECTION false
5960
COLUMN false
6061
COLUMNS false

0 commit comments

Comments
 (0)