Skip to content

Commit 5775a78

Browse files
committed
[feat] Added EXISTS keyword
1 parent 3908529 commit 5775a78

File tree

18 files changed

+69
-887
lines changed

18 files changed

+69
-887
lines changed

src/main/java/module-info.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,4 @@
5858
exports net.sf.jsqlparser.util.validation.feature;
5959
exports net.sf.jsqlparser.util.validation.metadata;
6060
exports net.sf.jsqlparser.util.validation.validator;
61-
exports net.sf.jsqlparser.expression.json;
62-
exports net.sf.jsqlparser.statement.from;
6361
}

src/main/java/net/sf/jsqlparser/expression/JsonTableFunction.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ public String getDisplay() {
3333
}
3434

3535
public enum JsonTableOnErrorType {
36-
ERROR, NULL, EMPTY
36+
ERROR, NULL, EMPTY, TRUE, FALSE
3737
}
3838

3939
public enum JsonTableOnEmptyType {
40-
ERROR, NULL, EMPTY
40+
ERROR, NULL, EMPTY, TRUE, FALSE
4141
}
4242

4343
public enum JsonTableParsingType {
@@ -466,6 +466,8 @@ public static class JsonTableValueColumnDefinition extends JsonTableColumnDefini
466466
private boolean forOrdinality;
467467
private ColDataType dataType;
468468
private boolean formatJson;
469+
private boolean exists;
470+
private boolean onEmptyAfterOnError;
469471
private String encoding;
470472
private Expression pathExpression;
471473
private JsonTableWrapperClause wrapperClause;
@@ -483,6 +485,17 @@ public JsonTableValueColumnDefinition setColumnName(String columnName) {
483485
return this;
484486
}
485487

488+
489+
public JsonTableValueColumnDefinition setExistsKeyword(boolean exists) {
490+
this.exists = exists;
491+
return this;
492+
}
493+
494+
public JsonTableValueColumnDefinition setOnEmptyAfterOnError(boolean b) {
495+
this.onEmptyAfterOnError = b;
496+
return this;
497+
}
498+
486499
public boolean isForOrdinality() {
487500
return forOrdinality;
488501
}
@@ -595,6 +608,9 @@ public String toString() {
595608
builder.append(" FOR ORDINALITY");
596609
return builder.toString();
597610
}
611+
if (exists) {
612+
builder.append(" EXISTS");
613+
}
598614
if (dataType != null) {
599615
builder.append(" ").append(dataType);
600616
}
@@ -621,12 +637,15 @@ public String toString() {
621637
if (quotesClause != null) {
622638
builder.append(" ").append(quotesClause);
623639
}
624-
if (onEmptyBehavior != null) {
640+
if (onEmptyBehavior != null && !onEmptyAfterOnError) {
625641
builder.append(" ").append(onEmptyBehavior).append(" ON EMPTY");
626642
}
627643
if (onErrorBehavior != null) {
628644
builder.append(" ").append(onErrorBehavior).append(" ON ERROR");
629645
}
646+
if (onEmptyBehavior != null && onEmptyAfterOnError) {
647+
builder.append(" ").append(onEmptyBehavior).append(" ON EMPTY");
648+
}
630649
return builder.toString();
631650
}
632651
}

src/main/java/net/sf/jsqlparser/expression/json/JsonOnEmptyType.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/main/java/net/sf/jsqlparser/expression/json/JsonOnErrorType.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/main/java/net/sf/jsqlparser/expression/json/JsonQueryWrapperType.java

Lines changed: 0 additions & 77 deletions
This file was deleted.

src/main/java/net/sf/jsqlparser/expression/json/JsonReturnClause.java

Lines changed: 0 additions & 71 deletions
This file was deleted.

src/main/java/net/sf/jsqlparser/expression/json/JsonReturnType.java

Lines changed: 0 additions & 73 deletions
This file was deleted.

0 commit comments

Comments
 (0)