public SQLMethodInvokeExpr(String methodName, SQLExpr owner, SQLExpr... params){ this.name = methodName; setOwner(owner); for (SQLExpr param : params) { this.addParameter(param); } }
private static SQLMethodInvokeExpr convertBinaryOperatorToMethod(String operator, SQLBinaryOpExpr expr) { SQLMethodInvokeExpr methodInvokeExpr = new SQLMethodInvokeExpr(operator, null); methodInvokeExpr.addParameter(expr.getLeft()); methodInvokeExpr.addParameter(expr.getRight()); return methodInvokeExpr; }
protected SQLExpr parsePosition() { SQLExpr subStr = this.primary(); accept(Token.IN); SQLExpr str = this.expr(); accept(Token.RPAREN); SQLMethodInvokeExpr locate = new SQLMethodInvokeExpr("LOCATE"); locate.addParameter(subStr); locate.addParameter(str); return primaryRest(locate); }
private boolean explanSpecialCondWithBothSidesAreProperty(SQLBinaryOpExpr bExpr, Where where) throws SqlParseException { //join is not support if ((bExpr.getLeft() instanceof SQLPropertyExpr || bExpr.getLeft() instanceof SQLIdentifierExpr) && (bExpr.getRight() instanceof SQLPropertyExpr || bExpr.getRight() instanceof SQLIdentifierExpr) && Sets.newHashSet("=", "<", ">", ">=", "<=").contains(bExpr.getOperator().getName()) && !Util.isFromJoinOrUnionTable(bExpr) ) { SQLMethodInvokeExpr sqlMethodInvokeExpr = new SQLMethodInvokeExpr("script", null); String operator = bExpr.getOperator().getName(); if (operator.equals("=")) { operator = "=="; } String leftProperty = Util.expr2Object(bExpr.getLeft()).toString(); String rightProperty = Util.expr2Object(bExpr.getRight()).toString(); if (leftProperty.split("\\.").length > 1) { leftProperty = leftProperty.substring(leftProperty.split("\\.")[0].length() + 1); } if (rightProperty.split("\\.").length > 1) { rightProperty = rightProperty.substring(rightProperty.split("\\.")[0].length() + 1); } sqlMethodInvokeExpr.addParameter(new SQLCharExpr( "doc['" + leftProperty + "'].value " + operator + " doc['" + rightProperty + "'].value")); explanCond("AND", sqlMethodInvokeExpr, where); return true; } return false; }
public SQLMethodInvokeExpr clone() { SQLMethodInvokeExpr x = new SQLMethodInvokeExpr(); x.name = name; if (owner != null) { x.setOwner(owner.clone()); } for (SQLExpr param : parameters) { x.addParameter(param.clone()); } if (from != null) { x.setFrom(from.clone()); } if (using != null) { x.setUsing(using.clone()); } return x; }
&& ((SQLIdentifierExpr) param0).nameHashCode64() == FnvHash.Constants.CURRENT_TIMESTAMP)) { SQLMethodInvokeExpr current_timestamp = new SQLMethodInvokeExpr("CURRENT_TIMESTAMP"); current_timestamp.addParameter(new SQLIntegerExpr(0)); if (dataType.nameHashCode64() == FnvHash.Constants.TIMESTAMP && dataType.getArguments().size() == 1) { x.addParameter(dataType.getArguments().get(0).clone()); } else { x.addParameter(new SQLIntegerExpr(0));
scriptMethod.addParameter(new SQLCharExpr(finalStr)); return scriptMethod;
protected SQLExpr parseAny() { SQLExpr sqlExpr; lexer.nextToken(); if (lexer.token == Token.LPAREN) { accept(Token.LPAREN); if (lexer.token == Token.ARRAY || lexer.token == Token.IDENTIFIER) { SQLExpr expr = this.expr(); SQLMethodInvokeExpr methodInvokeExpr = new SQLMethodInvokeExpr("ANY"); methodInvokeExpr.addParameter(expr); accept(Token.RPAREN); return methodInvokeExpr; } SQLSelect anySubQuery = createSelectParser().select(); SQLAnyExpr anyExpr = new SQLAnyExpr(anySubQuery); accept(Token.RPAREN); sqlExpr = anyExpr; } else { sqlExpr = new SQLIdentifierExpr("ANY"); } return sqlExpr; }
private boolean explanSpecialCondWithBothSidesAreLiterals(SQLBinaryOpExpr bExpr, Where where) throws SqlParseException { if ((bExpr.getLeft() instanceof SQLNumericLiteralExpr || bExpr.getLeft() instanceof SQLCharExpr) && (bExpr.getRight() instanceof SQLNumericLiteralExpr || bExpr.getRight() instanceof SQLCharExpr) ) { SQLMethodInvokeExpr sqlMethodInvokeExpr = new SQLMethodInvokeExpr("script", null); String operator = bExpr.getOperator().getName(); if (operator.equals("=")) { operator = "=="; } sqlMethodInvokeExpr.addParameter( new SQLCharExpr(Util.expr2Object(bExpr.getLeft(), "'") + " " + operator + " " + Util.expr2Object(bExpr.getRight(), "'")) ); explanCond("AND", sqlMethodInvokeExpr, where); return true; } return false; }
} else { if (lexer.token == Token.PLUS) { methodInvokeExpr.addParameter(new SQLIdentifierExpr("+")); lexer.nextToken(); } else {
concat.addParameter(expr); do { String chars = lexer.stringVal(); concat.addParameter(new SQLCharExpr(chars)); lexer.nextToken(); } while (lexer.token() == Token.LITERAL_CHARS || lexer.token() == Token.LITERAL_ALIAS); for (; ; ) { SQLExpr param = expr(); methodInvokeExpr.addParameter(param); lexer.nextToken(); SQLExpr from = expr(); methodInvokeExpr.addParameter(from); methodInvokeExpr.addParameter(forExpr); methodInvokeExpr.addParameter(param); locate.addParameter(subStr); locate.addParameter(str);
public SQLMethodInvokeExpr(String methodName, SQLExpr owner, SQLExpr... params){ this.name = methodName; setOwner(owner); for (SQLExpr param : params) { this.addParameter(param); } }
if (concat == null) { concat = new SQLMethodInvokeExpr("CONCAT"); concat.addParameter(sqlExpr); sqlExpr = concat; lexer.nextToken(); SQLCharExpr concat_right = new SQLCharExpr(alias.substring(1, alias.length() - 1)); concat.addParameter(concat_right); } else if (lexer.token == Token.LITERAL_CHARS || lexer.token == Token.LITERAL_NCHARS) { if (concat == null) { concat = new SQLMethodInvokeExpr("CONCAT"); concat.addParameter(sqlExpr); sqlExpr = concat; lexer.nextToken(); SQLCharExpr concat_right = new SQLCharExpr(chars); concat.addParameter(concat_right); } else { break;
protected SQLExpr parsePosition() { SQLExpr subStr = this.primary(); accept(Token.IN); SQLExpr str = this.expr(); accept(Token.RPAREN); SQLMethodInvokeExpr locate = new SQLMethodInvokeExpr("LOCATE"); locate.addParameter(subStr); locate.addParameter(str); return primaryRest(locate); }
public SQLMethodInvokeExpr clone() { SQLMethodInvokeExpr x = new SQLMethodInvokeExpr(); x.name = name; if (owner != null) { x.setOwner(owner.clone()); } for (SQLExpr param : parameters) { x.addParameter(param.clone()); } if (from != null) { x.setFrom(from.clone()); } if (using != null) { x.setUsing(using.clone()); } return x; }
&& ((SQLIdentifierExpr) param0).nameHashCode64() == FnvHash.Constants.CURRENT_TIMESTAMP)) { SQLMethodInvokeExpr current_timestamp = new SQLMethodInvokeExpr("CURRENT_TIMESTAMP"); current_timestamp.addParameter(new SQLIntegerExpr(0)); if (dataType.nameHashCode64() == FnvHash.Constants.TIMESTAMP && dataType.getArguments().size() == 1) { x.addParameter(dataType.getArguments().get(0).clone()); } else { x.addParameter(new SQLIntegerExpr(0));
protected SQLExpr parseAny() { SQLExpr sqlExpr; lexer.nextToken(); if (lexer.token == Token.LPAREN) { accept(Token.LPAREN); if (lexer.token == Token.ARRAY || lexer.token == Token.IDENTIFIER) { SQLExpr expr = this.expr(); SQLMethodInvokeExpr methodInvokeExpr = new SQLMethodInvokeExpr("ANY"); methodInvokeExpr.addParameter(expr); accept(Token.RPAREN); return methodInvokeExpr; } SQLSelect anySubQuery = createSelectParser().select(); SQLAnyExpr anyExpr = new SQLAnyExpr(anySubQuery); accept(Token.RPAREN); sqlExpr = anyExpr; } else { sqlExpr = new SQLIdentifierExpr("ANY"); } return sqlExpr; }
} else { if (lexer.token == Token.PLUS) { methodInvokeExpr.addParameter(new SQLIdentifierExpr("+")); lexer.nextToken(); } else {
@Override public SQLExpr toExpression() { SQLMethodInvokeExpr method = new SQLMethodInvokeExpr(funcName()); for (Item arg : args) { method.addParameter(arg.toExpression()); } return method; }
if (concat == null) { concat = new SQLMethodInvokeExpr("CONCAT"); concat.addParameter(sqlExpr); sqlExpr = concat; lexer.nextToken(); SQLCharExpr concat_right = new SQLCharExpr(alias.substring(1, alias.length() - 1)); concat.addParameter(concat_right); } else if (lexer.token == Token.LITERAL_CHARS || lexer.token == Token.LITERAL_NCHARS) { if (concat == null) { concat = new SQLMethodInvokeExpr("CONCAT"); concat.addParameter(sqlExpr); sqlExpr = concat; lexer.nextToken(); SQLCharExpr concat_right = new SQLCharExpr(chars); concat.addParameter(concat_right); } else { break;