Java Code Examples for org.apache.calcite.sql.util.SqlBasicVisitor#ArgHandler

The following examples show how to use org.apache.calcite.sql.util.SqlBasicVisitor#ArgHandler . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SqlOverOperator.java    From Bats with Apache License 2.0 6 votes vote down vote up
/**
 * Accepts a {@link SqlVisitor}, and tells it to visit each child.
 *
 * @param visitor Visitor
 */
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    for (Ord<SqlNode> operand : Ord.zip(call.getOperandList())) {
      // if the second param is an Identifier then it's supposed to
      // be a name from a window clause and isn't part of the
      // group by check
      if (operand == null) {
        continue;
      }
      if (operand.i == 1 && operand.e instanceof SqlIdentifier) {
        continue;
      }
      argHandler.visitChild(visitor, call, operand.i, operand.e);
    }
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 2
Source File: SqlWindow.java    From Bats with Apache License 2.0 6 votes vote down vote up
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    for (Ord<SqlNode> operand : Ord.zip(call.getOperandList())) {
      // if the second param is an Identifier then it's supposed to
      // be a name from a window clause and isn't part of the
      // group by check
      if (operand.e == null) {
        continue;
      }
      if (operand.i == 1 && operand.e instanceof SqlIdentifier) {
        // skip refName
        continue;
      }
      argHandler.visitChild(visitor, call, operand.i, operand.e);
    }
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 3
Source File: SqlMatchRecognize.java    From Bats with Apache License 2.0 6 votes vote down vote up
@Override public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    List<SqlNode> operands = call.getOperandList();
    for (int i = 0; i < operands.size(); i++) {
      SqlNode operand = operands.get(i);
      if (operand == null) {
        continue;
      }
      argHandler.visitChild(visitor, call, i, operand);
    }
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 4
Source File: SqlOverOperator.java    From calcite with Apache License 2.0 6 votes vote down vote up
/**
 * Accepts a {@link SqlVisitor}, and tells it to visit each child.
 *
 * @param visitor Visitor
 */
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    for (Ord<SqlNode> operand : Ord.zip(call.getOperandList())) {
      // if the second param is an Identifier then it's supposed to
      // be a name from a window clause and isn't part of the
      // group by check
      if (operand == null) {
        continue;
      }
      if (operand.i == 1 && operand.e instanceof SqlIdentifier) {
        continue;
      }
      argHandler.visitChild(visitor, call, operand.i, operand.e);
    }
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 5
Source File: SqlWindow.java    From calcite with Apache License 2.0 6 votes vote down vote up
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    for (Ord<SqlNode> operand : Ord.zip(call.getOperandList())) {
      // if the second param is an Identifier then it's supposed to
      // be a name from a window clause and isn't part of the
      // group by check
      if (operand.e == null) {
        continue;
      }
      if (operand.i == 1 && operand.e instanceof SqlIdentifier) {
        // skip refName
        continue;
      }
      argHandler.visitChild(visitor, call, operand.i, operand.e);
    }
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 6
Source File: SqlMatchRecognize.java    From calcite with Apache License 2.0 6 votes vote down vote up
@Override public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    List<SqlNode> operands = call.getOperandList();
    for (int i = 0; i < operands.size(); i++) {
      SqlNode operand = operands.get(i);
      if (operand == null) {
        continue;
      }
      argHandler.visitChild(visitor, call, i, operand);
    }
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 7
Source File: SqlSnapshot.java    From Bats with Apache License 2.0 5 votes vote down vote up
@Override public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    List<SqlNode> operands = call.getOperandList();
    // skip the first operand
    for (int i = 1; i < operands.size(); i++) {
      argHandler.visitChild(visitor, call, i, operands.get(i));
    }
  } else {
    super.acceptCall(visitor, call, false, argHandler);
  }
}
 
Example 8
Source File: SqlAsOperator.java    From Bats with Apache License 2.0 5 votes vote down vote up
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    // Do not visit operands[1] -- it is not an expression.
    argHandler.visitChild(visitor, call, 0, call.operand(0));
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 9
Source File: SqlDotOperator.java    From Bats with Apache License 2.0 5 votes vote down vote up
@Override public <R> void acceptCall(SqlVisitor<R> visitor, SqlCall call,
    boolean onlyExpressions, SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    // Do not visit operands[1] -- it is not an expression.
    argHandler.visitChild(visitor, call, 0, call.operand(0));
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 10
Source File: SqlSelectOperator.java    From Bats with Apache License 2.0 5 votes vote down vote up
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (!onlyExpressions) {
    // None of the arguments to the SELECT operator are expressions.
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 11
Source File: SqlSnapshot.java    From calcite with Apache License 2.0 5 votes vote down vote up
@Override public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    List<SqlNode> operands = call.getOperandList();
    // skip the first operand
    for (int i = 1; i < operands.size(); i++) {
      argHandler.visitChild(visitor, call, i, operands.get(i));
    }
  } else {
    super.acceptCall(visitor, call, false, argHandler);
  }
}
 
Example 12
Source File: SqlAsOperator.java    From calcite with Apache License 2.0 5 votes vote down vote up
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    // Do not visit operands[1] -- it is not an expression.
    argHandler.visitChild(visitor, call, 0, call.operand(0));
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 13
Source File: SqlDotOperator.java    From calcite with Apache License 2.0 5 votes vote down vote up
@Override public <R> void acceptCall(SqlVisitor<R> visitor, SqlCall call,
    boolean onlyExpressions, SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (onlyExpressions) {
    // Do not visit operands[1] -- it is not an expression.
    argHandler.visitChild(visitor, call, 0, call.operand(0));
  } else {
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 14
Source File: SqlSelectOperator.java    From calcite with Apache License 2.0 5 votes vote down vote up
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  if (!onlyExpressions) {
    // None of the arguments to the SELECT operator are expressions.
    super.acceptCall(visitor, call, onlyExpressions, argHandler);
  }
}
 
Example 15
Source File: SqlOperator.java    From Bats with Apache License 2.0 3 votes vote down vote up
/**
 * Accepts a {@link SqlVisitor}, directing an
 * {@link org.apache.calcite.sql.util.SqlBasicVisitor.ArgHandler}
 * to visit an operand of a call.
 *
 * <p>The argument handler allows fine control about how the operands are
 * visited, and how the results are combined.
 *
 * @param visitor         Visitor
 * @param call            Call to visit
 * @param onlyExpressions If true, ignores operands which are not
 *                        expressions. For example, in the call to the
 *                        <code>AS</code> operator
 * @param argHandler      Called for each operand
 */
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  List<SqlNode> operands = call.getOperandList();
  for (int i = 0; i < operands.size(); i++) {
    argHandler.visitChild(visitor, call, i, operands.get(i));
  }
}
 
Example 16
Source File: SqlOperator.java    From calcite with Apache License 2.0 3 votes vote down vote up
/**
 * Accepts a {@link SqlVisitor}, directing an
 * {@link org.apache.calcite.sql.util.SqlBasicVisitor.ArgHandler}
 * to visit an operand of a call.
 *
 * <p>The argument handler allows fine control about how the operands are
 * visited, and how the results are combined.
 *
 * @param visitor         Visitor
 * @param call            Call to visit
 * @param onlyExpressions If true, ignores operands which are not
 *                        expressions. For example, in the call to the
 *                        <code>AS</code> operator
 * @param argHandler      Called for each operand
 */
public <R> void acceptCall(
    SqlVisitor<R> visitor,
    SqlCall call,
    boolean onlyExpressions,
    SqlBasicVisitor.ArgHandler<R> argHandler) {
  List<SqlNode> operands = call.getOperandList();
  for (int i = 0; i < operands.size(); i++) {
    argHandler.visitChild(visitor, call, i, operands.get(i));
  }
}