Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
/**
* A "BETWEEN" expr1 expr2 statement
*/
public class Between extends ASTNodeAccessImpl implements Expression {
public class Between extends ASTNodeAccessImpl implements Expression, SupportsOldOracleJoinSyntax {

private Expression leftExpression;
private boolean not = false;
Expand Down Expand Up @@ -82,7 +82,8 @@ public <T, S> T accept(ExpressionVisitor<T> expressionVisitor, S context) {

@Override
public String toString() {
return leftExpression + " " + (not ? "NOT " : "") + "BETWEEN "
return (oraclePriorPosition == ORACLE_PRIOR_START ? "PRIOR " : "") + leftExpression + " "
+ (not ? "NOT " : "") + "BETWEEN "
+ (usingSymmetric ? "SYMMETRIC " : "") + (usingAsymmetric ? "ASYMMETRIC " : "")
+ betweenExpressionStart
+ " AND "
Expand Down Expand Up @@ -120,4 +121,39 @@ public <E extends Expression> E getBetweenExpressionStart(Class<E> type) {
public <E extends Expression> E getLeftExpression(Class<E> type) {
return type.cast(getLeftExpression());
}

private int oraclePriorPosition = NO_ORACLE_PRIOR;

@Override
public int getOldOracleJoinSyntax() {
return NO_ORACLE_JOIN;
}

@Override
public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) {
throw new IllegalArgumentException(
"oracle join operator (+) is not supported on this condition");
}

@Override
public Between withOldOracleJoinSyntax(int oldOracleJoinSyntax) {
setOldOracleJoinSyntax(oldOracleJoinSyntax);
return this;
}

@Override
public int getOraclePriorPosition() {
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int oraclePriorPosition) {
this.oraclePriorPosition = oraclePriorPosition;
}

public Between withOraclePriorPosition(int oraclePriorPosition) {
setOraclePriorPosition(oraclePriorPosition);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public class InExpression extends ASTNodeAccessImpl
private Expression rightExpression;
private int oldOracleJoinSyntax = NO_ORACLE_JOIN;

private int oraclePriorPosition = NO_ORACLE_PRIOR;

public InExpression() {}

public InExpression(Expression leftExpression, Expression rightExpression) {
Expand Down Expand Up @@ -94,6 +96,9 @@ private String getLeftExpressionString() {
@Override
public String toString() {
StringBuilder statementBuilder = new StringBuilder();
if (oraclePriorPosition == ORACLE_PRIOR_START) {
statementBuilder.append("PRIOR ");
}
statementBuilder.append(getLeftExpressionString());

statementBuilder.append(" ");
Expand All @@ -110,14 +115,12 @@ public String toString() {

@Override
public int getOraclePriorPosition() {
return SupportsOldOracleJoinSyntax.NO_ORACLE_PRIOR;
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int priorPosition) {
if (priorPosition != SupportsOldOracleJoinSyntax.NO_ORACLE_PRIOR) {
throw new IllegalArgumentException("unexpected prior for oracle found");
}
this.oraclePriorPosition = priorPosition;
}

public InExpression withRightExpression(Expression rightExpression) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
import net.sf.jsqlparser.expression.ExpressionVisitor;
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;

public class IsBooleanExpression extends ASTNodeAccessImpl implements Expression {
public class IsBooleanExpression extends ASTNodeAccessImpl
implements Expression, SupportsOldOracleJoinSyntax {

private Expression leftExpression;
private boolean not = false;
Expand Down Expand Up @@ -50,10 +51,11 @@ public <T, S> T accept(ExpressionVisitor<T> expressionVisitor, S context) {

@Override
public String toString() {
String prior = oraclePriorPosition == ORACLE_PRIOR_START ? "PRIOR " : "";
if (isTrue()) {
return leftExpression + " IS" + (not ? " NOT" : "") + " TRUE";
return prior + leftExpression + " IS" + (not ? " NOT" : "") + " TRUE";
} else {
return leftExpression + " IS" + (not ? " NOT" : "") + " FALSE";
return prior + leftExpression + " IS" + (not ? " NOT" : "") + " FALSE";
}
}

Expand All @@ -75,4 +77,39 @@ public IsBooleanExpression withNot(boolean not) {
public <E extends Expression> E getLeftExpression(Class<E> type) {
return type.cast(getLeftExpression());
}

private int oraclePriorPosition = NO_ORACLE_PRIOR;

@Override
public int getOldOracleJoinSyntax() {
return NO_ORACLE_JOIN;
}

@Override
public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) {
throw new IllegalArgumentException(
"oracle join operator (+) is not supported on this condition");
}

@Override
public IsBooleanExpression withOldOracleJoinSyntax(int oldOracleJoinSyntax) {
setOldOracleJoinSyntax(oldOracleJoinSyntax);
return this;
}

@Override
public int getOraclePriorPosition() {
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int oraclePriorPosition) {
this.oraclePriorPosition = oraclePriorPosition;
}

public IsBooleanExpression withOraclePriorPosition(int oraclePriorPosition) {
setOraclePriorPosition(oraclePriorPosition);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import net.sf.jsqlparser.expression.BinaryExpression;
import net.sf.jsqlparser.expression.ExpressionVisitor;

public class IsDistinctExpression extends BinaryExpression {
public class IsDistinctExpression extends BinaryExpression implements SupportsOldOracleJoinSyntax {

private boolean not = false;

Expand All @@ -36,7 +36,43 @@ public String getStringExpression() {

@Override
public String toString() {
String retval = getLeftExpression() + getStringExpression() + getRightExpression();
String retval = (oraclePriorPosition == ORACLE_PRIOR_START ? "PRIOR " : "")
+ getLeftExpression() + getStringExpression() + getRightExpression();
return retval;
}

private int oraclePriorPosition = NO_ORACLE_PRIOR;

@Override
public int getOldOracleJoinSyntax() {
return NO_ORACLE_JOIN;
}

@Override
public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) {
throw new IllegalArgumentException(
"oracle join operator (+) is not supported on this condition");
}

@Override
public IsDistinctExpression withOldOracleJoinSyntax(int oldOracleJoinSyntax) {
setOldOracleJoinSyntax(oldOracleJoinSyntax);
return this;
}

@Override
public int getOraclePriorPosition() {
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int oraclePriorPosition) {
this.oraclePriorPosition = oraclePriorPosition;
}

public IsDistinctExpression withOraclePriorPosition(int oraclePriorPosition) {
setOraclePriorPosition(oraclePriorPosition);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
import net.sf.jsqlparser.schema.Column;

public class IsNullExpression extends ASTNodeAccessImpl implements Expression {
public class IsNullExpression extends ASTNodeAccessImpl
implements Expression, SupportsOldOracleJoinSyntax {

private Expression leftExpression;
private boolean not = false;
Expand Down Expand Up @@ -72,12 +73,13 @@ public <T, S> T accept(ExpressionVisitor<T> expressionVisitor, S context) {

@Override
public String toString() {
String prior = oraclePriorPosition == ORACLE_PRIOR_START ? "PRIOR " : "";
if (useNotNull) {
return leftExpression + " NOTNULL";
return prior + leftExpression + " NOTNULL";
} else if (useIsNull) {
return leftExpression + (not ? " NOT" : "") + " ISNULL";
return prior + leftExpression + (not ? " NOT" : "") + " ISNULL";
} else {
return leftExpression + " IS " + (not ? "NOT " : "") + "NULL";
return prior + leftExpression + " IS " + (not ? "NOT " : "") + "NULL";
}
}

Expand All @@ -99,4 +101,39 @@ public IsNullExpression withNot(boolean not) {
public <E extends Expression> E getLeftExpression(Class<E> type) {
return type.cast(getLeftExpression());
}

private int oraclePriorPosition = NO_ORACLE_PRIOR;

@Override
public int getOldOracleJoinSyntax() {
return NO_ORACLE_JOIN;
}

@Override
public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) {
throw new IllegalArgumentException(
"oracle join operator (+) is not supported on this condition");
}

@Override
public IsNullExpression withOldOracleJoinSyntax(int oldOracleJoinSyntax) {
setOldOracleJoinSyntax(oldOracleJoinSyntax);
return this;
}

@Override
public int getOraclePriorPosition() {
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int oraclePriorPosition) {
this.oraclePriorPosition = oraclePriorPosition;
}

public IsNullExpression withOraclePriorPosition(int oraclePriorPosition) {
setOraclePriorPosition(oraclePriorPosition);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
import net.sf.jsqlparser.expression.ExpressionVisitor;
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;

public class IsUnknownExpression extends ASTNodeAccessImpl implements Expression {
public class IsUnknownExpression extends ASTNodeAccessImpl
implements Expression, SupportsOldOracleJoinSyntax {

private Expression leftExpression;
private boolean isNot = false;
Expand Down Expand Up @@ -41,7 +42,8 @@ public <T, S> T accept(ExpressionVisitor<T> expressionVisitor, S context) {

@Override
public String toString() {
return leftExpression + " IS" + (isNot ? " NOT" : "") + " UNKNOWN";
return (oraclePriorPosition == ORACLE_PRIOR_START ? "PRIOR " : "") + leftExpression + " IS"
+ (isNot ? " NOT" : "") + " UNKNOWN";
}

public IsUnknownExpression withLeftExpression(Expression leftExpression) {
Expand All @@ -57,4 +59,39 @@ public IsUnknownExpression withNot(boolean isNot) {
public <E extends Expression> E getLeftExpression(Class<E> type) {
return type.cast(getLeftExpression());
}

private int oraclePriorPosition = NO_ORACLE_PRIOR;

@Override
public int getOldOracleJoinSyntax() {
return NO_ORACLE_JOIN;
}

@Override
public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) {
throw new IllegalArgumentException(
"oracle join operator (+) is not supported on this condition");
}

@Override
public IsUnknownExpression withOldOracleJoinSyntax(int oldOracleJoinSyntax) {
setOldOracleJoinSyntax(oldOracleJoinSyntax);
return this;
}

@Override
public int getOraclePriorPosition() {
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int oraclePriorPosition) {
this.oraclePriorPosition = oraclePriorPosition;
}

public IsUnknownExpression withOraclePriorPosition(int oraclePriorPosition) {
setOraclePriorPosition(oraclePriorPosition);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.ExpressionVisitor;

public class LikeExpression extends BinaryExpression {
public class LikeExpression extends BinaryExpression implements SupportsOldOracleJoinSyntax {
private boolean not = false;
private boolean useBinary = false;
private Expression escapeExpression = null;
Expand Down Expand Up @@ -50,7 +50,8 @@ public String getStringExpression() {

@Override
public String toString() {
String retval = getLeftExpression() + " " + (not ? "NOT " : "")
String retval = (oraclePriorPosition == ORACLE_PRIOR_START ? "PRIOR " : "")
+ getLeftExpression() + " " + (not ? "NOT " : "")
+ (likeKeyWord == KeyWord.SIMILAR_TO ? "SIMILAR TO" : likeKeyWord) + " "
+ (useBinary ? "BINARY " : "") + getRightExpression();
if (escapeExpression != null) {
Expand Down Expand Up @@ -125,4 +126,39 @@ public static KeyWord from(String keyword) {
keyword.toUpperCase(Locale.ROOT).replaceAll("\\s+", "_"));
}
}

private int oraclePriorPosition = NO_ORACLE_PRIOR;

@Override
public int getOldOracleJoinSyntax() {
return NO_ORACLE_JOIN;
}

@Override
public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) {
throw new IllegalArgumentException(
"oracle join operator (+) is not supported on this condition");
}

@Override
public LikeExpression withOldOracleJoinSyntax(int oldOracleJoinSyntax) {
setOldOracleJoinSyntax(oldOracleJoinSyntax);
return this;
}

@Override
public int getOraclePriorPosition() {
return oraclePriorPosition;
}

@Override
public void setOraclePriorPosition(int oraclePriorPosition) {
this.oraclePriorPosition = oraclePriorPosition;
}

public LikeExpression withOraclePriorPosition(int oraclePriorPosition) {
setOraclePriorPosition(oraclePriorPosition);
return this;
}

}
Loading
Loading