/** * Creates a new {@code IS NOT NULL} predicate. * * @param column the column that the predicate applies to * @return an {@code IS NOT NULL} predicate */ public static KuduPredicate newIsNotNullPredicate(ColumnSchema column) { return new KuduPredicate(PredicateType.IS_NOT_NULL, column, null, null); }
/** * Factory function for a {@code None} predicate. * @param column the column to which the predicate applies * @return a None predicate */ @InterfaceAudience.LimitedPrivate("Test") static KuduPredicate none(ColumnSchema column) { return new KuduPredicate(PredicateType.NONE, column, null, null); }
return newIsNotNullPredicate(column); return new KuduPredicate(PredicateType.RANGE, column, value, null); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, value, null); case LESS: if (value.length == 0) { return none(column); return new KuduPredicate(PredicateType.RANGE, column, null, value); default: throw new RuntimeException("unknown comparison op");
/** * Creates a new {@code IS NULL} predicate. * * @param column the column that the predicate applies to * @return an {@code IS NULL} predicate */ public static KuduPredicate newIsNullPredicate(ColumnSchema column) { if (!column.isNullable()) { return none(column); } return new KuduPredicate(PredicateType.IS_NULL, column, null, null); }
/** * Builds an IN list predicate from a collection of raw values. The collection * must be sorted and deduplicated. * * @param column the column * @param values the IN list values * @return an IN list predicate */ private static KuduPredicate buildInList(ColumnSchema column, Collection<byte[]> values) { // IN (true, false) predicates can be simplified to IS NOT NULL. if (column.getType().getDataType(column.getTypeAttributes()) == Common.DataType.BOOL && values.size() > 1) { return newIsNotNullPredicate(column); } switch (values.size()) { case 0: return KuduPredicate.none(column); case 1: return new KuduPredicate(PredicateType.EQUALITY, column, values.iterator().next(), null); default: return new KuduPredicate(column, values.toArray(new byte[values.size()][])); } }
return newIsNotNullPredicate(column); return new KuduPredicate(PredicateType.RANGE, column, bytes, null); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); case LESS: if (bytes.length == 0) { return none(column); return new KuduPredicate(PredicateType.RANGE, column, null, bytes); default: throw new RuntimeException("unknown comparison op");
return newIsNotNullPredicate(column); } else if (value == Float.POSITIVE_INFINITY) { return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); return new KuduPredicate(PredicateType.RANGE, column, bytes, null); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); case LESS: if (value == Float.NEGATIVE_INFINITY) { return none(column); return new KuduPredicate(PredicateType.RANGE, column, null, bytes); default: throw new RuntimeException("unknown comparison op");
return newIsNotNullPredicate(column); } else if (value == Double.POSITIVE_INFINITY) { return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); return new KuduPredicate(PredicateType.RANGE, column, bytes, null); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); case LESS: if (value == Double.NEGATIVE_INFINITY) { return none(column); return new KuduPredicate(PredicateType.RANGE, column, null, bytes); default: throw new RuntimeException("unknown comparison op");
return none(column); } else { return new KuduPredicate(PredicateType.EQUALITY, column, Bytes.fromBoolean(true), null); return new KuduPredicate(PredicateType.EQUALITY, column, Bytes.fromBoolean(true), null); } else { return newIsNotNullPredicate(column); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, Bytes.fromBoolean(value), null); case LESS: { return new KuduPredicate(PredicateType.EQUALITY, column, Bytes.fromBoolean(false), null); } else { return none(column); return newIsNotNullPredicate(column); } else { return new KuduPredicate(PredicateType.EQUALITY, column, Bytes.fromBoolean(false), null);
private static KuduPredicate intRange(int lower, int upper) { Preconditions.checkArgument(lower < upper); return new KuduPredicate(RANGE, intCol, Bytes.fromInt(lower), Bytes.fromInt(upper)); }
return newIsNotNullPredicate(column); } else if (value.equals(maxValue)) { return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); return new KuduPredicate(PredicateType.RANGE, column, bytes, null); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); case LESS: if (value.equals(minValue)) { return none(column); return new KuduPredicate(PredicateType.RANGE, column, null, bytes); default: throw new RuntimeException("unknown comparison op");
return newIsNotNullPredicate(column); } else if (value == maxValue) { return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); return new KuduPredicate(PredicateType.RANGE, column, bytes, null); case EQUAL: return new KuduPredicate(PredicateType.EQUALITY, column, bytes, null); case LESS: if (value == minValue) { return none(column); return new KuduPredicate(PredicateType.RANGE, column, null, bytes); default: throw new RuntimeException("unknown comparison op");
switch (pb.getPredicateCase()) { case EQUALITY: return new KuduPredicate(PredicateType.EQUALITY, column, pb.getEquality().getValue().toByteArray(), null); case RANGE: { Common.ColumnPredicatePB.Range range = pb.getRange(); return new KuduPredicate(PredicateType.RANGE, column, range.hasLower() ? range.getLower().toByteArray() : null, range.hasUpper() ? range.getUpper().toByteArray() : null);
} else { if (newLower != null && newUpper != null && areConsecutive(newLower, newUpper)) { return new KuduPredicate(PredicateType.EQUALITY, column, newLower, null); } else { return new KuduPredicate(PredicateType.RANGE, column, newLower, newUpper);
new KuduPredicate(KuduPredicate.PredicateType.EQUALITY, boolCol, Bytes.fromBoolean(false), new KuduPredicate(RANGE, byteCol, new byte[] { (byte) 0 }, new KuduPredicate(RANGE, shortCol, Bytes.fromShort((short) 0), new KuduPredicate(RANGE, longCol, Bytes.fromLong(0), new KuduPredicate(RANGE, floatCol, Bytes.fromFloat(123.45f), new KuduPredicate(RANGE, doubleCol, Bytes.fromDouble(123.45), KuduPredicate.newComparisonPredicate(decimal32Col, LESS, BigDecimal.valueOf(67890,2)), new KuduPredicate(RANGE, decimal32Col, Bytes.fromBigDecimal(BigDecimal.valueOf(12345, 2),
new KuduPredicate(RANGE, stringCol, Bytes.fromString("a"), Bytes.fromString("a\0\0")));