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 newCoerceKeyPart(KeySlot slot, final CoerceExpression node) { if (isDegenerate(slot.getKeyRanges())) { return EMPTY_KEY_SLOTS;
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 newCoerceKeyPart(KeySlot slot, final CoerceExpression node) { if (isDegenerate(slot.getKeyRanges())) { return EMPTY_KEY_SLOTS;
private KeySlots newCoerceKeyPart(KeySlot slot, final CoerceExpression node) { if (isDegenerate(slot.getKeyRanges())) { return EMPTY_KEY_SLOTS;
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) { 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 KeySlots newScalarFunctionKeyPart(KeySlot slot, ScalarFunction node) { if (isDegenerate(slot.getKeyRanges())) { return EMPTY_KEY_SLOTS; } KeyPart part = node.newKeyPart(slot.getKeyPart()); if (part == null) { return null; } // Scalar function always returns primitive and never a row value constructor, so span is always 1 return new SingleKeySlot(part, slot.getPKPosition(), slot.getKeyRanges(), node.preservesOrder()); }
private KeySlots newScalarFunctionKeyPart(KeySlot slot, ScalarFunction node) { if (isDegenerate(slot.getKeyRanges())) { return EMPTY_KEY_SLOTS; } KeyPart part = node.newKeyPart(slot.getKeyPart()); if (part == null) { return null; } // Scalar function always returns primitive and never a row value constructor, so span is always 1 return new SingleKeySlot(part, slot.getPKPosition(), slot.getKeyRanges(), node.preservesOrder()); }
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()); }
private KeySlots newScalarFunctionKeyPart(KeySlot slot, ScalarFunction node) { if (isDegenerate(slot.getKeyRanges())) { return EMPTY_KEY_SLOTS; } KeyPart part = node.newKeyPart(slot.getKeyPart()); if (part == null) { return null; } // Scalar function always returns primitive and never a row value constructor, so span is always 1 return new SingleKeySlot(part, slot.getPKPosition(), slot.getKeyRanges(), node.preservesOrder()); }