switch (expr.getKind()) { case DESCENDING: return convertSortExpression(((SqlCall) expr).operand(0), RelFieldCollation.Direction.DESCENDING, nullDirection); case NULLS_LAST: return convertSortExpression(((SqlCall) expr).operand(0), direction, RelFieldCollation.NullDirection.LAST); case NULLS_FIRST: return convertSortExpression(((SqlCall) expr).operand(0), direction, RelFieldCollation.NullDirection.FIRST); default:
switch (expr.getKind()) { case DESCENDING: return convertSortExpression(((SqlCall) expr).operand(0), RelFieldCollation.Direction.DESCENDING, nullDirection); case NULLS_LAST: return convertSortExpression(((SqlCall) expr).operand(0), direction, RelFieldCollation.NullDirection.LAST); case NULLS_FIRST: return convertSortExpression(((SqlCall) expr).operand(0), direction, RelFieldCollation.NullDirection.FIRST); default:
/** * Converts an item in an ORDER BY clause, extracting DESC, NULLS LAST * and NULLS FIRST flags first. */ public RexNode convertSortExpression(SqlNode expr, Set<SqlKind> flags) { switch (expr.getKind()) { case DESCENDING: case NULLS_LAST: case NULLS_FIRST: flags.add(expr.getKind()); final SqlNode operand = ((SqlCall) expr).operand(0); return convertSortExpression(operand, flags); default: return convertExpression(expr); } }
.stream() .map(order -> bb.convertSortExpression(order, RelFieldCollation.Direction.ASCENDING, RelFieldCollation.NullDirection.UNSPECIFIED))
for (SqlNode order : orderList) { flags.clear(); RexNode e = bb.convertSortExpression(order, flags); orderKeys.add(new RexFieldCollation(e, flags));
for (SqlNode order : orderList) { orderKeys.add( bb.convertSortExpression(order, RelFieldCollation.Direction.ASCENDING, RelFieldCollation.NullDirection.UNSPECIFIED));
for (SqlNode order : orderList) { flags.clear(); RexNode e = bb.convertSortExpression(order, flags); orderKeys.add(new RexFieldCollation(e, flags));
for (SqlNode order : orderList) { orderKeys.add( bb.convertSortExpression(order, RelFieldCollation.Direction.ASCENDING, RelFieldCollation.NullDirection.UNSPECIFIED));
/** * Converts an item in an ORDER BY clause, extracting DESC, NULLS LAST * and NULLS FIRST flags first. */ public RexNode convertSortExpression(SqlNode expr, Set<SqlKind> flags) { switch (expr.getKind()) { case DESCENDING: case NULLS_LAST: case NULLS_FIRST: flags.add(expr.getKind()); final SqlNode operand = ((SqlCall) expr).operand(0); return convertSortExpression(operand, flags); default: return convertExpression(expr); } }