static RelCollation getCollation(final List<RexFieldCollation> collations) { return RelCollationImpl.of( new AbstractList<RelFieldCollation>() { public RelFieldCollation get(int index) { final RexFieldCollation collation = collations.get(index); return new RelFieldCollation( ((RexLocalRef) collation.left).getIndex(), collation.getDirection(), collation.getNullDirection()); } public int size() { return collations.size(); } }); }
public static RelCollation of(RelFieldCollation... fieldCollations) { return new RelCollationImpl(ImmutableList.copyOf(fieldCollations)); }
return false; if (!RelCollationImpl.isValid( getRowType(), collationList,
public Object toJson(RelCollationImpl node) { final List<Object> list = new ArrayList<Object>(); for (RelFieldCollation fieldCollation : node.getFieldCollations()) { final Map<String, Object> map = jsonBuilder.map(); map.put("field", fieldCollation.getFieldIndex()); map.put("direction", fieldCollation.getDirection().name()); map.put("nulls", fieldCollation.nullDirection.name()); list.add(map); } return list; }
return false; if (!RelCollationImpl.isValid( getRowType(), collationList,
static RelCollation getCollation(final List<RexFieldCollation> collations) { return RelCollationImpl.of( new AbstractList<RelFieldCollation>() { public RelFieldCollation get(int index) { final RexFieldCollation collation = collations.get(index); return new RelFieldCollation( ((RexLocalRef) collation.left).getIndex(), collation.getDirection(), collation.getNullDirection()); } public int size() { return collations.size(); } }); }
public static RelCollation of(RelFieldCollation... fieldCollations) { return new RelCollationImpl(ImmutableList.copyOf(fieldCollations)); }
collationList); final RelCollation collation = cluster.traitSetOf().canonize(RelCollationImpl.of(collationList));
public static RelCollation of(List<RelFieldCollation> fieldCollations) { return new RelCollationImpl(ImmutableList.copyOf(fieldCollations)); }
public RelCollation toCollation( List<Map<String, Object>> jsonFieldCollations) { final List<RelFieldCollation> fieldCollations = new ArrayList<RelFieldCollation>(); for (Map<String, Object> map : jsonFieldCollations) { fieldCollations.add(toFieldCollation(map)); } return RelCollationImpl.of(fieldCollations); }
public static RelCollation of(List<RelFieldCollation> fieldCollations) { return new RelCollationImpl(ImmutableList.copyOf(fieldCollations)); }
/** * Creates a list containing one collation containing one field. */ public static List<RelCollation> createSingleton(int fieldIndex) { return Collections.singletonList( of( new RelFieldCollation( fieldIndex, RelFieldCollation.Direction.Ascending, RelFieldCollation.NullDirection.UNSPECIFIED))); }
/** * Creates a list containing one collation containing one field. */ public static List<RelCollation> createSingleton(int fieldIndex) { return ImmutableList.of( of( new RelFieldCollation(fieldIndex, RelFieldCollation.Direction.ASCENDING, RelFieldCollation.NullDirection.UNSPECIFIED))); }
RelCollationImpl.of(newFieldCollationList); if (!newCollationList.contains(newCollation)) { newCollationList.add(newCollation);
RelCollationImpl.of(newFieldCollationList); if (!newCollationList.contains(newCollation)) { newCollationList.add(newCollation);
/** * Applies a mapping to a collation. * * @param mapping Mapping * @param collation Collation * @return collation with mapping applied */ public static RelCollation apply( Mappings.TargetMapping mapping, RelCollation collation) { List<RelFieldCollation> fieldCollations = applyFields(mapping, collation.getFieldCollations()); return fieldCollations.equals(collation.getFieldCollations()) ? collation : RelCollationImpl.of(fieldCollations); }
outputCollations.add(RelCollationImpl.of(fieldCollations));
/** * Applies a mapping to a collation. * * @param mapping Mapping * @param collation Collation * @return collation with mapping applied */ public static RelCollation apply( Mappings.TargetMapping mapping, RelCollation collation) { List<RelFieldCollation> fieldCollations = applyFields(mapping, collation.getFieldCollations()); return fieldCollations.equals(collation.getFieldCollations()) ? collation : RelCollationImpl.of(fieldCollations); }
outputCollations.add(RelCollationImpl.of(fieldCollations));
private static List<RelCollation> deduceMonotonicity( Prepare.PreparingTable table) { final List<RelCollation> collationList = new ArrayList<RelCollation>(); // Deduce which fields the table is sorted on. int i = -1; for (RelDataTypeField field : table.getRowType().getFieldList()) { ++i; final SqlMonotonicity monotonicity = table.getMonotonicity(field.getName()); if (monotonicity != SqlMonotonicity.NotMonotonic) { final RelFieldCollation.Direction direction = monotonicity.isDecreasing() ? RelFieldCollation.Direction.Descending : RelFieldCollation.Direction.Ascending; collationList.add( RelCollationImpl.of( new RelFieldCollation( i, direction, RelFieldCollation.NullDirection.UNSPECIFIED))); } } return collationList; }