Skip to content

Commit 622cb0d

Browse files
committed
Add duckdb keywords
1 parent 4a23e03 commit 622cb0d

File tree

2 files changed

+165
-1
lines changed

2 files changed

+165
-1
lines changed

src/languages/duckdb/duckdb.formatter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { DialectOptions } from '../../dialect.js';
22
import { expandPhrases } from '../../expandPhrases.js';
33
import { functions } from '../postgresql/postgresql.functions.js';
4-
import { dataTypes, keywords } from '../postgresql/postgresql.keywords.js';
4+
import { dataTypes, keywords } from './duckdb.keywords.js';
55

66
const reservedSelect = expandPhrases(['SELECT [ALL | DISTINCT]']);
77

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
export const keywords: string[] = [
2+
// Keywords from DuckDB:
3+
// SELECT upper(keyword_name)
4+
// FROM duckdb_keywords()
5+
// WHERE keyword_category = 'reserved'
6+
// ORDER BY keyword_name
7+
'ALL',
8+
'ANALYSE',
9+
'ANALYZE',
10+
'AND',
11+
'ANY',
12+
'AS',
13+
'ASC',
14+
'ATTACH',
15+
'ASYMMETRIC',
16+
'BOTH',
17+
'CASE',
18+
'CAST',
19+
'CHECK',
20+
'COLLATE',
21+
'COLUMN',
22+
'CONSTRAINT',
23+
'CREATE',
24+
'DEFAULT',
25+
'DEFERRABLE',
26+
'DESC',
27+
'DESCRIBE',
28+
'DETACH',
29+
'DISTINCT',
30+
'DO',
31+
'ELSE',
32+
'END',
33+
'EXCEPT',
34+
'FALSE',
35+
'FETCH',
36+
'FOR',
37+
'FOREIGN',
38+
'FROM',
39+
'GRANT',
40+
'GROUP',
41+
'HAVING',
42+
'IN',
43+
'INITIALLY',
44+
'INTERSECT',
45+
'INTO',
46+
'LATERAL',
47+
'LEADING',
48+
'LIMIT',
49+
'NOT',
50+
'NULL',
51+
'OFFSET',
52+
'ON',
53+
'ONLY',
54+
'OR',
55+
'ORDER',
56+
'PIVOT',
57+
'PIVOT_LONGER',
58+
'PIVOT_WIDER',
59+
'PLACING',
60+
'PRIMARY',
61+
'REFERENCES',
62+
'RETURNING',
63+
'SELECT',
64+
'SHOW',
65+
'SOME',
66+
'SUMMARIZE',
67+
'SYMMETRIC',
68+
'TABLE',
69+
'THEN',
70+
'TO',
71+
'TRAILING',
72+
'TRUE',
73+
'UNION',
74+
'UNIQUE',
75+
'UNPIVOT',
76+
'USING',
77+
'VARIADIC',
78+
'WHEN',
79+
'WHERE',
80+
'WINDOW',
81+
'WITH',
82+
];
83+
84+
export const dataTypes: string[] = [
85+
// Types from DuckDB:
86+
// SELECT DISTINCT upper(type_name)
87+
// FROM duckdb_types()
88+
// ORDER BY type_name
89+
'ARRAY',
90+
'BIGINT',
91+
'BINARY',
92+
'BIT',
93+
'BITSTRING',
94+
'BLOB',
95+
'BOOL',
96+
'BOOLEAN',
97+
'BPCHAR',
98+
'BYTEA',
99+
'CHAR',
100+
'DATE',
101+
'DATETIME',
102+
'DEC',
103+
'DECIMAL',
104+
'DOUBLE',
105+
'ENUM',
106+
'FLOAT',
107+
'FLOAT4',
108+
'FLOAT8',
109+
'GUID',
110+
'HUGEINT',
111+
'INET',
112+
'INT',
113+
'INT1',
114+
'INT128',
115+
'INT16',
116+
'INT2',
117+
'INT32',
118+
'INT4',
119+
'INT64',
120+
'INT8',
121+
'INTEGER',
122+
'INTEGRAL',
123+
'INTERVAL',
124+
'JSON',
125+
'LIST',
126+
'LOGICAL',
127+
'LONG',
128+
'MAP',
129+
// 'NULL' is a keyword
130+
'NUMERIC',
131+
'NVARCHAR',
132+
'OID',
133+
'REAL',
134+
'ROW',
135+
'SHORT',
136+
'SIGNED',
137+
'SMALLINT',
138+
'STRING',
139+
'STRUCT',
140+
'TEXT',
141+
'TIME',
142+
'TIMESTAMP_MS',
143+
'TIMESTAMP_NS',
144+
'TIMESTAMP_S',
145+
'TIMESTAMP_US',
146+
'TIMESTAMP',
147+
'TIMESTAMPTZ',
148+
'TIMETZ',
149+
'TINYINT',
150+
'UBIGINT',
151+
'UHUGEINT',
152+
'UINT128',
153+
'UINT16',
154+
'UINT32',
155+
'UINT64',
156+
'UINT8',
157+
'UINTEGER',
158+
'UNION',
159+
'USMALLINT',
160+
'UTINYINT',
161+
'UUID',
162+
'VARBINARY',
163+
'VARCHAR',
164+
];

0 commit comments

Comments
 (0)