Skip to content

Commit 1b2e708

Browse files
committed
Fix jjt
1 parent 7a5d01b commit 1b2e708

File tree

5 files changed

+30
-44
lines changed

5 files changed

+30
-44
lines changed

src/main/java/net/sf/jsqlparser/statement/refresh/RefreshMaterializedViewStatement.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515

1616
/**
1717
* REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name [ WITH [ NO ] DATA ]
18-
*
18+
* <p>
1919
* https://www.postgresql.org/docs/16/sql-refreshmaterializedview.html
20-
*
20+
*
2121
* @author jxni-liguobin
2222
*/
2323

2424
public class RefreshMaterializedViewStatement implements Statement {
2525

2626
private Table view;
27-
private RefreshMode refreshMode = RefreshMode.DEFAULT;
27+
private RefreshMode refreshMode;
2828
private boolean concurrently = false;
2929

3030
public RefreshMaterializedViewStatement() {}
@@ -65,6 +65,13 @@ public void setConcurrently(boolean concurrently) {
6565
public String toString() {
6666
StringBuilder builder = new StringBuilder();
6767
builder.append("REFRESH MATERIALIZED VIEW ");
68+
if (this.refreshMode == null) {
69+
if (concurrently) {
70+
builder.append("CONCURRENTLY ");
71+
}
72+
builder.append(view);
73+
return builder.toString();
74+
}
6875
switch (this.refreshMode) {
6976
case WITH_DATA:
7077
if (concurrently) {
@@ -79,12 +86,6 @@ public String toString() {
7986
builder.append(" WITH NO DATA");
8087
}
8188
break;
82-
case DEFAULT:
83-
if (concurrently) {
84-
builder.append("CONCURRENTLY ");
85-
}
86-
builder.append(view);
87-
break;
8889
}
8990
return builder.toString();
9091
}

src/main/java/net/sf/jsqlparser/util/deparser/RefreshMaterializedViewStatementDeParser.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import net.sf.jsqlparser.statement.refresh.RefreshMaterializedViewStatement;
1313

1414
/**
15-
*
1615
* @author jxnu-liguobin
1716
*/
1817

@@ -27,6 +26,13 @@ public RefreshMaterializedViewStatementDeParser(StringBuilder buffer) {
2726
@Override
2827
public void deParse(RefreshMaterializedViewStatement view) {
2928
buffer.append("REFRESH MATERIALIZED VIEW ");
29+
if (view.getRefreshMode() == null) {
30+
if (view.isConcurrently()) {
31+
buffer.append("CONCURRENTLY ");
32+
}
33+
buffer.append(view.getView());
34+
return;
35+
}
3036
switch (view.getRefreshMode()) {
3137
case WITH_DATA:
3238
if (view.isConcurrently()) {
@@ -41,12 +47,6 @@ public void deParse(RefreshMaterializedViewStatement view) {
4147
buffer.append(" WITH NO DATA");
4248
}
4349
break;
44-
case DEFAULT:
45-
if (view.isConcurrently()) {
46-
buffer.append("CONCURRENTLY ");
47-
}
48-
buffer.append(view.getView());
49-
break;
5050
}
5151
}
5252

src/main/java/net/sf/jsqlparser/util/validation/validator/RefreshMaterializedViewStatementValidator.java

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import net.sf.jsqlparser.parser.feature.Feature;
1313
import net.sf.jsqlparser.statement.refresh.RefreshMaterializedViewStatement;
14-
import net.sf.jsqlparser.statement.refresh.RefreshMode;
1514
import net.sf.jsqlparser.util.validation.ValidationCapability;
1615
import net.sf.jsqlparser.util.validation.metadata.NamedObject;
1716

@@ -28,30 +27,12 @@ public void validate(RefreshMaterializedViewStatement viewStatement) {
2827
viewStatement.getView().getName());
2928
for (ValidationCapability c : getCapabilities()) {
3029
// default
31-
validateFeature(c,
32-
viewStatement.getRefreshMode() == RefreshMode.DEFAULT
33-
&& !viewStatement.isConcurrently(),
30+
validateFeature(c, viewStatement.getRefreshMode() == null,
3431
Feature.refreshMaterializedView);
35-
validateFeature(c,
36-
viewStatement.getRefreshMode() == RefreshMode.DEFAULT
37-
&& viewStatement.isConcurrently(),
38-
Feature.refreshMaterializedView);
39-
4032
// specify WITH DATA
41-
validateFeature(c, viewStatement.getRefreshMode() == RefreshMode.WITH_DATA &&
42-
!viewStatement.isConcurrently(),
33+
validateOptionalFeature(c, viewStatement.getRefreshMode(),
4334
Feature.refreshMaterializedWithDataView);
44-
45-
// specify WITH DATA and CONCURRENTLY
46-
validateOptionalFeature(c,
47-
viewStatement.getRefreshMode() == RefreshMode.WITH_DATA
48-
&& viewStatement.isConcurrently(),
49-
Feature.refreshMaterializedWithDataView);
50-
51-
// specify WITH NO DATA
52-
validateOptionalFeature(c,
53-
viewStatement.getRefreshMode() == RefreshMode.WITH_NO_DATA
54-
&& !viewStatement.isConcurrently(),
35+
validateOptionalFeature(c, viewStatement.getRefreshMode(),
5536
Feature.refreshMaterializedWithNoDataView);
5637
}
5738
}

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1227,7 +1227,7 @@ ShowIndexStatement ShowIndex(): {
12271227
Statement RefreshMaterializedView(): {
12281228
Table view = null;
12291229
boolean concurrently = false;
1230-
RefreshMode refreshMode = RefreshMode.DEFAULT;
1230+
RefreshMode refreshMode = null;
12311231
List<String> captureRest;
12321232
}
12331233
{

src/test/java/net/sf/jsqlparser/util/validation/validator/RefreshMaterializedViewStatementValidatorTest.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.junit.jupiter.api.Test;
1818

1919
/**
20-
*
2120
* @author jxnu-liguobin
2221
*/
2322

@@ -53,10 +52,15 @@ public void testValidationRefreshWithConcurrently() throws Exception {
5352
@Test
5453
public void testValidationRefreshNotAllowed() throws Exception {
5554
for (String sql : Arrays.asList("REFRESH MATERIALIZED VIEW my_view")) {
56-
validateNotAllowed(sql, 1, 1, FeaturesAllowed.DML,
57-
Feature.refreshMaterializedView,
58-
Feature.refreshMaterializedWithNoDataView,
59-
Feature.refreshMaterializedWithDataView);
55+
validateNotAllowed(sql, 1, 1, FeaturesAllowed.SELECT,
56+
Feature.refreshMaterializedView);
57+
}
58+
59+
for (String sql : Arrays
60+
.asList("REFRESH MATERIALIZED VIEW CONCURRENTLY my_view WITH DATA")) {
61+
validateNotAllowed(sql, 1, 1, FeaturesAllowed.SELECT,
62+
Feature.refreshMaterializedView, Feature.refreshMaterializedWithDataView,
63+
Feature.refreshMaterializedWithNoDataView);
6064
}
6165
}
6266
}

0 commit comments

Comments
 (0)