@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
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 KeySlots visitLeave(IsNullExpression node, List<KeySlots> childParts) { if (childParts.isEmpty()) { return null; } KeySlots childSlots = childParts.get(0); KeySlot childSlot = childSlots.getSlots().get(0); PColumn column = childSlot.getKeyPart().getColumn(); PDataType type = column.getDataType(); boolean isFixedWidth = type.isFixedWidth(); // Nothing changes for IS NULL and IS NOT NULL when DESC since // we represent NULL the same way for ASC and DESC if (isFixedWidth) { // if column can't be null return node.isNegate() ? null : newKeyParts(childSlot, node, type.getKeyRange(new byte[SchemaUtil.getFixedByteSize(column)], true, KeyRange.UNBOUND, true)); } else { KeyRange keyRange = node.isNegate() ? KeyRange.IS_NOT_NULL_RANGE : KeyRange.IS_NULL_RANGE; return newKeyParts(childSlot, node, keyRange); } }
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()); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
@Override public PColumn getColumn() { return childPart.getColumn(); }
PColumn column = childSlot.getKeyPart().getColumn(); PDataType type = column.getDataType(); byte[] lowerRange = key;
public final KeySlot concatExtractNodes(List<Expression> extractNodes) { return new KeySlot( new BaseKeyPart(this.getKeyPart().getTable(), this.getKeyPart().getColumn(), SchemaUtil.concat(this.getKeyPart().getExtractNodes(),extractNodes)), this.getPKPosition(), this.getPKSpan(), this.getKeyRanges(), this.getOrderPreserving()); }
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()); }
private KeySlots newKeyParts(KeySlot slot, Expression extractNode, List<KeyRange> keyRanges, KeyRange minMaxRange) { 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, minMaxRange, slot.getOrderPreserving()); }
private KeySlots newKeyParts(KeySlot slot, List<Expression> extractNodes, List<KeyRange> keyRanges, KeyRange minMaxRange) { if (isDegenerate(keyRanges)) { return EMPTY_KEY_SLOTS; } return new SingleKeySlot(new BaseKeyPart(table, slot.getKeyPart().getColumn(), extractNodes), slot.getPKPosition(), slot.getPKSpan(), keyRanges, minMaxRange, slot.getOrderPreserving()); }
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()); }
public final KeySlot concatExtractNodes(List<Expression> extractNodes) { return new KeySlot( new BaseKeyPart(this.getKeyPart().getTable(), this.getKeyPart().getColumn(), SchemaUtil.concat(this.getKeyPart().getExtractNodes(),extractNodes)), this.getPKPosition(), this.getPKSpan(), this.getKeyRanges(), this.getOrderPreserving()); }
public final KeySlot concatExtractNodes(List<Expression> extractNodes) { return new KeySlot( new BaseKeyPart(this.getKeyPart().getTable(), this.getKeyPart().getColumn(), SchemaUtil.concat(this.getKeyPart().getExtractNodes(),extractNodes)), this.getPKPosition(), this.getPKSpan(), this.getKeyRanges(), this.getOrderPreserving()); }