Repository: asterixdb Updated Branches: refs/heads/master e9b2adf94 -> afa909a57
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/watch/FeedActivityDetails.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/watch/FeedActivityDetails.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/watch/FeedActivityDetails.java new file mode 100644 index 0000000..496cc53 --- /dev/null +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/watch/FeedActivityDetails.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.asterix.external.feed.watch; + +public class FeedActivityDetails { + public static final String INTAKE_LOCATIONS = "intake-locations"; + public static final String COMPUTE_LOCATIONS = "compute-locations"; + public static final String STORAGE_LOCATIONS = "storage-locations"; + public static final String COLLECT_LOCATIONS = "collect-locations"; + public static final String FEED_POLICY_NAME = "feed-policy-name"; + public static final String FEED_CONNECT_TIMESTAMP = "feed-connect-timestamp"; +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java index d4bf6bc..f2f04d8 100644 --- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java +++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java @@ -30,7 +30,7 @@ import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.common.functions.FunctionSignature; import org.apache.asterix.external.feed.management.FeedConnectionRequest; import org.apache.asterix.external.feed.policy.FeedPolicyAccessor; -import org.apache.asterix.external.feed.watch.FeedActivity; +import org.apache.asterix.external.feed.watch.FeedActivityDetails; import org.apache.asterix.external.util.ExternalDataConstants; import org.apache.asterix.lang.aql.parser.AQLParserFactory; import org.apache.asterix.lang.common.base.IParser; @@ -72,9 +72,9 @@ public class SubscribeFeedStatement implements Statement { public void initialize(MetadataTransactionContext mdTxnCtx) throws MetadataException { this.query = new Query(false); EntityId sourceFeedId = connectionRequest.getFeedJointKey().getFeedId(); - Feed subscriberFeed = - MetadataManager.INSTANCE.getFeed(mdTxnCtx, connectionRequest.getReceivingFeedId().getDataverse(), - connectionRequest.getReceivingFeedId().getEntityName()); + Feed subscriberFeed = MetadataManager.INSTANCE.getFeed(mdTxnCtx, + connectionRequest.getReceivingFeedId().getDataverse(), + connectionRequest.getReceivingFeedId().getEntityName()); if (subscriberFeed == null) { throw new IllegalStateException(" Subscriber feed " + subscriberFeed + " not found."); } @@ -95,8 +95,8 @@ public class SubscribeFeedStatement implements Statement { StringBuilder builder = new StringBuilder(); builder.append("use dataverse " + sourceFeedId.getDataverse() + ";\n"); builder.append("set" + " " + FunctionUtil.IMPORT_PRIVATE_FUNCTIONS + " " + "'" + Boolean.TRUE + "'" + ";\n"); - builder.append("set" + " " + FeedActivity.FeedActivityDetails.FEED_POLICY_NAME + " " + "'" - + connectionRequest.getPolicy() + "'" + ";\n"); + builder.append("set" + " " + FeedActivityDetails.FEED_POLICY_NAME + " " + "'" + connectionRequest.getPolicy() + + "'" + ";\n"); builder.append("insert into dataset " + connectionRequest.getTargetDataset() + " "); builder.append(" (" + " for $x in feed-collect ('" + sourceFeedId.getDataverse() + "'" + "," + "'" http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj index d17861e..463805b 100644 --- a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj +++ b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj @@ -926,18 +926,27 @@ boolean IfExists() throws ParseException : InsertStatement InsertStatement() throws ParseException: { + VariableExpr var = null; Pair<Identifier,Identifier> nameComponents = null; Query query; + Query returnQuery = null; boolean upsert = false; } { - (<INSERT>|<UPSERT>{ upsert = true; }) <INTO> <DATASET> nameComponents = QualifiedName() query = Query() + (<INSERT>|<UPSERT>{ upsert = true; }) <INTO> <DATASET> nameComponents = QualifiedName() + (<AS> var = Variable())? + { + if(var != null){ + getCurrentScope().addNewVarSymbolToScope(var.getVar()); + } + } + query = Query() ( <RETURNING> returnQuery = Query())? { query.setTopLevel(true); if(upsert){ - return new UpsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter()); + return new UpsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnQuery); } else{ - return new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter()); + return new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnQuery); } } } @@ -2646,6 +2655,7 @@ TOKEN : | <PRIMARY : "primary"> | <REFRESH : "refresh"> | <RETURN : "return"> + | <RETURNING : "returning"> | <RTREE : "rtree"> | <RUN : "run"> | <SATISFIES : "satisfies"> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java index b2dc72e..987c3d9 100644 --- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java +++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java @@ -20,6 +20,7 @@ package org.apache.asterix.lang.common.statement; import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.lang.common.base.Statement; +import org.apache.asterix.lang.common.expression.VariableExpr; import org.apache.asterix.lang.common.struct.Identifier; import org.apache.asterix.lang.common.visitor.base.ILangVisitor; import org.apache.commons.lang3.ObjectUtils; @@ -29,13 +30,18 @@ public class InsertStatement implements Statement { private final Identifier dataverseName; private final Identifier datasetName; private final Query query; - private final int varCounter; + private int varCounter; + private final VariableExpr var; + private Query returnQuery; - public InsertStatement(Identifier dataverseName, Identifier datasetName, Query query, int varCounter) { + public InsertStatement(Identifier dataverseName, Identifier datasetName, Query query, int varCounter, + VariableExpr var, Query returnQuery) { this.dataverseName = dataverseName; this.datasetName = datasetName; this.query = query; this.varCounter = varCounter; + this.var = var; + this.returnQuery = returnQuery; } @Override @@ -55,10 +61,26 @@ public class InsertStatement implements Statement { return query; } + public void addToVarCounter(int addition) { + varCounter += addition; + } + public int getVarCounter() { return varCounter; } + public VariableExpr getVar() { + return var; + } + + public Query getReturnQuery() { + return returnQuery; + } + + public void setRewrittenReturnQuery(Query rewrittenReturnQuery) { + this.returnQuery = rewrittenReturnQuery; + } + @Override public <R, T> R accept(ILangVisitor<R, T> visitor, T arg) throws AsterixException { return visitor.visit(this, arg); @@ -66,7 +88,7 @@ public class InsertStatement implements Statement { @Override public int hashCode() { - return ObjectUtils.hashCodeMulti(datasetName, dataverseName, query); + return ObjectUtils.hashCodeMulti(datasetName, dataverseName, query, varCounter, var, returnQuery); } @Override @@ -79,12 +101,17 @@ public class InsertStatement implements Statement { } InsertStatement target = (InsertStatement) object; return ObjectUtils.equals(datasetName, target.datasetName) - && ObjectUtils.equals(dataverseName, target.dataverseName) && ObjectUtils.equals(query, target.query); + && ObjectUtils.equals(dataverseName, target.dataverseName) && ObjectUtils.equals(query, target.query) + && ObjectUtils.equals(varCounter, target.varCounter) && ObjectUtils.equals(var, target.var) + && ObjectUtils.equals(returnQuery, target.returnQuery); } @Override public byte getCategory() { - return Category.UPDATE; + if (var == null) { + return Category.UPDATE; + } + return Category.QUERY; } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/UpsertStatement.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/UpsertStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/UpsertStatement.java index 1fb1de2..a82d948 100644 --- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/UpsertStatement.java +++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/UpsertStatement.java @@ -19,12 +19,14 @@ package org.apache.asterix.lang.common.statement; import org.apache.asterix.lang.common.base.Statement; +import org.apache.asterix.lang.common.expression.VariableExpr; import org.apache.asterix.lang.common.struct.Identifier; public class UpsertStatement extends InsertStatement { - public UpsertStatement(Identifier dataverseName, Identifier datasetName, Query query, int varCounter) { - super(dataverseName, datasetName, query, varCounter); + public UpsertStatement(Identifier dataverseName, Identifier datasetName, Query query, int varCounter, + VariableExpr var, Query returnQuery) { + super(dataverseName, datasetName, query, varCounter, var, returnQuery); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj index bcbdd26..50682c9 100644 --- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj +++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj @@ -969,7 +969,7 @@ InsertStatement InsertStatement() throws ParseException: <INSERT> <INTO> nameComponents = QualifiedName() query = Query(false) { query.setTopLevel(true); - return new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter()); + return new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), null, null); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADateTime.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADateTime.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADateTime.java index 3b35486..f3592e3 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADateTime.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADateTime.java @@ -20,14 +20,13 @@ package org.apache.asterix.om.base; import java.io.IOException; -import org.json.JSONException; -import org.json.JSONObject; - import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.types.BuiltinType; import org.apache.asterix.om.types.IAType; import org.apache.asterix.om.visitors.IOMVisitor; +import org.json.JSONException; +import org.json.JSONObject; /** * ADateTime type represents the timestamp values. @@ -40,12 +39,15 @@ import org.apache.asterix.om.visitors.IOMVisitor; * - minute; <br/> * - second; <br/> * - millisecond. <br/> - * By default, an ADateTime value is a UTC time value, i.e., there is no timezone information maintained. However user can use the timezone based AQL function to convert a UTC time to a timezone-embedded time. + * By default, an ADateTime value is a UTC time value, i.e., there is no timezone information maintained. However user + * can use the timezone based AQL function to convert a UTC time to a timezone-embedded time. * <p/> * And the string representation of an ADateTime value follows the ISO8601 standard, in the following format:<br/> * [+|-]YYYY-MM-DDThh:mm:ss.xxxZ * <p/> - * Internally, an ADateTime value is stored as the number of milliseconds elapsed since 1970-01-01T00:00:00.000Z (also called chronon time). Functions to convert between a string representation of an ADateTime and its chronon time are implemented in {@link GregorianCalendarSystem}. + * Internally, an ADateTime value is stored as the number of milliseconds elapsed since 1970-01-01T00:00:00.000Z (also + * called chronon time). Functions to convert between a string representation of an ADateTime and its chronon time are + * implemented in {@link GregorianCalendarSystem}. * <p/> */ public class ADateTime implements IAObject { @@ -122,6 +124,13 @@ public class ADateTime implements IAObject { return sbder.toString(); } + public String toSimpleString() throws IOException { + StringBuilder sbder = new StringBuilder(); + GregorianCalendarSystem.getInstance().getExtendStringRepUntilField(chrononTime, 0, sbder, + GregorianCalendarSystem.Fields.YEAR, GregorianCalendarSystem.Fields.MILLISECOND, true); + return sbder.toString(); + } + public long getChrononTime() { return chrononTime; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AUUID.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AUUID.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AUUID.java index 329ae53..025866c 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AUUID.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AUUID.java @@ -37,13 +37,12 @@ public class AUUID implements IAObject { public static final int UUID_CHARS = 36; public static final int UUID_BYTES = 16; - protected final byte [] uuidBytes; - - protected static final char [] CHARS; + protected final byte[] uuidBytes; + private static final char[] CHARS; static { - CHARS = new char [16]; + CHARS = new char[16]; for (int i = 0; i < 16; i++) { CHARS[i] = Character.forDigit(i, 16); } @@ -53,7 +52,7 @@ public class AUUID implements IAObject { this(new byte[UUID_BYTES]); } - public AUUID(byte [] bytes) { + public AUUID(byte[] bytes) { this.uuidBytes = bytes; } @@ -95,11 +94,16 @@ public class AUUID implements IAObject { return appendLiteralOnly(buf).append('}').toString(); } + public String toSimpleString() { + StringBuilder buf = new StringBuilder(UUID_CHARS + 9); + return appendLiteralOnly(buf).toString(); + } + public StringBuilder appendLiteralOnly(StringBuilder buf) { return appendLiteralOnly(uuidBytes, 0, buf); } - private static StringBuilder digits(byte b [], int offset, int count, StringBuilder result) { + private static StringBuilder digits(byte b[], int offset, int count, StringBuilder result) { for (int i = 0; i < count; i++) { result.append(CHARS[(b[offset + i] >> 4) & 0xf]); result.append(CHARS[b[offset + i] & 0xf]); @@ -107,7 +111,7 @@ public class AUUID implements IAObject { return result; } - public static StringBuilder appendLiteralOnly(byte [] bytes, int offset, StringBuilder result) { + public static StringBuilder appendLiteralOnly(byte[] bytes, int offset, StringBuilder result) { digits(bytes, offset, 4, result).append('-'); digits(bytes, offset + 4, 2, result).append('-'); digits(bytes, offset + 6, 2, result).append('-'); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java index cc7a75f..2d13baf 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java @@ -26,7 +26,7 @@ public enum LogicalOperatorTag { DISTRIBUTE_RESULT, EMPTYTUPLESOURCE, EXCHANGE, - EXTENSION_OPERATOR, + DELEGATE_OPERATOR, EXTERNAL_LOOKUP, GROUP, INDEX_INSERT_DELETE_UPSERT, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractDelegatedLogicalOperator.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractDelegatedLogicalOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractDelegatedLogicalOperator.java new file mode 100644 index 0000000..9a66e72 --- /dev/null +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractDelegatedLogicalOperator.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.algebricks.core.algebra.operators.logical; + +import java.util.List; + +import org.apache.hyracks.algebricks.core.algebra.base.IPhysicalOperator; +import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode; + +/** + * @author rico + */ +public abstract class AbstractDelegatedLogicalOperator implements IOperatorDelegate { + + private AbstractLogicalOperator.ExecutionMode mode = AbstractLogicalOperator.ExecutionMode.UNPARTITIONED; + protected List<LogicalVariable> schema; + protected IPhysicalOperator physicalOperator; + + @Override + public ExecutionMode getExecutionMode() { + return mode; + } + + @Override + public void setExecutionMode(ExecutionMode mode) { + this.mode = mode; + } + + @Override + public void setSchema(List<LogicalVariable> schema) { + this.schema = schema; + } + + @Override + public IPhysicalOperator getPhysicalOperator() { + return physicalOperator; + } + + @Override + public void setPhysicalOperator(IPhysicalOperator physicalOperator) { + this.physicalOperator = physicalOperator; + } +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractExtensibleLogicalOperator.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractExtensibleLogicalOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractExtensibleLogicalOperator.java deleted file mode 100644 index dd555e2..0000000 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractExtensibleLogicalOperator.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.hyracks.algebricks.core.algebra.operators.logical; - -import java.util.List; - -import org.apache.hyracks.algebricks.core.algebra.base.IPhysicalOperator; -import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode; - -/** - * @author rico - */ -public abstract class AbstractExtensibleLogicalOperator implements IOperatorExtension { - - private AbstractLogicalOperator.ExecutionMode mode = AbstractLogicalOperator.ExecutionMode.UNPARTITIONED; - protected List<LogicalVariable> schema; - protected IPhysicalOperator physicalOperator; - - @Override - public ExecutionMode getExecutionMode() { - return mode; - } - - @Override - public void setExecutionMode(ExecutionMode mode) { - this.mode = mode; - } - - @Override - public void setSchema(List<LogicalVariable> schema) { - this.schema = schema; - } - - @Override - public IPhysicalOperator getPhysicalOperator() { - return physicalOperator; - } - - @Override - public void setPhysicalOperator(IPhysicalOperator physicalOperator) { - this.physicalOperator = physicalOperator; - } -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DelegateOperator.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DelegateOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DelegateOperator.java new file mode 100644 index 0000000..3667e6b --- /dev/null +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DelegateOperator.java @@ -0,0 +1,125 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.algebricks.core.algebra.operators.logical; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.core.algebra.base.IPhysicalOperator; +import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag; +import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; +import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment; +import org.apache.hyracks.algebricks.core.algebra.properties.VariablePropagationPolicy; +import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext; +import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform; +import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor; + +/** + * @author rico + */ +public class DelegateOperator extends AbstractLogicalOperator { + + private IOperatorDelegate delegate; + + public DelegateOperator(IOperatorDelegate delegate) { + super(); + if (delegate == null) { + throw new IllegalArgumentException("delegate cannot be null!"); + } + this.delegate = delegate; + setExecutionMode(delegate.getExecutionMode()); + } + + @Override + public void recomputeSchema() throws AlgebricksException { + schema = new ArrayList<LogicalVariable>(inputs.get(0).getValue().getSchema()); + delegate.setSchema(schema); + } + + @Override + public boolean acceptExpressionTransform(ILogicalExpressionReferenceTransform transform) + throws AlgebricksException { + return delegate.acceptExpressionTransform(transform); + } + + @Override + public <R, T> R accept(ILogicalOperatorVisitor<R, T> visitor, T arg) throws AlgebricksException { + return visitor.visitDelegateOperator(this, arg); + } + + @Override + public boolean isMap() { + return this.delegate.isMap(); + } + + @Override + public VariablePropagationPolicy getVariablePropagationPolicy() { + return VariablePropagationPolicy.ALL; + } + + @Override + public IVariableTypeEnvironment computeOutputTypeEnvironment(ITypingContext ctx) throws AlgebricksException { + return this.createPropagatingAllInputsTypeEnvironment(ctx); + } + + @Override + public LogicalOperatorTag getOperatorTag() { + return LogicalOperatorTag.DELEGATE_OPERATOR; + } + + public IOperatorDelegate getNewInstanceOfDelegateOperator() { + return delegate.newInstance(); + } + + @Override + public List<LogicalVariable> getSchema() { + return this.schema; + } + + @Override + public ExecutionMode getExecutionMode() { + return delegate.getExecutionMode(); + } + + @Override + public void setExecutionMode(ExecutionMode mode) { + delegate.setExecutionMode(mode); + } + + @Override + public IPhysicalOperator getPhysicalOperator() { + return delegate.getPhysicalOperator(); + } + + @Override + public IVariableTypeEnvironment computeInputTypeEnvironment(ITypingContext ctx) throws AlgebricksException { + return this.createPropagatingAllInputsTypeEnvironment(ctx); + } + + @Override + public String toString() { + return delegate.toString(); + } + + public IOperatorDelegate getDelegate() { + return delegate; + } + +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/ExtensionOperator.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/ExtensionOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/ExtensionOperator.java deleted file mode 100644 index d2f7715..0000000 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/ExtensionOperator.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.hyracks.algebricks.core.algebra.operators.logical; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; -import org.apache.hyracks.algebricks.core.algebra.base.IPhysicalOperator; -import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag; -import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; -import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment; -import org.apache.hyracks.algebricks.core.algebra.properties.VariablePropagationPolicy; -import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext; -import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform; -import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor; - -/** - * @author rico - */ -public class ExtensionOperator extends AbstractLogicalOperator { - - private IOperatorExtension delegate; - - public ExtensionOperator(IOperatorExtension delegate) { - super(); - if (delegate == null) { - throw new IllegalArgumentException("delegate cannot be null!"); - } - this.delegate = delegate; - setExecutionMode(delegate.getExecutionMode()); - } - - @Override - public void recomputeSchema() throws AlgebricksException { - schema = new ArrayList<LogicalVariable>(inputs.get(0).getValue().getSchema()); - delegate.setSchema(schema); - } - - @Override - public boolean acceptExpressionTransform(ILogicalExpressionReferenceTransform transform) throws AlgebricksException { - return delegate.acceptExpressionTransform(transform); - } - - @Override - public <R, T> R accept(ILogicalOperatorVisitor<R, T> visitor, T arg) throws AlgebricksException { - return visitor.visitExtensionOperator(this, arg); - } - - @Override - public boolean isMap() { - return this.delegate.isMap(); - } - - @Override - public VariablePropagationPolicy getVariablePropagationPolicy() { - return VariablePropagationPolicy.ALL; - } - - @Override - public IVariableTypeEnvironment computeOutputTypeEnvironment(ITypingContext ctx) throws AlgebricksException { - return this.createPropagatingAllInputsTypeEnvironment(ctx); - } - - @Override - public LogicalOperatorTag getOperatorTag() { - return LogicalOperatorTag.EXTENSION_OPERATOR; - } - - public IOperatorExtension getNewInstanceOfDelegateOperator() { - return delegate.newInstance(); - } - - @Override - public List<LogicalVariable> getSchema() { - return this.schema; - } - - @Override - public ExecutionMode getExecutionMode() { - return delegate.getExecutionMode(); - } - - @Override - public void setExecutionMode(ExecutionMode mode) { - delegate.setExecutionMode(mode); - } - - @Override - public IPhysicalOperator getPhysicalOperator() { - return delegate.getPhysicalOperator(); - } - - @Override - public IVariableTypeEnvironment computeInputTypeEnvironment(ITypingContext ctx) throws AlgebricksException { - return this.createPropagatingAllInputsTypeEnvironment(ctx); - } - - @Override - public String toString() { - return delegate.toString(); - } - - public IOperatorExtension getDelegate() { - return delegate; - } - -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorDelegate.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorDelegate.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorDelegate.java new file mode 100644 index 0000000..a052c3f --- /dev/null +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorDelegate.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.algebricks.core.algebra.operators.logical; + +import java.util.Collection; +import java.util.List; + +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.core.algebra.base.IPhysicalOperator; +import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode; +import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform; + +/** + * @author rico + */ +public interface IOperatorDelegate { + + void setExecutionMode(ExecutionMode mode); + + boolean isMap(); + + public IOperatorDelegate newInstance(); + + boolean acceptExpressionTransform(ILogicalExpressionReferenceTransform transform) throws AlgebricksException; + + void setSchema(List<LogicalVariable> schema); + + IPhysicalOperator getPhysicalOperator(); + + void setPhysicalOperator(IPhysicalOperator physicalOperator); + + ExecutionMode getExecutionMode(); + + public void getUsedVariables(Collection<LogicalVariable> usedVars); + + public void getProducedVariables(Collection<LogicalVariable> producedVars); +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorExtension.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorExtension.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorExtension.java deleted file mode 100644 index e61d9a2..0000000 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IOperatorExtension.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.hyracks.algebricks.core.algebra.operators.logical; - -import java.util.Collection; -import java.util.List; - -import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; -import org.apache.hyracks.algebricks.core.algebra.base.IPhysicalOperator; -import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode; -import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform; - -/** - * @author rico - */ -public interface IOperatorExtension { - - void setExecutionMode(ExecutionMode mode); - - boolean isMap(); - - public IOperatorExtension newInstance(); - - boolean acceptExpressionTransform(ILogicalExpressionReferenceTransform transform) throws AlgebricksException; - - void setSchema(List<LogicalVariable> schema); - - IPhysicalOperator getPhysicalOperator(); - - void setPhysicalOperator(IPhysicalOperator physicalOperator); - - ExecutionMode getExecutionMode(); - - public void getUsedVariables(Collection<LogicalVariable> usedVars); - - public void getProducedVariables(Collection<LogicalVariable> producedVars); -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java index d278078..d0aea60 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java @@ -35,7 +35,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -164,7 +164,7 @@ public class CardinalityInferenceVisitor implements ILogicalOperatorVisitor<Long } @Override - public Long visitExtensionOperator(ExtensionOperator op, Void arg) throws AlgebricksException { + public Long visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { return UNKNOWN; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java index b259869..4843f81 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java @@ -53,7 +53,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -764,7 +764,7 @@ public class FDsAndEquivClassesVisitor implements ILogicalOperatorVisitor<Void, } @Override - public Void visitExtensionOperator(ExtensionOperator op, IOptimizationContext ctx) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, IOptimizationContext ctx) throws AlgebricksException { propagateFDsAndEquivClasses(op, ctx); return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java index 7f34e8b..b3b9da1 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java @@ -41,7 +41,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -119,9 +119,9 @@ public class IsomorphismOperatorVisitor implements ILogicalOperatorVisitor<Boole } @Override - public Boolean visitExtensionOperator(ExtensionOperator op, ILogicalOperator arg) throws AlgebricksException { - ExtensionOperator aop = (ExtensionOperator) copyAndSubstituteVar(op, arg); - if (aop.getOperatorTag() != LogicalOperatorTag.EXTENSION_OPERATOR) { + public Boolean visitDelegateOperator(DelegateOperator op, ILogicalOperator arg) throws AlgebricksException { + DelegateOperator aop = (DelegateOperator) copyAndSubstituteVar(op, arg); + if (aop.getOperatorTag() != LogicalOperatorTag.DELEGATE_OPERATOR) { return Boolean.FALSE; } return Boolean.TRUE; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java index 58b31f8..52d8e64 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java @@ -44,7 +44,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -499,7 +499,7 @@ public class IsomorphismVariableMappingVisitor implements ILogicalOperatorVisito } @Override - public Void visitExtensionOperator(ExtensionOperator op, ILogicalOperator arg) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, ILogicalOperator arg) throws AlgebricksException { mapVariablesStandard(op, arg); return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java index f4b3195..0da9110 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java @@ -41,7 +41,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DataSourceSc import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IntersectOperator; @@ -548,7 +548,7 @@ public class LogicalOperatorDeepCopyWithNewVariablesVisitor } @Override - public ILogicalOperator visitExtensionOperator(ExtensionOperator op, ILogicalOperator arg) + public ILogicalOperator visitDelegateOperator(DelegateOperator op, ILogicalOperator arg) throws AlgebricksException { throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java index 7e92869..bdabbca 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java @@ -34,7 +34,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -350,7 +350,7 @@ public class LogicalPropertiesVisitor implements ILogicalOperatorVisitor<Void, I } @Override - public Void visitExtensionOperator(ExtensionOperator op, IOptimizationContext arg) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, IOptimizationContext arg) throws AlgebricksException { // TODO Auto-generated method stub return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java index 442899f..7543e5f 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java @@ -39,7 +39,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -379,8 +379,8 @@ public class OperatorDeepCopyVisitor implements ILogicalOperatorVisitor<ILogical } @Override - public ILogicalOperator visitExtensionOperator(ExtensionOperator op, Void arg) throws AlgebricksException { - return new ExtensionOperator(op.getNewInstanceOfDelegateOperator()); + public ILogicalOperator visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { + return new DelegateOperator(op.getNewInstanceOfDelegateOperator()); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java index 9f1acea..c96276f 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java @@ -36,7 +36,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -164,7 +164,7 @@ public class PrimaryKeyVariablesVisitor implements ILogicalOperatorVisitor<Void, } @Override - public Void visitExtensionOperator(ExtensionOperator op, IOptimizationContext ctx) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, IOptimizationContext ctx) throws AlgebricksException { return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java index 3645aff..ec96d48 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java @@ -40,7 +40,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -283,7 +283,7 @@ public class ProducedVariableVisitor implements ILogicalOperatorVisitor<Void, Vo } @Override - public Void visitExtensionOperator(ExtensionOperator op, Void arg) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { op.getDelegate().getProducedVariables(producedVariables); return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java index a746cf2..28f4e5e 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java @@ -38,7 +38,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -319,7 +319,7 @@ public class SchemaVariableVisitor implements ILogicalOperatorVisitor<Void, Void } @Override - public Void visitExtensionOperator(ExtensionOperator op, Void arg) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { standardLayout(op); return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java index 7345928..cf24ee7 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java @@ -38,7 +38,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -471,7 +471,7 @@ public class SubstituteVariableVisitor } @Override - public Void visitExtensionOperator(ExtensionOperator op, Pair<LogicalVariable, LogicalVariable> arg) + public Void visitDelegateOperator(DelegateOperator op, Pair<LogicalVariable, LogicalVariable> arg) throws AlgebricksException { return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java index 3daa00f..b8cb4ff 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java @@ -38,7 +38,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -443,7 +443,7 @@ public class UsedVariableVisitor implements ILogicalOperatorVisitor<Void, Void> } @Override - public Void visitExtensionOperator(ExtensionOperator op, Void arg) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { op.getDelegate().getUsedVariables(usedVariables); return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java index d3dd166..71ac8f3 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java @@ -36,7 +36,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -438,7 +438,7 @@ public class LogicalOperatorPrettyPrintVisitor implements ILogicalOperatorVisito } @Override - public Void visitExtensionOperator(ExtensionOperator op, Integer indent) throws AlgebricksException { + public Void visitDelegateOperator(DelegateOperator op, Integer indent) throws AlgebricksException { addIndent(indent).append(op.toString()); return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java index f5ff8b4..8da41e2 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java @@ -26,7 +26,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOper import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertDeleteUpsertOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; @@ -78,7 +78,7 @@ public interface ILogicalOperatorVisitor<R, T> { public R visitSelectOperator(SelectOperator op, T arg) throws AlgebricksException; - public R visitExtensionOperator(ExtensionOperator op, T arg) throws AlgebricksException; + public R visitDelegateOperator(DelegateOperator op, T arg) throws AlgebricksException; public R visitProjectOperator(ProjectOperator op, T arg) throws AlgebricksException; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/afa909a5/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/ReplaceNtsWithSubplanInputOperatorVisitor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/ReplaceNtsWithSubplanInputOperatorVisitor.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/ReplaceNtsWithSubplanInputOperatorVisitor.java index c5d7291..080828d 100644 --- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/ReplaceNtsWithSubplanInputOperatorVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/ReplaceNtsWithSubplanInputOperatorVisitor.java @@ -37,7 +37,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.DataSourceSc import org.apache.hyracks.algebricks.core.algebra.operators.logical.DistinctOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.IntersectOperator; @@ -164,7 +164,7 @@ class ReplaceNtsWithSubplanInputOperatorVisitor implements IQueryOperatorVisitor } @Override - public ILogicalOperator visitExtensionOperator(ExtensionOperator op, Void arg) throws AlgebricksException { + public ILogicalOperator visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { return visit(op); }