Skip to content

Commit 4da4f13

Browse files
committed
Merge origin/master
Conflicts: src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java
2 parents c0801a7 + 572a6c6 commit 4da4f13

File tree

6 files changed

+38
-4
lines changed

6 files changed

+38
-4
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ Look here for more information and examples: https://github.com/JSQLParser/JSqlP
1717

1818
JSqlParser is dual licensed under **LGPL V2.1** and **Apache Software License, Version 2.0**.
1919

20+
## Discussion
21+
22+
Please provide feedback on https://github.com/JSQLParser/JSqlParser/issues/677, about removing bracket identifier quotation to support array processing.
2023

2124
## News
2225
* Released version **1.3** of JSqlParser

src/main/java/net/sf/jsqlparser/statement/create/view/AlterView.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class AlterView implements Statement {
3535

3636
private Table view;
3737
private SelectBody selectBody;
38+
private boolean useReplace = false;
3839
private List<String> columnNames = null;
3940

4041
@Override
@@ -74,9 +75,23 @@ public void setColumnNames(List<String> columnNames) {
7475
this.columnNames = columnNames;
7576
}
7677

78+
public boolean isUseReplace() {
79+
return useReplace;
80+
}
81+
82+
public void setUseReplace(boolean useReplace) {
83+
this.useReplace = useReplace;
84+
}
85+
86+
7787
@Override
7888
public String toString() {
79-
StringBuilder sql = new StringBuilder("ALTER ");
89+
StringBuilder sql;
90+
if(useReplace){
91+
sql = new StringBuilder("REPLACE ");
92+
}else{
93+
sql = new StringBuilder("ALTER ");
94+
}
8095
sql.append("VIEW ");
8196
sql.append(view);
8297
if (columnNames != null) {

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ public AlterViewDeParser(StringBuilder buffer, SelectVisitor selectVisitor) {
5252
}
5353

5454
public void deParse(AlterView alterView) {
55-
buffer.append("ALTER ");
55+
if(alterView.isUseReplace()){
56+
buffer.append("REPLACE ");
57+
}else{
58+
buffer.append("ALTER ");
59+
}
5660
buffer.append("VIEW ").append(alterView.getView().getFullyQualifiedName());
5761
if (alterView.getColumnNames() != null) {
5862
buffer.append(PlainSelect.getStringList(alterView.getColumnNames(), true, true));

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,7 @@ Statement SingleStatement() :
396396
|
397397
stm = Delete()
398398
|
399+
LOOKAHEAD(2)
399400
stm = Replace()
400401
|
401402
LOOKAHEAD(2)
@@ -618,7 +619,7 @@ Replace Replace():
618619
Expression exp = null;
619620
}
620621
{
621-
<K_REPLACE> [<K_INTO> { replace.setUseIntoTables(true); }] table=Table()
622+
( <K_REPLACE> [LOOKAHEAD(2) <K_INTO> { replace.setUseIntoTables(true); }] table=Table() )
622623

623624
(
624625
(
@@ -3445,7 +3446,7 @@ AlterView AlterView():
34453446
List<String> columnNames = null;
34463447
}
34473448
{
3448-
<K_ALTER>
3449+
( (<K_ALTER> ) | (<K_REPLACE> {alterView.setUseReplace(true);}) )
34493450
<K_VIEW> view=Table() { alterView.setView(view); }
34503451
[ columnNames = ColumnsNamesList() { alterView.setColumnNames(columnNames); } ]
34513452
<K_AS>

src/test/java/net/sf/jsqlparser/statement/create/AlterViewTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,10 @@ public void testAlterView() throws JSQLParserException {
1111
String stmt = "ALTER VIEW myview AS SELECT * FROM mytab";
1212
assertSqlCanBeParsedAndDeparsed(stmt);
1313
}
14+
15+
@Test
16+
public void testReplaceView() throws JSQLParserException {
17+
String stmt = "REPLACE VIEW myview AS SELECT * FROM mytab";
18+
assertSqlCanBeParsedAndDeparsed(stmt);
19+
}
1420
}

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3284,6 +3284,11 @@ public void testCharNotParsedIssue718() throws JSQLParserException {
32843284
assertSqlCanBeParsedAndDeparsed("SELECT a FROM x WHERE a LIKE '%' + char(9) + '%'");
32853285
}
32863286

3287+
@Test
3288+
public void testTrueFalseLiteral() throws JSQLParserException {
3289+
assertSqlCanBeParsedAndDeparsed("SELECT * FROM tbl WHERE true OR clm1 = 3");
3290+
}
3291+
32873292
@Test
32883293
public void testRawStringExpressionIssue656() throws JSQLParserException {
32893294
for (String c : new String[]{"u", "e", "n", "r", "b", "rb"}) {

0 commit comments

Comments
 (0)