private KeySlots newKeyParts(KeySlot slot, List<Expression> extractNodes, List<KeyRange> keyRanges) { if (isDegenerate(keyRanges)) { return EMPTY_KEY_SLOTS; } return new SingleKeySlot(new BaseKeyPart(table, slot.getKeyPart().getColumn(), extractNodes), slot.getPKPosition(), slot.getPKSpan(), keyRanges, slot.getOrderPreserving()); }
private void addBindParamMetaData(ParseNode lhsNode, ParseNode rhsNode, Expression lhsExpr, Expression rhsExpr) throws SQLException { if (lhsNode instanceof BindParseNode) { context.getBindManager().addParamMetaData((BindParseNode)lhsNode, rhsExpr); } if (rhsNode instanceof BindParseNode) { context.getBindManager().addParamMetaData((BindParseNode)rhsNode, lhsExpr); } }
/** * Add expression to the expression manager, returning the same one if * already used. */ protected Expression addExpression(Expression expression) { return context.getExpressionManager().addIfAbsent(expression); }
@SuppressWarnings("unchecked") @Override public MutationPlan compilePlan(PhoenixStatement stmt, Sequence.ValueOp seqAction) throws SQLException { if(!getUdfParseNodes().isEmpty()) { stmt.throwIfUnallowedUserDefinedFunctions(getUdfParseNodes()); } UpsertCompiler compiler = new UpsertCompiler(stmt, this.getOperation()); MutationPlan plan = compiler.compile(this); plan.getContext().getSequenceManager().validateSequences(seqAction); return plan; } }
public MutationPlan compile(final List<TableRef> tableRefs, final byte[] emptyCF, final List<byte[]> projectCFs, final List<PColumn> deleteList, final long timestamp) throws SQLException { PhoenixStatement statement = new PhoenixStatement(connection); final StatementContext context = new StatementContext( statement, new MultipleTableRefColumnResolver(tableRefs), scan, new SequenceManager(statement)); return new PostDDLMutationPlan(context, tableRefs, timestamp, emptyCF, deleteList, projectCFs); }
@Override public ParameterMetaData getParameterMetaData() { return queryPlan.getContext().getBindManager().getParameterMetaData(); }
private Scan compileQuery(String query, List<Object> binds) throws SQLException { QueryPlan plan = getQueryPlan(query, binds); return plan.getContext().getScan(); }
public LiteralResultIterationPlan(Iterable<Tuple> tuples, StatementContext context, FilterableStatement statement, TableRef tableRef, RowProjector projection, Integer limit, Integer offset, OrderBy orderBy, ParallelIteratorFactory parallelIteratorFactory) throws SQLException { super(context, statement, tableRef, projection, context.getBindManager().getParameterMetaData(), limit, offset, orderBy, GroupBy.EMPTY_GROUP_BY, parallelIteratorFactory, null, null); this.tuples = tuples; }
@Override public Expression visit(SequenceValueParseNode node) throws SQLException { return context.getSequenceManager().newSequenceReference(node); } }
@Override public String getColumnName(int column) throws SQLException { // TODO: will return alias if there is one return rowProjector.getColumnProjector(column-1).getName(); }
@Override public String getTableName(int column) throws SQLException { return rowProjector.getColumnProjector(column-1).getTableName(); }
@Override public boolean isCaseSensitive(int column) throws SQLException { return rowProjector.getColumnProjector(column-1).isCaseSensitive(); }
@Override protected ColumnRef resolveColumn(ColumnParseNode node) throws SQLException { ColumnRef columnRef = super.resolveColumn(node); if (isTopLevel()) { this.columnRef = columnRef; } return columnRef; }
private KeySlots newKeyParts(KeySlot slot, Expression extractNode, List<KeyRange> keyRanges) { if (isDegenerate(keyRanges)) { return EMPTY_KEY_SLOTS; } List<Expression> extractNodes = extractNode == null || slot.getKeyPart().getExtractNodes().isEmpty() ? Collections.<Expression>emptyList() : Collections.<Expression>singletonList(extractNode); return new SingleKeySlot(new BaseKeyPart(table, slot.getKeyPart().getColumn(), extractNodes), slot.getPKPosition(), slot.getPKSpan(), keyRanges, slot.getOrderPreserving()); }
@Override public ParameterMetaData getParameterMetaData() { return queryPlan.getContext().getBindManager().getParameterMetaData(); }
@Override public ParameterMetaData getParameterMetaData() { return context.getBindManager().getParameterMetaData(); }
@Override public ParameterMetaData getParameterMetaData() { return context.getBindManager().getParameterMetaData(); }
@Override public ParameterMetaData getParameterMetaData() { return context.getBindManager().getParameterMetaData(); }
@Override public ParameterMetaData getParameterMetaData() { return context.getBindManager().getParameterMetaData(); }
@Override public ParameterMetaData getParameterMetaData() { return context.getBindManager().getParameterMetaData(); }