private static int prec(SqlOperator op) { return Math.max(op.getLeftPrec(), op.getRightPrec()); }
private static int prec(SqlOperator op) { return Math.max(op.getLeftPrec(), op.getRightPrec()); }
public DrillCalciteSqlOperatorWrapper(SqlOperator operator, final String rename, final List<DrillFuncHolder> functions) { super( operator.getName(), operator.getKind(), operator.getLeftPrec(), operator.getRightPrec(), TypeInferenceUtils.getDrillSqlReturnTypeInference( rename, functions), operator.getOperandTypeInference(), Checker.ANY_CHECKER); this.operator = operator; }
public void unparse( SqlWriter writer, SqlOperator operator, SqlCall call, int leftPrec, int rightPrec) { assert call.operandCount() == 1; writer.keyword(operator.getName()); call.operand(0).unparse(writer, operator.getLeftPrec(), operator.getRightPrec()); } },
public void unparse( SqlWriter writer, SqlOperator operator, SqlCall call, int leftPrec, int rightPrec) { assert call.operandCount() == 1; call.operand(0).unparse(writer, operator.getLeftPrec(), operator.getRightPrec()); writer.keyword(operator.getName()); } },
public void unparse( SqlWriter writer, SqlOperator operator, SqlCall call, int leftPrec, int rightPrec) { assert call.operandCount() == 1; call.operand(0).unparse(writer, operator.getLeftPrec(), operator.getRightPrec()); writer.keyword(operator.getName()); } },
public void unparse( SqlWriter writer, SqlOperator operator, SqlCall call, int leftPrec, int rightPrec) { assert call.operandCount() == 1; writer.keyword(operator.getName()); call.operand(0).unparse(writer, operator.getLeftPrec(), operator.getRightPrec()); } },
builder.prefix(item, op.getLeftPrec()); } else if (op instanceof SqlPostfixOperator) { builder.postfix(item, op.getRightPrec()); } else if (op instanceof SqlBinaryOperator) { builder.infix(item, op.getLeftPrec(), op.getLeftPrec() < op.getRightPrec()); } else if (op instanceof SqlSpecialOperator) { builder.special(item, op.getLeftPrec(), op.getRightPrec(), (parser, op2) -> { final List<PrecedenceClimbingParser.Token> tokens =
builder.prefix(item, op.getLeftPrec()); } else if (op instanceof SqlPostfixOperator) { builder.postfix(item, op.getRightPrec()); } else if (op instanceof SqlBinaryOperator) { builder.infix(item, op.getLeftPrec(), op.getLeftPrec() < op.getRightPrec()); } else if (op instanceof SqlSpecialOperator) { builder.special(item, op.getLeftPrec(), op.getRightPrec(), (parser, op2) -> { final List<PrecedenceClimbingParser.Token> tokens =
@Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { writer.startList(SqlWriter.FrameTypeEnum.SELECT); writer.sep(isUpsert() ? "UPSERT INTO" : "INSERT INTO"); final int opLeft = getOperator().getLeftPrec(); final int opRight = getOperator().getRightPrec(); targetTable.unparse(writer, opLeft, opRight); if (columnList != null) { columnList.unparse(writer, opLeft, opRight); } writer.newlineAndIndent(); source.unparse(writer, 0, 0); }
@Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { writer.startList(SqlWriter.FrameTypeEnum.SELECT); writer.sep(isUpsert() ? "UPSERT INTO" : "INSERT INTO"); final int opLeft = getOperator().getLeftPrec(); final int opRight = getOperator().getRightPrec(); targetTable.unparse(writer, opLeft, opRight); if (columnList != null) { columnList.unparse(writer, opLeft, opRight); } writer.newlineAndIndent(); source.unparse(writer, 0, 0); }
public void unparse( SqlWriter writer, int leftPrec, int rightPrec) { final SqlOperator operator = getOperator(); final SqlDialect dialect = writer.getDialect(); if (leftPrec > operator.getLeftPrec() || (operator.getRightPrec() <= rightPrec && (rightPrec != 0)) || writer.isAlwaysUseParentheses() && isA(SqlKind.EXPRESSION)) { final SqlWriter.Frame frame = writer.startList("(", ")"); dialect.unparseCall(writer, this, 0, 0); writer.endList(frame); } else { dialect.unparseCall(writer, this, leftPrec, rightPrec); } }
public void unparse( SqlWriter writer, int leftPrec, int rightPrec) { final SqlOperator operator = getOperator(); final SqlDialect dialect = writer.getDialect(); if (leftPrec > operator.getLeftPrec() || (operator.getRightPrec() <= rightPrec && (rightPrec != 0)) || writer.isAlwaysUseParentheses() && isA(SqlKind.EXPRESSION)) { final SqlWriter.Frame frame = writer.startList("(", ")"); dialect.unparseCall(writer, this, 0, 0); writer.endList(frame); } else { dialect.unparseCall(writer, this, leftPrec, rightPrec); } }
@Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { final SqlWriter.Frame frame = writer.startList(SqlWriter.FrameTypeEnum.SELECT, "DELETE FROM", ""); final int opLeft = getOperator().getLeftPrec(); final int opRight = getOperator().getRightPrec(); targetTable.unparse(writer, opLeft, opRight); if (alias != null) { writer.keyword("AS"); alias.unparse(writer, opLeft, opRight); } if (condition != null) { writer.sep("WHERE"); condition.unparse(writer, opLeft, opRight); } writer.endList(frame); }
@Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { final SqlWriter.Frame frame = writer.startList(SqlWriter.FrameTypeEnum.SELECT, "DELETE FROM", ""); final int opLeft = getOperator().getLeftPrec(); final int opRight = getOperator().getRightPrec(); targetTable.unparse(writer, opLeft, opRight); if (alias != null) { writer.keyword("AS"); alias.unparse(writer, opLeft, opRight); } if (condition != null) { writer.sep("WHERE"); condition.unparse(writer, opLeft, opRight); } writer.endList(frame); }
public static void unparseBinarySyntax( SqlOperator operator, SqlCall call, SqlWriter writer, int leftPrec, int rightPrec) { assert call.operandCount() == 2; final SqlWriter.Frame frame = writer.startList( (operator instanceof SqlSetOperator) ? SqlWriter.FrameTypeEnum.SETOP : SqlWriter.FrameTypeEnum.SIMPLE); call.operand(0).unparse(writer, leftPrec, operator.getLeftPrec()); final boolean needsSpace = operator.needsSpace(); writer.setNeedWhitespace(needsSpace); writer.sep(operator.getName()); writer.setNeedWhitespace(needsSpace); call.operand(1).unparse(writer, operator.getRightPrec(), rightPrec); writer.endList(frame); }
public static void unparseBinarySyntax( SqlOperator operator, SqlCall call, SqlWriter writer, int leftPrec, int rightPrec) { assert call.operandCount() == 2; final SqlWriter.Frame frame = writer.startList( (operator instanceof SqlSetOperator) ? SqlWriter.FrameTypeEnum.SETOP : SqlWriter.FrameTypeEnum.SIMPLE); call.operand(0).unparse(writer, leftPrec, operator.getLeftPrec()); final boolean needsSpace = operator.needsSpace(); writer.setNeedWhitespace(needsSpace); writer.sep(operator.getName()); writer.setNeedWhitespace(needsSpace); call.operand(1).unparse(writer, operator.getRightPrec(), rightPrec); writer.endList(frame); }
writer.newlineAndIndent(); explicandum.unparse( writer, getOperator().getLeftPrec(), getOperator().getRightPrec());
@Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { final SqlWriter.Frame frame = writer.startList(SqlWriter.FrameTypeEnum.SELECT, "UPDATE", ""); final int opLeft = getOperator().getLeftPrec(); final int opRight = getOperator().getRightPrec(); targetTable.unparse(writer, opLeft, opRight); if (alias != null) { writer.keyword("AS"); alias.unparse(writer, opLeft, opRight); } final SqlWriter.Frame setFrame = writer.startList(SqlWriter.FrameTypeEnum.UPDATE_SET_LIST, "SET", ""); for (Pair<SqlNode, SqlNode> pair : Pair.zip(getTargetColumnList(), getSourceExpressionList())) { writer.sep(","); SqlIdentifier id = (SqlIdentifier) pair.left; id.unparse(writer, opLeft, opRight); writer.keyword("="); SqlNode sourceExp = pair.right; sourceExp.unparse(writer, opLeft, opRight); } writer.endList(setFrame); if (condition != null) { writer.sep("WHERE"); condition.unparse(writer, opLeft, opRight); } writer.endList(frame); }
@Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { final SqlWriter.Frame frame = writer.startList(SqlWriter.FrameTypeEnum.SELECT, "UPDATE", ""); final int opLeft = getOperator().getLeftPrec(); final int opRight = getOperator().getRightPrec(); targetTable.unparse(writer, opLeft, opRight); if (alias != null) { writer.keyword("AS"); alias.unparse(writer, opLeft, opRight); } final SqlWriter.Frame setFrame = writer.startList(SqlWriter.FrameTypeEnum.UPDATE_SET_LIST, "SET", ""); for (Pair<SqlNode, SqlNode> pair : Pair.zip(getTargetColumnList(), getSourceExpressionList())) { writer.sep(","); SqlIdentifier id = (SqlIdentifier) pair.left; id.unparse(writer, opLeft, opRight); writer.keyword("="); SqlNode sourceExp = pair.right; sourceExp.unparse(writer, opLeft, opRight); } writer.endList(setFrame); if (condition != null) { writer.sep("WHERE"); condition.unparse(writer, opLeft, opRight); } writer.endList(frame); }