Skip to content

Commit bc4e5e9

Browse files
committed
Add test for DESC index (#592)
Signed-off-by: Nicolai Ehrhardt <[email protected]>
1 parent 54b5586 commit bc4e5e9

File tree

3 files changed

+356
-0
lines changed

3 files changed

+356
-0
lines changed

tests/Parser/AlterStatementTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public static function alterProvider(): array
4848
['parser/parseAlterTableAddSpatialIndex1'],
4949
['parser/parseAlterTableAddUniqueKey1'],
5050
['parser/parseAlterTableAddUniqueKey2'],
51+
['parser/parseAlterTableAddUniqueKeyDesc'],
5152
['parser/parseAlterTableDropAddIndex1'],
5253
['parser/parseAlterTableDropColumn1'],
5354
['parser/parseAlterTableModifyColumn'],
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`,`column2` DESC);
Lines changed: 354 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,354 @@
1+
{
2+
"query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`,`column2` DESC);\n",
3+
"lexer": {
4+
"@type": "PhpMyAdmin\\SqlParser\\Lexer",
5+
"strict": false,
6+
"errors": [],
7+
"str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`,`column2` DESC);\n",
8+
"len": 84,
9+
"last": 84,
10+
"list": {
11+
"@type": "PhpMyAdmin\\SqlParser\\TokensList",
12+
"count": 22,
13+
"idx": 22,
14+
"tokens": [
15+
{
16+
"@type": "PhpMyAdmin\\SqlParser\\Token",
17+
"token": "ALTER",
18+
"value": "ALTER",
19+
"keyword": "ALTER",
20+
"type": {
21+
"@type": "PhpMyAdmin\\SqlParser\\TokenType",
22+
"name": "Keyword",
23+
"value": 1
24+
},
25+
"flags": 3,
26+
"position": 0
27+
},
28+
{
29+
"@type": "PhpMyAdmin\\SqlParser\\Token",
30+
"token": " ",
31+
"value": " ",
32+
"keyword": null,
33+
"type": {
34+
"@type": "PhpMyAdmin\\SqlParser\\TokenType",
35+
"name": "Whitespace",
36+
"value": 3
37+
},
38+
"flags": 0,
39+
"position": 5
40+
},
41+
{
42+
"@type": "PhpMyAdmin\\SqlParser\\Token",
43+
"token": "TABLE",
44+
"value": "TABLE",
45+
"keyword": "TABLE",
46+
"type": {
47+
"@type": "@3"
48+
},
49+
"flags": 3,
50+
"position": 6
51+
},
52+
{
53+
"@type": "PhpMyAdmin\\SqlParser\\Token",
54+
"token": " ",
55+
"value": " ",
56+
"keyword": null,
57+
"type": {
58+
"@type": "@5"
59+
},
60+
"flags": 0,
61+
"position": 11
62+
},
63+
{
64+
"@type": "PhpMyAdmin\\SqlParser\\Token",
65+
"token": "`bad_table_is_bad`",
66+
"value": "bad_table_is_bad",
67+
"keyword": null,
68+
"type": {
69+
"@type": "PhpMyAdmin\\SqlParser\\TokenType",
70+
"name": "Symbol",
71+
"value": 8
72+
},
73+
"flags": 2,
74+
"position": 12
75+
},
76+
{
77+
"@type": "PhpMyAdmin\\SqlParser\\Token",
78+
"token": " ",
79+
"value": " ",
80+
"keyword": null,
81+
"type": {
82+
"@type": "@5"
83+
},
84+
"flags": 0,
85+
"position": 30
86+
},
87+
{
88+
"@type": "PhpMyAdmin\\SqlParser\\Token",
89+
"token": "ADD",
90+
"value": "ADD",
91+
"keyword": "ADD",
92+
"type": {
93+
"@type": "@3"
94+
},
95+
"flags": 3,
96+
"position": 31
97+
},
98+
{
99+
"@type": "PhpMyAdmin\\SqlParser\\Token",
100+
"token": " ",
101+
"value": " ",
102+
"keyword": null,
103+
"type": {
104+
"@type": "@5"
105+
},
106+
"flags": 0,
107+
"position": 34
108+
},
109+
{
110+
"@type": "PhpMyAdmin\\SqlParser\\Token",
111+
"token": "UNIQUE KEY",
112+
"value": "UNIQUE KEY",
113+
"keyword": "UNIQUE KEY",
114+
"type": {
115+
"@type": "@3"
116+
},
117+
"flags": 23,
118+
"position": 35
119+
},
120+
{
121+
"@type": "PhpMyAdmin\\SqlParser\\Token",
122+
"token": " ",
123+
"value": " ",
124+
"keyword": null,
125+
"type": {
126+
"@type": "@5"
127+
},
128+
"flags": 0,
129+
"position": 45
130+
},
131+
{
132+
"@type": "PhpMyAdmin\\SqlParser\\Token",
133+
"token": "`column1`",
134+
"value": "column1",
135+
"keyword": null,
136+
"type": {
137+
"@type": "@9"
138+
},
139+
"flags": 2,
140+
"position": 46
141+
},
142+
{
143+
"@type": "PhpMyAdmin\\SqlParser\\Token",
144+
"token": " ",
145+
"value": " ",
146+
"keyword": null,
147+
"type": {
148+
"@type": "@5"
149+
},
150+
"flags": 0,
151+
"position": 55
152+
},
153+
{
154+
"@type": "PhpMyAdmin\\SqlParser\\Token",
155+
"token": "(",
156+
"value": "(",
157+
"keyword": null,
158+
"type": {
159+
"@type": "PhpMyAdmin\\SqlParser\\TokenType",
160+
"name": "Operator",
161+
"value": 2
162+
},
163+
"flags": 16,
164+
"position": 56
165+
},
166+
{
167+
"@type": "PhpMyAdmin\\SqlParser\\Token",
168+
"token": "`column1`",
169+
"value": "column1",
170+
"keyword": null,
171+
"type": {
172+
"@type": "@9"
173+
},
174+
"flags": 2,
175+
"position": 57
176+
},
177+
{
178+
"@type": "PhpMyAdmin\\SqlParser\\Token",
179+
"token": ",",
180+
"value": ",",
181+
"keyword": null,
182+
"type": {
183+
"@type": "@18"
184+
},
185+
"flags": 16,
186+
"position": 66
187+
},
188+
{
189+
"@type": "PhpMyAdmin\\SqlParser\\Token",
190+
"token": "`column2`",
191+
"value": "column2",
192+
"keyword": null,
193+
"type": {
194+
"@type": "@9"
195+
},
196+
"flags": 2,
197+
"position": 67
198+
},
199+
{
200+
"@type": "PhpMyAdmin\\SqlParser\\Token",
201+
"token": " ",
202+
"value": " ",
203+
"keyword": null,
204+
"type": {
205+
"@type": "@5"
206+
},
207+
"flags": 0,
208+
"position": 76
209+
},
210+
{
211+
"@type": "PhpMyAdmin\\SqlParser\\Token",
212+
"token": "DESC",
213+
"value": "DESC",
214+
"keyword": "DESC",
215+
"type": {
216+
"@type": "@3"
217+
},
218+
"flags": 3,
219+
"position": 77
220+
},
221+
{
222+
"@type": "PhpMyAdmin\\SqlParser\\Token",
223+
"token": ")",
224+
"value": ")",
225+
"keyword": null,
226+
"type": {
227+
"@type": "@18"
228+
},
229+
"flags": 16,
230+
"position": 81
231+
},
232+
{
233+
"@type": "PhpMyAdmin\\SqlParser\\Token",
234+
"token": ";",
235+
"value": ";",
236+
"keyword": null,
237+
"type": {
238+
"@type": "PhpMyAdmin\\SqlParser\\TokenType",
239+
"name": "Delimiter",
240+
"value": 9
241+
},
242+
"flags": 0,
243+
"position": 82
244+
},
245+
{
246+
"@type": "PhpMyAdmin\\SqlParser\\Token",
247+
"token": "\n",
248+
"value": " ",
249+
"keyword": null,
250+
"type": {
251+
"@type": "@5"
252+
},
253+
"flags": 0,
254+
"position": 83
255+
},
256+
{
257+
"@type": "PhpMyAdmin\\SqlParser\\Token",
258+
"token": "",
259+
"value": "",
260+
"keyword": null,
261+
"type": {
262+
"@type": "@26"
263+
},
264+
"flags": 0,
265+
"position": null
266+
}
267+
]
268+
},
269+
"delimiter": ";",
270+
"delimiterLen": 1
271+
},
272+
"parser": {
273+
"@type": "PhpMyAdmin\\SqlParser\\Parser",
274+
"strict": false,
275+
"errors": [],
276+
"list": {
277+
"@type": "@1"
278+
},
279+
"statements": [
280+
{
281+
"@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement",
282+
"table": {
283+
"@type": "PhpMyAdmin\\SqlParser\\Components\\Expression",
284+
"database": null,
285+
"table": "bad_table_is_bad",
286+
"column": null,
287+
"expr": "`bad_table_is_bad`",
288+
"alias": null,
289+
"function": null,
290+
"subquery": null
291+
},
292+
"altered": [
293+
{
294+
"@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation",
295+
"options": {
296+
"@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
297+
"options": {
298+
"1": "ADD",
299+
"2": "UNIQUE KEY"
300+
}
301+
},
302+
"field": {
303+
"@type": "PhpMyAdmin\\SqlParser\\Components\\Expression",
304+
"database": null,
305+
"table": null,
306+
"column": "column1",
307+
"expr": "`column1`",
308+
"alias": null,
309+
"function": null,
310+
"subquery": null
311+
},
312+
"partitions": null,
313+
"unknown": [
314+
{
315+
"@type": "@17"
316+
},
317+
{
318+
"@type": "@19"
319+
},
320+
{
321+
"@type": "@20"
322+
},
323+
{
324+
"@type": "@21"
325+
},
326+
{
327+
"@type": "@22"
328+
},
329+
{
330+
"@type": "@23"
331+
},
332+
{
333+
"@type": "@24"
334+
}
335+
]
336+
}
337+
],
338+
"options": {
339+
"@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
340+
"options": {
341+
"3": "TABLE"
342+
}
343+
},
344+
"first": 0,
345+
"last": 19
346+
}
347+
],
348+
"brackets": 0
349+
},
350+
"errors": {
351+
"lexer": [],
352+
"parser": []
353+
}
354+
}

0 commit comments

Comments
 (0)