Skip to content

Commit e7a1f01

Browse files
committed
Add a test case for #308, fixed in #350, duplicate of #296
Signed-off-by: William Desportes <williamdes@wdes.fr>
1 parent 87f1dfa commit e7a1f01

3 files changed

Lines changed: 348 additions & 0 deletions

File tree

tests/Parser/CreateStatementTest.php

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

0 commit comments

Comments
 (0)