@Override public ParseNode createNode(List<ParseNode> children) { return NODE_FACTORY.comparison(node.getFilterOp(), children.get(0), children.get(1)); } });
@Override public ParseNode visitLeave(ComparisonParseNode node, List<ParseNode> nodes) throws SQLException { if (nodes.get(0).isStateless() && !nodes.get(1).isStateless() && !(nodes.get(1) instanceof ArrayElemRefNode)) { List<ParseNode> normNodes = Lists.newArrayListWithExpectedSize(2); normNodes.add(nodes.get(1)); normNodes.add(nodes.get(0)); nodes = normNodes; node = NODE_FACTORY.comparison(node.getInvertFilterOp(), nodes.get(0), nodes.get(1)); } return super.visitLeave(node, nodes); }
@Override public ParseNode visitLeave(ArrayAnyComparisonNode node, List<ParseNode> l) throws SQLException { ComparisonParseNode compare = (ComparisonParseNode) l.get(1); ParseNode lhs = compare.getLHS(); List<ParseNode> rhs = generateDummyValues(lhs, false); return NODE_FACTORY.comparison(compare.getFilterOp(), lhs, rhs.get(0)); }
@Override public ParseNode visitLeave(ArrayAllComparisonNode node, List<ParseNode> l) throws SQLException { ComparisonParseNode compare = (ComparisonParseNode) l.get(1); ParseNode lhs = compare.getLHS(); List<ParseNode> rhs = generateDummyValues(lhs, false); return NODE_FACTORY.comparison(compare.getFilterOp(), lhs, rhs.get(0)); } }
public ArrayAllComparisonNode wrapInAll(CompareOp op, ParseNode lhs, ParseNode rhs) { return new ArrayAllComparisonNode(rhs, comparison(op, lhs, elementRef(Arrays.<ParseNode>asList(rhs, literal(1))))); }
public ArrayAnyComparisonNode wrapInAny(CompareOp op, ParseNode lhs, ParseNode rhs) { return new ArrayAnyComparisonNode(rhs, comparison(op, lhs, elementRef(Arrays.<ParseNode>asList(rhs, literal(1))))); }
subqueryNode = NODE_FACTORY.subquery(subquery, true); l = Lists.newArrayList(l.get(0), subqueryNode); node = NODE_FACTORY.comparison(node.getFilterOp(), l.get(0), l.get(1)); return super.visitLeave(node, l); TableNode rhsTable = NODE_FACTORY.derivedTable(rhsTableAlias, subquery); JoinType joinType = isTopNode ? JoinType.Inner : JoinType.Left; ParseNode ret = NODE_FACTORY.comparison(node.getFilterOp(), l.get(0), NODE_FACTORY.column(NODE_FACTORY.table(null, rhsTableAlias), selectNodes.get(0).getAlias(), null)); tableNode = NODE_FACTORY.join(joinType, tableNode, rhsTable, onNode, !isAggregate || isGroupby);
secondChild = NODE_FACTORY.comparison(secondChild.getFilterOp(), secondChild.getLHS(), NODE_FACTORY.elementRef(Lists.newArrayList(firstChild, NODE_FACTORY.literal(1))));
if ( state.backtracking==0 ) {ret = all != null ? factory.wrapInAll(op, l, r) : any != null ? factory.wrapInAny(op, l, r) : factory.comparison(op,l,r); }
@Override public ParseNode createNode(List<ParseNode> children) { return NODE_FACTORY.comparison(node.getFilterOp(), children.get(0), children.get(1)); } });
@Override public ParseNode createNode(List<ParseNode> children) { return NODE_FACTORY.comparison(node.getFilterOp(), children.get(0), children.get(1)); } });
@Override public ParseNode visitLeave(ComparisonParseNode node, List<ParseNode> nodes) throws SQLException { if (nodes.get(0).isStateless() && !nodes.get(1).isStateless() && !(nodes.get(1) instanceof ArrayElemRefNode)) { List<ParseNode> normNodes = Lists.newArrayListWithExpectedSize(2); normNodes.add(nodes.get(1)); normNodes.add(nodes.get(0)); nodes = normNodes; node = NODE_FACTORY.comparison(node.getInvertFilterOp(), nodes.get(0), nodes.get(1)); } return super.visitLeave(node, nodes); }
@Override public ParseNode visitLeave(ComparisonParseNode node, List<ParseNode> nodes) throws SQLException { if (nodes.get(0).isStateless() && !nodes.get(1).isStateless() && !(nodes.get(1) instanceof ArrayElemRefNode)) { List<ParseNode> normNodes = Lists.newArrayListWithExpectedSize(2); normNodes.add(nodes.get(1)); normNodes.add(nodes.get(0)); nodes = normNodes; node = NODE_FACTORY.comparison(node.getInvertFilterOp(), nodes.get(0), nodes.get(1)); } return super.visitLeave(node, nodes); }
@Override public ParseNode visitLeave(ArrayAllComparisonNode node, List<ParseNode> l) throws SQLException { ComparisonParseNode compare = (ComparisonParseNode) l.get(1); ParseNode lhs = compare.getLHS(); List<ParseNode> rhs = generateDummyValues(lhs, false); return NODE_FACTORY.comparison(compare.getFilterOp(), lhs, rhs.get(0)); } }
@Override public ParseNode visitLeave(ArrayAllComparisonNode node, List<ParseNode> l) throws SQLException { ComparisonParseNode compare = (ComparisonParseNode) l.get(1); ParseNode lhs = compare.getLHS(); List<ParseNode> rhs = generateDummyValues(lhs, false); return NODE_FACTORY.comparison(compare.getFilterOp(), lhs, rhs.get(0)); } }
@Override public ParseNode visitLeave(ArrayAnyComparisonNode node, List<ParseNode> l) throws SQLException { ComparisonParseNode compare = (ComparisonParseNode) l.get(1); ParseNode lhs = compare.getLHS(); List<ParseNode> rhs = generateDummyValues(lhs, false); return NODE_FACTORY.comparison(compare.getFilterOp(), lhs, rhs.get(0)); }
@Override public ParseNode visitLeave(ArrayAnyComparisonNode node, List<ParseNode> l) throws SQLException { ComparisonParseNode compare = (ComparisonParseNode) l.get(1); ParseNode lhs = compare.getLHS(); List<ParseNode> rhs = generateDummyValues(lhs, false); return NODE_FACTORY.comparison(compare.getFilterOp(), lhs, rhs.get(0)); }
public ArrayAllComparisonNode wrapInAll(CompareOp op, ParseNode lhs, ParseNode rhs) { return new ArrayAllComparisonNode(rhs, comparison(op, lhs, elementRef(Arrays.<ParseNode>asList(rhs, literal(1))))); }
public ArrayAnyComparisonNode wrapInAny(CompareOp op, ParseNode lhs, ParseNode rhs) { return new ArrayAnyComparisonNode(rhs, comparison(op, lhs, elementRef(Arrays.<ParseNode>asList(rhs, literal(1))))); }
public ArrayAllComparisonNode wrapInAll(CompareOp op, ParseNode lhs, ParseNode rhs) { return new ArrayAllComparisonNode(rhs, comparison(op, lhs, elementRef(Arrays.<ParseNode>asList(rhs, literal(1))))); }