Skip to content

Commit 77ff4a3

Browse files
committed
Merge remote-tracking branch 'origin/master' into feat/mysql-index-options
2 parents 28e132c + b2115ac commit 77ff4a3

29 files changed

Lines changed: 2464 additions & 122 deletions

src/main/java/net/sf/jsqlparser/parser/feature/Feature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ public enum Feature {
643643
/**
644644
* @see Grant
645645
*/
646-
grant,
646+
grant, revoke, createRole, alterRole, alterDefaultPrivileges,
647647
/**
648648
* @see Function
649649
*/

src/main/java/net/sf/jsqlparser/statement/StatementFeatureVisitor.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.statement.role.CreateRole;
13+
import net.sf.jsqlparser.statement.role.AlterRole;
14+
import net.sf.jsqlparser.statement.grant.Revoke;
15+
import net.sf.jsqlparser.statement.grant.AlterDefaultPrivileges;
16+
import net.sf.jsqlparser.statement.create.trigger.CreateTrigger;
1217
import net.sf.jsqlparser.statement.create.type.CreateType;
1318
import net.sf.jsqlparser.statement.alter.AlterType;
1419
import net.sf.jsqlparser.statement.create.domain.CreateDomain;
@@ -859,6 +864,31 @@ public <S> Void visit(TableFunction tableFunction, S context) {
859864
}
860865
}
861866

867+
@Override
868+
public <S> Void visit(CreateRole statement, S context) {
869+
return schemaOnly();
870+
}
871+
872+
@Override
873+
public <S> Void visit(AlterRole statement, S context) {
874+
return schemaOnly();
875+
}
876+
877+
@Override
878+
public <S> Void visit(Revoke statement, S context) {
879+
return schemaOnly();
880+
}
881+
882+
@Override
883+
public <S> Void visit(AlterDefaultPrivileges statement, S context) {
884+
return schemaOnly();
885+
}
886+
887+
@Override
888+
public <S> Void visit(CreateTrigger statement, S context) {
889+
return schemaOnly();
890+
}
891+
862892
@Override
863893
public <S> Void visit(CreateType statement, S context) {
864894
analysis.claimTopLevel();

src/main/java/net/sf/jsqlparser/statement/StatementVisitor.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.statement.role.CreateRole;
13+
import net.sf.jsqlparser.statement.role.AlterRole;
14+
import net.sf.jsqlparser.statement.grant.Revoke;
15+
import net.sf.jsqlparser.statement.grant.AlterDefaultPrivileges;
1216
import net.sf.jsqlparser.statement.create.type.CreateType;
1317
import net.sf.jsqlparser.statement.alter.AlterType;
1418
import net.sf.jsqlparser.statement.create.domain.CreateDomain;
@@ -404,6 +408,39 @@ default void visit(CreatePolicy createPolicy) {
404408
this.visit(createPolicy, null);
405409
}
406410

411+
412+
default <S> T visit(CreateRole statement, S context) {
413+
return null;
414+
}
415+
416+
default void visit(CreateRole statement) {
417+
visit(statement, null);
418+
}
419+
420+
default <S> T visit(AlterRole statement, S context) {
421+
return null;
422+
}
423+
424+
default void visit(AlterRole statement) {
425+
visit(statement, null);
426+
}
427+
428+
default <S> T visit(Revoke statement, S context) {
429+
return null;
430+
}
431+
432+
default void visit(Revoke statement) {
433+
visit(statement, null);
434+
}
435+
436+
default <S> T visit(AlterDefaultPrivileges statement, S context) {
437+
return null;
438+
}
439+
440+
default void visit(AlterDefaultPrivileges statement) {
441+
visit(statement, null);
442+
}
443+
407444
default <S> T visit(CreateType statement, S context) {
408445
return null;
409446
}

src/main/java/net/sf/jsqlparser/statement/StatementVisitorAdapter.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.statement.role.CreateRole;
13+
import net.sf.jsqlparser.statement.role.AlterRole;
14+
import net.sf.jsqlparser.statement.role.RoleOption;
15+
import net.sf.jsqlparser.statement.grant.Revoke;
16+
import net.sf.jsqlparser.statement.grant.AlterDefaultPrivileges;
1217
import net.sf.jsqlparser.statement.create.type.CreateType;
1318
import net.sf.jsqlparser.statement.alter.AlterType;
1419
import net.sf.jsqlparser.statement.create.domain.CreateDomain;
@@ -363,6 +368,11 @@ public <S> T visit(CreateTable createTable, S context) {
363368

364369
@Override
365370
public <S> T visit(CreateTrigger createTrigger, S context) {
371+
createTrigger.visit(t -> t.accept(fromItemVisitor, context),
372+
e -> e.accept(expressionVisitor, context));
373+
if (createTrigger.getBody() != null) {
374+
createTrigger.getBody().accept(this, context);
375+
}
366376
return null;
367377
}
368378

@@ -507,6 +517,8 @@ public <S> T visit(DeclareStatement declareStatement, S context) {
507517

508518
@Override
509519
public <S> T visit(Grant grant, S context) {
520+
grant.getClause().visit(t -> t.accept(fromItemVisitor, context),
521+
e -> e.accept(expressionVisitor, context));
510522
return null;
511523
}
512524

@@ -609,6 +621,47 @@ public <S> T visit(Export export, S context) {
609621
return null;
610622
}
611623

624+
@Override
625+
public <S> T visit(CreateRole statement, S context) {
626+
for (RoleOption option : statement.getOptions()) {
627+
if (option.getValue() != null) {
628+
option.getValue().accept(expressionVisitor, context);
629+
}
630+
}
631+
return null;
632+
}
633+
634+
@Override
635+
public <S> T visit(AlterRole statement, S context) {
636+
for (RoleOption option : statement.getOptions()) {
637+
if (option.getValue() != null) {
638+
option.getValue().accept(expressionVisitor, context);
639+
}
640+
}
641+
if (statement.getValues() != null) {
642+
statement.getValues().forEach(e -> e.accept(expressionVisitor, context));
643+
}
644+
return null;
645+
}
646+
647+
@Override
648+
public <S> T visit(Revoke statement, S context) {
649+
statement.getClause().visit(t -> t.accept(fromItemVisitor, context),
650+
e -> e.accept(expressionVisitor, context));
651+
return null;
652+
}
653+
654+
@Override
655+
public <S> T visit(AlterDefaultPrivileges statement, S context) {
656+
if (statement.getGrant() != null) {
657+
statement.getGrant().accept(this, context);
658+
}
659+
if (statement.getRevoke() != null) {
660+
statement.getRevoke().accept(this, context);
661+
}
662+
return null;
663+
}
664+
612665
@Override
613666
public <S> T visit(CreateType statement, S context) {
614667

src/main/java/net/sf/jsqlparser/statement/comment/Comment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ public String toString() {
6969
} else if (view != null) {
7070
sql += "VIEW " + view + " ";
7171
}
72-
sql += "IS " + comment;
72+
// a null comment stands for PostgreSQL's COMMENT ON ... IS NULL, which removes the comment
73+
sql += "IS " + (comment != null ? comment : "NULL");
7374
return sql;
7475
}
7576

0 commit comments

Comments
 (0)