Skip to content

Commit 7ca3bfe

Browse files
committed
Ref #445 - Add more test cases for DESCRIBE
Signed-off-by: William Desportes <[email protected]>
1 parent c40f718 commit 7ca3bfe

9 files changed

Lines changed: 493 additions & 0 deletions

tests/Parser/ExplainStatementTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public function explainProvider(): array
2727
['parser/parseExplain2'],
2828
['parser/parseExplain3'],
2929
['parser/parseExplain4'],
30+
['parser/parseExplain5'],
31+
['parser/parseExplain6'],
32+
['parser/parseExplain7'],
33+
['parser/parseExplain8'],
3034
['parser/parseExplainErr'],
3135
['parser/parseExplainErr1'],
3236
['parser/parseExplainErr2'],

tests/data/parser/parseExplain5.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DESC phpmyadmin.pma__users;
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
{
2+
"query": "DESC phpmyadmin.pma__users;",
3+
"lexer": {
4+
"@type": "PhpMyAdmin\\SqlParser\\Lexer",
5+
"str": "DESC phpmyadmin.pma__users;",
6+
"len": 27,
7+
"last": 27,
8+
"list": {
9+
"@type": "PhpMyAdmin\\SqlParser\\TokensList",
10+
"tokens": [
11+
{
12+
"@type": "PhpMyAdmin\\SqlParser\\Token",
13+
"token": "DESC",
14+
"value": "DESC",
15+
"keyword": "DESC",
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": 4
28+
},
29+
{
30+
"@type": "PhpMyAdmin\\SqlParser\\Token",
31+
"token": "phpmyadmin",
32+
"value": "phpmyadmin",
33+
"keyword": null,
34+
"type": 0,
35+
"flags": 0,
36+
"position": 5
37+
},
38+
{
39+
"@type": "PhpMyAdmin\\SqlParser\\Token",
40+
"token": ".",
41+
"value": ".",
42+
"keyword": null,
43+
"type": 2,
44+
"flags": 16,
45+
"position": 15
46+
},
47+
{
48+
"@type": "PhpMyAdmin\\SqlParser\\Token",
49+
"token": "pma__users",
50+
"value": "pma__users",
51+
"keyword": null,
52+
"type": 0,
53+
"flags": 0,
54+
"position": 16
55+
},
56+
{
57+
"@type": "PhpMyAdmin\\SqlParser\\Token",
58+
"token": ";",
59+
"value": ";",
60+
"keyword": null,
61+
"type": 9,
62+
"flags": 0,
63+
"position": 26
64+
},
65+
{
66+
"@type": "PhpMyAdmin\\SqlParser\\Token",
67+
"token": null,
68+
"value": null,
69+
"keyword": null,
70+
"type": 9,
71+
"flags": 0,
72+
"position": null
73+
}
74+
],
75+
"count": 7,
76+
"idx": 7
77+
},
78+
"delimiter": ";",
79+
"delimiterLen": 1,
80+
"strict": false,
81+
"errors": []
82+
},
83+
"parser": {
84+
"@type": "PhpMyAdmin\\SqlParser\\Parser",
85+
"list": {
86+
"@type": "@1"
87+
},
88+
"statements": [
89+
{
90+
"@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement",
91+
"bodyParser": null,
92+
"statementAlias": "DESC",
93+
"connectionId": null,
94+
"explainedTable": "phpmyadmin",
95+
"options": {
96+
"@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
97+
"options": []
98+
},
99+
"first": 0,
100+
"last": 2
101+
}
102+
],
103+
"brackets": 0,
104+
"strict": false,
105+
"errors": []
106+
},
107+
"errors": {
108+
"lexer": [],
109+
"parser": [
110+
[
111+
"Unexpected beginning of statement.",
112+
{
113+
"@type": "@6"
114+
},
115+
0
116+
]
117+
]
118+
}
119+
}

tests/data/parser/parseExplain6.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DESCRIBE Shop 'N%';
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
{
2+
"query": "DESCRIBE Shop 'N%';\n",
3+
"lexer": {
4+
"@type": "PhpMyAdmin\\SqlParser\\Lexer",
5+
"str": "DESCRIBE Shop 'N%';\n",
6+
"len": 20,
7+
"last": 20,
8+
"list": {
9+
"@type": "PhpMyAdmin\\SqlParser\\TokensList",
10+
"tokens": [
11+
{
12+
"@type": "PhpMyAdmin\\SqlParser\\Token",
13+
"token": "DESCRIBE",
14+
"value": "DESCRIBE",
15+
"keyword": "DESCRIBE",
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": 8
28+
},
29+
{
30+
"@type": "PhpMyAdmin\\SqlParser\\Token",
31+
"token": "Shop",
32+
"value": "Shop",
33+
"keyword": null,
34+
"type": 0,
35+
"flags": 0,
36+
"position": 9
37+
},
38+
{
39+
"@type": "PhpMyAdmin\\SqlParser\\Token",
40+
"token": " ",
41+
"value": " ",
42+
"keyword": null,
43+
"type": 3,
44+
"flags": 0,
45+
"position": 13
46+
},
47+
{
48+
"@type": "PhpMyAdmin\\SqlParser\\Token",
49+
"token": "'N%'",
50+
"value": "N%",
51+
"keyword": null,
52+
"type": 7,
53+
"flags": 1,
54+
"position": 14
55+
},
56+
{
57+
"@type": "PhpMyAdmin\\SqlParser\\Token",
58+
"token": ";",
59+
"value": ";",
60+
"keyword": null,
61+
"type": 9,
62+
"flags": 0,
63+
"position": 18
64+
},
65+
{
66+
"@type": "PhpMyAdmin\\SqlParser\\Token",
67+
"token": "\n",
68+
"value": " ",
69+
"keyword": null,
70+
"type": 3,
71+
"flags": 0,
72+
"position": 19
73+
},
74+
{
75+
"@type": "PhpMyAdmin\\SqlParser\\Token",
76+
"token": null,
77+
"value": null,
78+
"keyword": null,
79+
"type": 9,
80+
"flags": 0,
81+
"position": null
82+
}
83+
],
84+
"count": 8,
85+
"idx": 8
86+
},
87+
"delimiter": ";",
88+
"delimiterLen": 1,
89+
"strict": false,
90+
"errors": []
91+
},
92+
"parser": {
93+
"@type": "PhpMyAdmin\\SqlParser\\Parser",
94+
"list": {
95+
"@type": "@1"
96+
},
97+
"statements": [
98+
{
99+
"@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement",
100+
"bodyParser": null,
101+
"statementAlias": "DESCRIBE",
102+
"connectionId": null,
103+
"explainedTable": "Shop",
104+
"options": {
105+
"@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
106+
"options": []
107+
},
108+
"first": 0,
109+
"last": 2
110+
}
111+
],
112+
"brackets": 0,
113+
"strict": false,
114+
"errors": []
115+
},
116+
"errors": {
117+
"lexer": [],
118+
"parser": [
119+
[
120+
"Unexpected beginning of statement.",
121+
{
122+
"@type": "@6"
123+
},
124+
0
125+
]
126+
]
127+
}
128+
}

tests/data/parser/parseExplain7.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DESCRIBE Shop 'Name';
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
{
2+
"query": "DESCRIBE Shop 'Name';",
3+
"lexer": {
4+
"@type": "PhpMyAdmin\\SqlParser\\Lexer",
5+
"str": "DESCRIBE Shop 'Name';",
6+
"len": 21,
7+
"last": 21,
8+
"list": {
9+
"@type": "PhpMyAdmin\\SqlParser\\TokensList",
10+
"tokens": [
11+
{
12+
"@type": "PhpMyAdmin\\SqlParser\\Token",
13+
"token": "DESCRIBE",
14+
"value": "DESCRIBE",
15+
"keyword": "DESCRIBE",
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": 8
28+
},
29+
{
30+
"@type": "PhpMyAdmin\\SqlParser\\Token",
31+
"token": "Shop",
32+
"value": "Shop",
33+
"keyword": null,
34+
"type": 0,
35+
"flags": 0,
36+
"position": 9
37+
},
38+
{
39+
"@type": "PhpMyAdmin\\SqlParser\\Token",
40+
"token": " ",
41+
"value": " ",
42+
"keyword": null,
43+
"type": 3,
44+
"flags": 0,
45+
"position": 13
46+
},
47+
{
48+
"@type": "PhpMyAdmin\\SqlParser\\Token",
49+
"token": "'Name'",
50+
"value": "Name",
51+
"keyword": null,
52+
"type": 7,
53+
"flags": 1,
54+
"position": 14
55+
},
56+
{
57+
"@type": "PhpMyAdmin\\SqlParser\\Token",
58+
"token": ";",
59+
"value": ";",
60+
"keyword": null,
61+
"type": 9,
62+
"flags": 0,
63+
"position": 20
64+
},
65+
{
66+
"@type": "PhpMyAdmin\\SqlParser\\Token",
67+
"token": null,
68+
"value": null,
69+
"keyword": null,
70+
"type": 9,
71+
"flags": 0,
72+
"position": null
73+
}
74+
],
75+
"count": 7,
76+
"idx": 7
77+
},
78+
"delimiter": ";",
79+
"delimiterLen": 1,
80+
"strict": false,
81+
"errors": []
82+
},
83+
"parser": {
84+
"@type": "PhpMyAdmin\\SqlParser\\Parser",
85+
"list": {
86+
"@type": "@1"
87+
},
88+
"statements": [
89+
{
90+
"@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement",
91+
"bodyParser": null,
92+
"statementAlias": "DESCRIBE",
93+
"connectionId": null,
94+
"explainedTable": "Shop",
95+
"options": {
96+
"@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
97+
"options": []
98+
},
99+
"first": 0,
100+
"last": 2
101+
}
102+
],
103+
"brackets": 0,
104+
"strict": false,
105+
"errors": []
106+
},
107+
"errors": {
108+
"lexer": [],
109+
"parser": [
110+
[
111+
"Unexpected beginning of statement.",
112+
{
113+
"@type": "@6"
114+
},
115+
0
116+
]
117+
]
118+
}
119+
}

tests/data/parser/parseExplain8.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DESCRIBE Shop N__e;

0 commit comments

Comments
 (0)