File tree Expand file tree Collapse file tree 12 files changed +151
-20
lines changed
jjtree/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/statement Expand file tree Collapse file tree 12 files changed +151
-20
lines changed Original file line number Diff line number Diff line change @@ -60,6 +60,7 @@ Also I would like to know about needed examples or documentation stuff.
6060
6161## Extensions in the latest SNAPSHOT version 2.1
6262
63+ * support for ** show** statment (API - change)
6364* introduces Statement streaming support by ** CCJSqlParserUtil.streamStatements**
6465* improved nested bracket parsing performance by a large scale
6566
Original file line number Diff line number Diff line change 1+ /*-
2+ * #%L
3+ * JSQLParser library
4+ * %%
5+ * Copyright (C) 2004 - 2019 JSQLParser
6+ * %%
7+ * Dual licensed under GNU LGPL 2.1 or Apache License 2.0
8+ * #L%
9+ */
10+ package net .sf .jsqlparser .statement ;
11+
12+ public class ShowColumnsStatement implements Statement {
13+
14+ private String tableName ;
15+
16+ public ShowColumnsStatement (String tableName ) {
17+ this .tableName = tableName ;
18+ }
19+
20+ public String getTableName () {
21+ return tableName ;
22+ }
23+
24+ public void setTableName (String tableName ) {
25+ this .tableName = tableName ;
26+ }
27+
28+ @ Override
29+ public String toString () {
30+ return "SHOW COLUMNS FROM " + tableName ;
31+ }
32+
33+ @ Override
34+ public void accept (StatementVisitor statementVisitor ) {
35+ statementVisitor .visit (this );
36+ }
37+ }
Original file line number Diff line number Diff line change 1111
1212public class ShowStatement implements Statement {
1313
14- private String tableName ;
14+ private String name ;
1515
16- public ShowStatement (String tableName ) {
17- this .tableName = tableName ;
16+ public ShowStatement (String name ) {
17+ this .name = name ;
1818 }
1919
20- public String getTableName () {
21- return tableName ;
20+ public String getName () {
21+ return name ;
2222 }
2323
24- public void setTableName (String tableName ) {
25- this .tableName = tableName ;
24+ public void setName (String name ) {
25+ this .name = name ;
2626 }
2727
2828 @ Override
2929 public String toString () {
30- return "SHOW COLUMNS FROM " + tableName ;
30+ return "SHOW " + name ;
3131 }
3232
3333 @ Override
Original file line number Diff line number Diff line change @@ -61,7 +61,7 @@ public interface StatementVisitor {
6161
6262 void visit (SetStatement set );
6363
64- void visit (ShowStatement set );
64+ void visit (ShowColumnsStatement set );
6565
6666 void visit (Merge merge );
6767
@@ -78,4 +78,6 @@ public interface StatementVisitor {
7878 void visit (DescribeStatement describe );
7979
8080 public void visit (ExplainStatement aThis );
81+
82+ public void visit (ShowStatement aThis );
8183}
Original file line number Diff line number Diff line change @@ -112,7 +112,7 @@ public void visit(SetStatement set) {
112112 }
113113
114114 @ Override
115- public void visit (ShowStatement set ) {
115+ public void visit (ShowColumnsStatement set ) {
116116 }
117117
118118 @ Override
@@ -147,4 +147,8 @@ public void visit(DescribeStatement describe) {
147147 @ Override
148148 public void visit (ExplainStatement aThis ) {
149149 }
150+
151+ @ Override
152+ public void visit (ShowStatement aThis ) {
153+ }
150154}
Original file line number Diff line number Diff line change 8888import net .sf .jsqlparser .statement .DescribeStatement ;
8989import net .sf .jsqlparser .statement .ExplainStatement ;
9090import net .sf .jsqlparser .statement .SetStatement ;
91+ import net .sf .jsqlparser .statement .ShowColumnsStatement ;
9192import net .sf .jsqlparser .statement .ShowStatement ;
9293import net .sf .jsqlparser .statement .Statement ;
9394import net .sf .jsqlparser .statement .StatementVisitor ;
@@ -733,7 +734,7 @@ public void visit(SetStatement set) {
733734 }
734735
735736 @ Override
736- public void visit (ShowStatement set ) {
737+ public void visit (ShowColumnsStatement set ) {
737738 throw new UnsupportedOperationException (NOT_SUPPORTED_YET );
738739 }
739740
@@ -851,4 +852,8 @@ public void visit(NextValExpression nextVal) {
851852 public void visit (CollateExpression col ) {
852853 col .getLeftExpression ().accept (this );
853854 }
855+
856+ @ Override
857+ public void visit (ShowStatement aThis ) {
858+ }
854859}
Original file line number Diff line number Diff line change 1+ /*-
2+ * #%L
3+ * JSQLParser library
4+ * %%
5+ * Copyright (C) 2004 - 2019 JSQLParser
6+ * %%
7+ * Dual licensed under GNU LGPL 2.1 or Apache License 2.0
8+ * #L%
9+ */
10+ package net .sf .jsqlparser .util .deparser ;
11+
12+ import net .sf .jsqlparser .statement .ShowColumnsStatement ;
13+
14+ public class ShowColumnsStatementDeParser {
15+
16+ protected StringBuilder buffer ;
17+
18+ public ShowColumnsStatementDeParser (StringBuilder buffer ) {
19+ this .buffer = buffer ;
20+ }
21+
22+ public StringBuilder getBuffer () {
23+ return buffer ;
24+ }
25+
26+ public void setBuffer (StringBuilder buffer ) {
27+ this .buffer = buffer ;
28+ }
29+
30+ public void deParse (ShowColumnsStatement show ) {
31+ buffer .append ("SHOW COLUMNS FROM " ).append (show .getTableName ());
32+ }
33+ }
Original file line number Diff line number Diff line change @@ -28,6 +28,6 @@ public void setBuffer(StringBuilder buffer) {
2828 }
2929
3030 public void deParse (ShowStatement show ) {
31- buffer .append ("SHOW COLUMNS FROM " ).append (show .getTableName ());
31+ buffer .append ("SHOW " ).append (show .getName ());
3232 }
3333}
Original file line number Diff line number Diff line change 1515import net .sf .jsqlparser .statement .DescribeStatement ;
1616import net .sf .jsqlparser .statement .ExplainStatement ;
1717import net .sf .jsqlparser .statement .SetStatement ;
18+ import net .sf .jsqlparser .statement .ShowColumnsStatement ;
1819import net .sf .jsqlparser .statement .ShowStatement ;
1920import net .sf .jsqlparser .statement .Statement ;
2021import net .sf .jsqlparser .statement .StatementVisitor ;
@@ -223,8 +224,8 @@ public void visit(UseStatement use) {
223224 }
224225
225226 @ Override
226- public void visit (ShowStatement show ) {
227- new ShowStatementDeParser (buffer ).deParse (show );
227+ public void visit (ShowColumnsStatement show ) {
228+ new ShowColumnsStatementDeParser (buffer ).deParse (show );
228229 }
229230
230231 @ Override
@@ -261,4 +262,9 @@ public void visit(ExplainStatement explain) {
261262 buffer .append ("EXPLAIN " );
262263 explain .getStatement ().accept (this );
263264 }
265+
266+ @ Override
267+ public void visit (ShowStatement show ) {
268+ new ShowStatementDeParser (buffer ).deParse (show );
269+ }
264270}
Original file line number Diff line number Diff line change @@ -407,6 +407,8 @@ Statement SingleStatement() :
407407 |
408408 stm = Set()
409409 |
410+ LOOKAHEAD(2) stm = ShowColumns()
411+ |
410412 stm = Show()
411413 |
412414 stm = Use()
@@ -538,13 +540,23 @@ UseStatement Use(): {
538540 }
539541}
540542
541- ShowStatement Show (): {
543+ ShowColumnsStatement ShowColumns (): {
542544 String tableName;
543545}
544546{
545547 <K_SHOW> <K_COLUMNS> <K_FROM> tableName = RelObjectNameExt()
546548 {
547- return new ShowStatement(tableName);
549+ return new ShowColumnsStatement(tableName);
550+ }
551+ }
552+
553+ ShowStatement Show(): {
554+ String name;
555+ }
556+ {
557+ <K_SHOW> name = RelObjectNameExt()
558+ {
559+ return new ShowStatement(name);
548560 }
549561}
550562
You can’t perform that action at this time.
0 commit comments