private void initKeySortSpecs(final Schema targetRelationSchema, final SortSpec[] keySortSpecs) { this.targetRelationSchema = targetRelationSchema; this.keySortSpecs = new SortSpec[keySortSpecs.length]; for (int i = 0; i < keySortSpecs.length; i++) { this.keySortSpecs[i] = new SortSpec(keySortSpecs[i].getSortKey(), keySortSpecs[i].isAscending(), keySortSpecs[i].isNullsFirst()); } Arrays.sort(this.keySortSpecs, new Comparator<SortSpec>() { @Override public int compare(SortSpec o1, SortSpec o2) { return targetRelationSchema.getColumnId(o1.getSortKey().getSimpleName()) - targetRelationSchema.getColumnId(o2.getSortKey().getSimpleName()); } }); }
@Override public Object clone() throws CloneNotSupportedException { IndexMeta clone = (IndexMeta) super.clone(); clone.indexName = indexName; clone.indexPath = indexPath; clone.indexMethod = indexMethod; clone.keySortSpecs = new SortSpec[keySortSpecs.length]; for (int i = 0; i < keySortSpecs.length; i++) { clone.keySortSpecs[i] = new SortSpec(this.keySortSpecs[i].getProto()); } clone.isUnique = this.isUnique; clone.isClustered = this.isClustered; clone.targetRelationSchema = this.targetRelationSchema; return clone; }
private String getSortSpecString() { StringBuilder sb = new StringBuilder("Column [key= "); SortSpec[] sortSpecs = indexMeta.getKeySortSpecs(); for (int i = 0; i < sortSpecs.length; i++) { sb.append(sortSpecs[i].getSortKey().getQualifiedName()).append(" ") .append(sortSpecs[i].isAscending() ? "asc" : "desc"); if(i < sortSpecs.length - 1) { sb.append(","); } } sb.append("]"); return sb.toString(); }
public ComparableVector(int length, SortSpec[] sortKeys, int[] keyIndex) { tuples = new Tuple[length]; vectors = new TupleVector[sortKeys.length]; for (int i = 0; i < vectors.length; i++) { TajoDataTypes.Type type = sortKeys[i].getSortKey().getDataType().getType(); vectors[i] = new TupleVector(vectorType(type), tuples.length, sortKeys[i].isNullsFirst(), sortKeys[i].isAscending()); } this.keyIndex = keyIndex; }
public static SortSpec[] columnsToSortSpecs(Column[] columns) { SortSpec[] specs = new SortSpec[columns.length]; for (int i = 0; i < columns.length; i++) { specs[i] = new SortSpec(columns[i], true, false); } return specs; }
@Override public Column apply(@javax.annotation.Nullable SortSpec s) { return s.getSortKey(); } }).build();
SortSpec[] sortSpecs = new SortSpec[grpColumns.length]; for (int i = 0; i < grpColumns.length; i++) { sortSpecs[i] = new SortSpec(grpColumns[i], true, false); outer: for (int j = 0; j < sortSpecProtos.size(); j++) { SortSpec enforcedSortSpecs = new SortSpec(sortSpecProtos.get(j)); if (enforcedSortSpecs.getSortKey().equals(grpKey)) { continue outer;
/** * @param schema The schema of input tuples * @param sortKeys The description of sort keys */ public TupleComparator(Schema schema, SortSpec[] sortKeys) { Preconditions.checkArgument(sortKeys.length > 0, "At least one sort key must be specified."); this.sortKeyIds = new int[sortKeys.length]; this.asc = new boolean[sortKeys.length]; this.nullFirsts = new boolean[sortKeys.length]; for (int i = 0; i < sortKeys.length; i++) { if (sortKeys[i].getSortKey().hasQualifier()) { this.sortKeyIds[i] = schema.getColumnId(sortKeys[i].getSortKey().getQualifiedName()); } else { this.sortKeyIds[i] = schema.getColumnIdByName(sortKeys[i].getSortKey().getSimpleName()); } this.asc[i] = sortKeys[i].isAscending(); this.nullFirsts[i]= sortKeys[i].isNullFirst(); } }
@Override public SimplePredicateProto getProto() { SimplePredicateProto.Builder builder = SimplePredicateProto.newBuilder(); builder.setKeySortSpec(keySortSpec.getProto()); builder.setValue(EvalNodeSerializer.serialize(value)); return builder.build(); } }
if (sortSpecs[sortSpecIndex].isAscending()) { if (statSet.get(col).getMinValue() != null) startTuple.put(i, statSet.get(col).getMinValue());
if (sortSpecs[i].isNullsFirst()) { Tuple rangeTuple = ranges[0].getStart(); rangeTuple.put(i, NullDatum.get());
public ComparableVector(int length, SortSpec[] sortKeys, int[] keyIndex) { tuples = new Tuple[length]; vectors = new TupleVector[sortKeys.length]; for (int i = 0; i < vectors.length; i++) { TajoDataTypes.Type type = sortKeys[i].getSortKey().getDataType().getType(); vectors[i] = new TupleVector(vectorType(type), tuples.length, sortKeys[i].isNullsFirst(), sortKeys[i].isAscending()); } this.keyIndex = keyIndex; }
public static SortSpec[] columnsToSortSpecs(Column[] columns) { SortSpec[] specs = new SortSpec[columns.length]; for (int i = 0; i < columns.length; i++) { specs[i] = new SortSpec(columns[i], true, false); } return specs; }
private String getSortSpecString() { StringBuilder sb = new StringBuilder("Column [key= "); SortSpec[] sortSpecs = indexMeta.getKeySortSpecs(); for (int i = 0; i < sortSpecs.length; i++) { sb.append(sortSpecs[i].getSortKey().getQualifiedName()).append(" ") .append(sortSpecs[i].isAscending() ? "asc" : "desc"); if(i < sortSpecs.length - 1) { sb.append(","); } } sb.append("]"); return sb.toString(); }
@Override public Column apply(@Nullable SortSpec input) { return input.getSortKey(); } }).build();
SortSpec[] sortSpecs = new SortSpec[grpColumns.length]; for (int i = 0; i < grpColumns.length; i++) { sortSpecs[i] = new SortSpec(grpColumns[i], true, false); outer: for (SortSpecProto sortSpecProto : sortSpecProtos) { SortSpec enforcedSortSpecs = new SortSpec(sortSpecProto); if (enforcedSortSpecs.getSortKey().equals(grpKey)) { continue outer;
@Override public SimplePredicateProto getProto() { SimplePredicateProto.Builder builder = SimplePredicateProto.newBuilder(); builder.setKeySortSpec(keySortSpec.getProto()); builder.setValue(EvalNodeSerializer.serialize(value)); return builder.build(); } }
if (sortSpecs[sortSpecIndex].isAscending()) { if (statSet.get(col).getMinValue() != null) startTuple.put(i, statSet.get(col).getMinValue());
if (sortSpecs[i].isNullsFirst()) { Tuple rangeTuple = ranges[0].getStart(); rangeTuple.put(i, NullDatum.get());
private void initKeySortSpecs(final Schema targetRelationSchema, final SortSpec[] keySortSpecs) { this.targetRelationSchema = targetRelationSchema; this.keySortSpecs = new SortSpec[keySortSpecs.length]; for (int i = 0; i < keySortSpecs.length; i++) { this.keySortSpecs[i] = new SortSpec(keySortSpecs[i].getSortKey(), keySortSpecs[i].isAscending(), keySortSpecs[i].isNullsFirst()); } Arrays.sort(this.keySortSpecs, new Comparator<SortSpec>() { @Override public int compare(SortSpec o1, SortSpec o2) { return targetRelationSchema.getColumnId(o1.getSortKey().getSimpleName()) - targetRelationSchema.getColumnId(o2.getSortKey().getSimpleName()); } }); }