Skip to content

Commit 6bdb41d

Browse files
committed
Add new tests for #319
Signed-off-by: William Desportes <[email protected]>
1 parent c209636 commit 6bdb41d

13 files changed

Lines changed: 2006 additions & 1 deletion

tests/Parser/AlterStatementTest.php

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

0 commit comments

Comments
 (0)