@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; }
@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; }
@Override public SimplePredicateProto getProto() { SimplePredicateProto.Builder builder = SimplePredicateProto.newBuilder(); builder.setKeySortSpec(keySortSpec.getProto()); builder.setValue(EvalNodeSerializer.serialize(value)); return builder.build(); } }
@Override public SimplePredicateProto getProto() { SimplePredicateProto.Builder builder = SimplePredicateProto.newBuilder(); builder.setKeySortSpec(keySortSpec.getProto()); builder.setValue(EvalNodeSerializer.serialize(value)); return builder.build(); } }
public void addSortedInput(String tableName, SortSpec[] sortSpecs) { EnforceProperty.Builder builder = newProperty(); SortedInputEnforce.Builder enforce = SortedInputEnforce.newBuilder(); enforce.setTableName(tableName); for (SortSpec sortSpec : sortSpecs) { enforce.addSortSpecs(sortSpec.getProto()); } builder.setType(EnforceType.SORTED_INPUT); builder.setSortedInput(enforce.build()); TUtil.putToNestedList(properties, builder.getType(), builder.build()); }
public void addSortedInput(String tableName, SortSpec[] sortSpecs) { EnforceProperty.Builder builder = newProperty(); SortedInputEnforce.Builder enforce = SortedInputEnforce.newBuilder(); enforce.setTableName(tableName); for (SortSpec sortSpec : sortSpecs) { enforce.addSortSpecs(sortSpec.getProto()); } builder.setType(EnforceType.SORTED_INPUT); builder.setSortedInput(enforce.build()); TUtil.putToNestedList(properties, builder.getType(), builder.build()); }
@Override public LogicalNode visitSort(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, SortNode sort, Stack<LogicalNode> stack) throws TajoException { super.visitSort(context, plan, block, sort, stack); int [] childIds = registerGetChildIds(context, sort); PlanProto.SortNode.Builder sortBuilder = PlanProto.SortNode.newBuilder(); sortBuilder.setChildSeq(childIds[0]); for (int i = 0; i < sort.getSortKeys().length; i++) { sortBuilder.addSortSpecs(sort.getSortKeys()[i].getProto()); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, sort); nodeBuilder.setSort(sortBuilder); context.treeBuilder.addNodes(nodeBuilder); return sort; }
@Override public LogicalNode visitSort(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, SortNode sort, Stack<LogicalNode> stack) throws TajoException { super.visitSort(context, plan, block, sort, stack); int [] childIds = registerGetChildIds(context, sort); PlanProto.SortNode.Builder sortBuilder = PlanProto.SortNode.newBuilder(); sortBuilder.setChildSeq(childIds[0]); for (int i = 0; i < sort.getSortKeys().length; i++) { sortBuilder.addSortSpecs(sort.getSortKeys()[i].getProto()); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, sort); nodeBuilder.setSort(sortBuilder); context.treeBuilder.addNodes(nodeBuilder); return sort; }
@Override public TupleComparatorProto getProto() { TupleComparatorProto.Builder builder = TupleComparatorProto.newBuilder(); builder.setSchema(schema.getProto()); for (SortSpec sortSpec : sortSpecs) { builder.addSortSpecs(sortSpec.getProto()); } TupleComparatorSpecProto.Builder sortSpecBuilder; for (int i = 0; i < sortKeyIds.length; i++) { sortSpecBuilder = TupleComparatorSpecProto.newBuilder(); sortSpecBuilder.setColumnId(sortKeyIds[i]); sortSpecBuilder.setAscending(asc[i]); sortSpecBuilder.setNullFirst(nullFirsts[i]); builder.addCompSpecs(sortSpecBuilder); } return builder.build(); }
@Override public TupleComparatorProto getProto() { TupleComparatorProto.Builder builder = TupleComparatorProto.newBuilder(); builder.setSchema(schema.getProto()); for (int i = 0; i < sortSpecs.length; i++) { builder.addSortSpecs(sortSpecs[i].getProto()); } TupleComparatorSpecProto.Builder sortSpecBuilder; for (int i = 0; i < sortKeyIds.length; i++) { sortSpecBuilder = TupleComparatorSpecProto.newBuilder(); sortSpecBuilder.setColumnId(sortKeyIds[i]); sortSpecBuilder.setAscending(asc[i]); sortSpecBuilder.setNullFirst(nullFirsts[i]); builder.addCompSpecs(sortSpecBuilder); } return builder.build(); }
public void enforceSortAggregation(int pid, @Nullable SortSpec[] sortSpecs) { EnforceProperty.Builder builder = newProperty(); GroupbyEnforce.Builder enforce = GroupbyEnforce.newBuilder(); enforce.setNodeId(pid); enforce.setAlgorithm(GroupbyAlgorithm.SORT_AGGREGATION); if (sortSpecs != null) { for (SortSpec sortSpec : sortSpecs) { enforce.addSortSpecs(sortSpec.getProto()); } } builder.setType(EnforceType.GROUP_BY); builder.setGroupby(enforce.build()); TUtil.putToNestedList(properties, builder.getType(), builder.build()); }
public void enforceSortAggregation(int pid, @Nullable SortSpec[] sortSpecs) { EnforceProperty.Builder builder = newProperty(); GroupbyEnforce.Builder enforce = GroupbyEnforce.newBuilder(); enforce.setNodeId(pid); enforce.setAlgorithm(GroupbyAlgorithm.SORT_AGGREGATION); if (sortSpecs != null) { for (SortSpec sortSpec : sortSpecs) { enforce.addSortSpecs(sortSpec.getProto()); } } builder.setType(EnforceType.GROUP_BY); builder.setGroupby(enforce.build()); TUtil.putToNestedList(properties, builder.getType(), builder.build()); }
@Override public LogicalNode visitCreateIndex(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateIndexNode node, Stack<LogicalNode> stack) throws TajoException { super.visitCreateIndex(context, plan, block, node, new Stack<LogicalNode>()); PlanProto.CreateIndexNode.Builder createIndexBuilder = PlanProto.CreateIndexNode.newBuilder(); int [] childIds = registerGetChildIds(context, node); createIndexBuilder.setChildSeq(childIds[0]); createIndexBuilder.setIndexName(node.getIndexName()); createIndexBuilder.setIndexMethod(node.getIndexMethod()); createIndexBuilder.setIndexPath(node.getIndexPath().toString()); for (SortSpec sortSpec : node.getKeySortSpecs()) { createIndexBuilder.addKeySortSpecs(sortSpec.getProto()); } createIndexBuilder.setTargetRelationSchema(node.getTargetRelationSchema().getProto()); createIndexBuilder.setIsUnique(node.isUnique()); createIndexBuilder.setIsClustered(node.isClustered()); if (node.hasOptions()) { createIndexBuilder.setIndexProperties(node.getOptions().getProto()); } createIndexBuilder.setIsExternal(node.isExternal()); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setCreateIndex(createIndexBuilder); context.treeBuilder.addNodes(nodeBuilder); return node; }
@Override public LogicalNode visitCreateIndex(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateIndexNode node, Stack<LogicalNode> stack) throws TajoException { super.visitCreateIndex(context, plan, block, node, new Stack<>()); PlanProto.CreateIndexNode.Builder createIndexBuilder = PlanProto.CreateIndexNode.newBuilder(); int [] childIds = registerGetChildIds(context, node); createIndexBuilder.setChildSeq(childIds[0]); createIndexBuilder.setIndexName(node.getIndexName()); createIndexBuilder.setIndexMethod(node.getIndexMethod()); createIndexBuilder.setIndexPath(node.getIndexPath().toString()); for (SortSpec sortSpec : node.getKeySortSpecs()) { createIndexBuilder.addKeySortSpecs(sortSpec.getProto()); } createIndexBuilder.setTargetRelationSchema(node.getTargetRelationSchema().getProto()); createIndexBuilder.setIsUnique(node.isUnique()); createIndexBuilder.setIsClustered(node.isClustered()); if (node.hasOptions()) { createIndexBuilder.setIndexProperties(node.getOptions().getProto()); } createIndexBuilder.setIsExternal(node.isExternal()); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setCreateIndex(createIndexBuilder); context.treeBuilder.addNodes(nodeBuilder); return node; }
@Override public IndexDescProto getProto() { IndexDescProto.Builder builder = IndexDescProto.newBuilder(); CatalogProtos.TableIdentifierProto.Builder tableIdentifierBuilder = CatalogProtos.TableIdentifierProto.newBuilder(); if (databaseName != null) { tableIdentifierBuilder.setDatabaseName(databaseName); } if (tableName != null) { tableIdentifierBuilder.setTableName(tableName); } builder.setTableIdentifier(tableIdentifierBuilder.build()); builder.setIndexName(indexMeta.getIndexName()); builder.setIndexPath(indexMeta.getIndexPath().toString()); for (SortSpec colSpec : indexMeta.getKeySortSpecs()) { builder.addKeySortSpecs(colSpec.getProto()); } builder.setIndexMethod(indexMeta.getIndexMethod()); builder.setIsUnique(indexMeta.isUnique()); builder.setIsClustered(indexMeta.isClustered()); builder.setTargetRelationSchema(indexMeta.getTargetRelationSchema().getProto()); return builder.build(); }
@Override public IndexDescProto getProto() { IndexDescProto.Builder builder = IndexDescProto.newBuilder(); CatalogProtos.TableIdentifierProto.Builder tableIdentifierBuilder = CatalogProtos.TableIdentifierProto.newBuilder(); if (databaseName != null) { tableIdentifierBuilder.setDatabaseName(databaseName); } if (tableName != null) { tableIdentifierBuilder.setTableName(tableName); } builder.setTableIdentifier(tableIdentifierBuilder.build()); builder.setIndexName(indexMeta.getIndexName()); builder.setIndexPath(indexMeta.getIndexPath().toString()); for (SortSpec colSpec : indexMeta.getKeySortSpecs()) { builder.addKeySortSpecs(colSpec.getProto()); } builder.setIndexMethod(indexMeta.getIndexMethod()); builder.setIsUnique(indexMeta.isUnique()); builder.setIsClustered(indexMeta.isClustered()); builder.setTargetRelationSchema(indexMeta.getTargetRelationSchema().getProto()); return builder.build(); }