private SelectOffsetStep<Record1<byte[]>> getRangeQuery(DSLContext ctx, TableReference tableRef, RangeRequest rangeRequest, long timestamp, int maxRows) { boolean reverse = rangeRequest.isReverse(); byte[] start = rangeRequest.getStartInclusive(); byte[] end = rangeRequest.getEndExclusive(); Condition cond = R_TIMESTAMP.lessThan(timestamp); if (start.length > 0) { cond = cond.and(reverse ? R_ROW_NAME.lessOrEqual(start) : R_ROW_NAME.greaterOrEqual(start)); } if (end.length > 0) { cond = cond.and(reverse ? R_ROW_NAME.greaterThan(end) : R_ROW_NAME.lessThan(end)); } return ctx.selectDistinct(R_ROW_NAME) .from(atlasTable(tableRef).as(RANGE_TABLE)) .where(cond) .orderBy(reverse ? R_ROW_NAME.desc() : R_ROW_NAME.asc()) .limit(maxRows); }
private Condition getCompareCondition(Object value, BiPredicate<?, ?> biPredicate, Field<Object> field) { String predicateString = biPredicate.toString(); switch (predicateString) { case ("eq"): return field.eq(value); case ("neq"): return field.notEqual(value); case ("gt"): return field.greaterThan(value); case ("gte"): return field.greaterOrEqual(value); case ("lt"): return field.lessThan(value); case ("lte"): return field.lessOrEqual(value); case ("inside"): List items = (List) value; Object firstItem = items.get(0); Object secondItem = items.get(1); return field.between(firstItem, secondItem); default: throw new IllegalArgumentException("predicate not supported in has step: " + biPredicate.toString()); } }
return field.greaterThan(convertToSqlDate(value.toString())); case ("gte"): return field.greaterOrEqual(convertToSqlDate(value.toString())); case ("lt"): return field.lessThan(convertToSqlDate(value.toString()));
public List<ApiKeyEntry> poll(int days) { return txResult(tx -> tx.select(API_KEYS.KEY_ID, API_KEYS.KEY_NAME, API_KEYS.EXPIRED_AT, API_KEYS.USER_ID) .from(API_KEYS) .where(API_KEYS.EXPIRED_AT.isNotNull() .and(currentTimestamp().greaterOrEqual(trunc(API_KEYS.EXPIRED_AT).minus(days)) .and(API_KEYS.LAST_NOTIFIED_AT.isNull() .or(API_KEYS.LAST_NOTIFIED_AT.lessOrEqual(API_KEYS.EXPIRED_AT.minus(days)))))) .fetch(this::toEntry)); }
@Override public Condition visit(IsGreaterOrEqualQueryCriteria criteria, Boolean inArray) { String[] keys = translateArrayRef(criteria); Field field = DSL.field(databaseInterface.arraySerializer().getFieldName(keys)); Param<?> value; Condition typeCondition = null; if (!isInArrayValue(criteria.getAttributeReference(), inArray)) { value = translateValueToSQL(criteria.getValue()); } else { value = translateValueToArraySerialization(criteria.getValue()); typeCondition = databaseInterface.arraySerializer().typeof( field.getName(), getJsonType(criteria.getValue().getType()) ); } Condition criteriaCondition = field.greaterOrEqual(value); if (typeCondition != null) { criteriaCondition = typeCondition.and(criteriaCondition); } return addArrayCondition(criteria, criteriaCondition, keys, inArray); }
.when(field.sign().greaterOrEqual(zero()), field.mul(power).floor().div(power)) .otherwise(
.when(field.sign().greaterOrEqual(zero()), field.mul(power).floor().div(power)) .otherwise(