You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Dmitry Lychagin (Code Review)" <de...@asterixdb.apache.org> on 2019/06/13 00:22:17 UTC
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3436
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
[NO ISSUE][COMP] Do not inline non-functional LET clauses
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- When inlining LET clauses in LET ... SELECT ...
skip those that contain non-functional expressions
Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
---
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
9 files changed, 430 insertions(+), 7 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/36/3436/1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
new file mode 100644
index 0000000..c23f43b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
@@ -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.
+ */
+
+/*
+ * Description : Test that a LET clause containing random() is not inlined
+ * Success : Yes
+ */
+
+LET x = random(), y = tostring(x)
+FROM range(1, 1) r
+SELECT VALUE string(x) = y
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
new file mode 100644
index 0000000..f32a580
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
@@ -0,0 +1 @@
+true
\ No newline at end of file
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index 6752f77..24384f2 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -58,6 +58,15 @@
return getFunctionInfo(new FunctionIdentifier(fs.getNamespace(), fs.getName(), fs.getArity()));
}
+ public static IFunctionInfo getBuiltinFunctionInfo(String functionName, int arity) {
+ IFunctionInfo fi =
+ getFunctionInfo(new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity));
+ if (fi == null) {
+ fi = getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity));
+ }
+ return fi;
+ }
+
@FunctionalInterface
public interface IFunctionCollector {
Set<CallExpr> getFunctionCalls(Expression expression) throws CompilationException;
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
index 117fa77..28533e1 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
@@ -39,12 +39,14 @@
import org.apache.asterix.lang.common.statement.DropDatasetStatement;
import org.apache.asterix.lang.common.statement.FeedDropStatement;
import org.apache.asterix.lang.common.statement.FeedPolicyDropStatement;
+import org.apache.asterix.lang.common.statement.FunctionDecl;
import org.apache.asterix.lang.common.statement.FunctionDropStatement;
import org.apache.asterix.lang.common.statement.IndexDropStatement;
import org.apache.asterix.lang.common.statement.InsertStatement;
import org.apache.asterix.lang.common.statement.LoadStatement;
import org.apache.asterix.lang.common.statement.NodeGroupDropStatement;
import org.apache.asterix.lang.common.statement.NodegroupDecl;
+import org.apache.asterix.lang.common.statement.Query;
import org.apache.asterix.lang.common.statement.SetStatement;
import org.apache.asterix.lang.common.statement.StartFeedStatement;
import org.apache.asterix.lang.common.statement.StopFeedStatement;
@@ -56,6 +58,16 @@
public abstract class AbstractQueryExpressionVisitor<R, T> implements ILangVisitor<R, T> {
@Override
+ public R visit(Query q, T arg) throws CompilationException {
+ return null;
+ }
+
+ @Override
+ public R visit(FunctionDecl fd, T arg) throws CompilationException {
+ return null;
+ }
+
+ @Override
public R visit(CreateIndexStatement cis, T arg) throws CompilationException {
return null;
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
index 28851fd..8bc319f 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
@@ -150,10 +150,6 @@
// Rewrites like/not-like expressions.
rewriteOperatorExpression();
- // Inlines WITH expressions after variableCheckAndRewrite(...) so that the variable scoping for WITH
- // expression is correct.
- inlineWithExpressions();
-
// Rewrites several variable-arg functions into their corresponding internal list-input functions.
rewriteListInputFunctions();
@@ -165,6 +161,10 @@
// names could be case sensitive.
rewriteFunctionNames();
+ // Inlines WITH expressions after variableCheckAndRewrite(...) so that the variable scoping for WITH
+ // expression is correct.
+ inlineWithExpressions();
+
// Sets the var counter of the query.
topStatement.setVarCounter(context.getVarCounter().get());
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
index ebb7b10..9865bdf 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
@@ -32,9 +32,13 @@
import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
import org.apache.asterix.lang.sqlpp.util.SqlppRewriteUtil;
+import org.apache.asterix.lang.sqlpp.visitor.CheckNonFunctionalExpressionVisitor;
import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppExpressionScopingVisitor;
public class InlineWithExpressionVisitor extends AbstractSqlppExpressionScopingVisitor {
+
+ private final CheckNonFunctionalExpressionVisitor checkNonFunctionalExpressionVisitor =
+ new CheckNonFunctionalExpressionVisitor();
public InlineWithExpressionVisitor(LangRewritingContext context) {
super(context);
@@ -57,11 +61,14 @@
// Performs the rewriting recursively in the newBindingExpr itself.
super.visit(newBindingExpr, arg);
+ Expression bindingExpr = letClause.getBindingExpr();
+ Boolean isNonFunctional = bindingExpr.accept(checkNonFunctionalExpressionVisitor, null);
+ if (isNonFunctional != null && isNonFunctional) {
+ continue;
+ }
+
// Removes the WITH entry and adds variable-expr mapping into the varExprMap.
with.remove();
- Expression bindingExpr = letClause.getBindingExpr();
- // Wraps the binding expression with IndependentSubquery, so that free identifier references
- // in the binding expression will not be resolved use outer-scope variables.
varExprMap.put(letClause.getVarExpr(), bindingExpr);
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
new file mode 100644
index 0000000..167660a
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
@@ -0,0 +1,44 @@
+/*
+ * 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.lang.sqlpp.visitor;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.util.FunctionUtil;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor;
+import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
+
+/**
+ * Checks whether given expression is non-functional (i.e. whether it calls a non-functional function)
+ */
+public final class CheckNonFunctionalExpressionVisitor extends AbstractSqlppContainsExpressionVisitor<Void> {
+ @Override
+ public Boolean visit(CallExpr callExpr, Void arg) throws CompilationException {
+ FunctionSignature fs = callExpr.getFunctionSignature();
+ IFunctionInfo fi = FunctionUtil.getBuiltinFunctionInfo(fs.getName(), fs.getArity());
+ // TODO: all external functions are considered functional for now.
+ // we'll need to revisit this code once we enable non-functional in ExternalFunctionInfo
+ if (fi != null && !fi.isFunctional()) {
+ return true;
+ }
+ return super.visit(callExpr, arg);
+ }
+}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
new file mode 100644
index 0000000..72d4a92
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
@@ -0,0 +1,322 @@
+/*
+ * 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.lang.sqlpp.visitor.base;
+
+import java.util.Collection;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.clause.GroupbyClause;
+import org.apache.asterix.lang.common.clause.LetClause;
+import org.apache.asterix.lang.common.clause.LimitClause;
+import org.apache.asterix.lang.common.clause.OrderbyClause;
+import org.apache.asterix.lang.common.clause.WhereClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.expression.FieldAccessor;
+import org.apache.asterix.lang.common.expression.FieldBinding;
+import org.apache.asterix.lang.common.expression.GbyVariableExpressionPair;
+import org.apache.asterix.lang.common.expression.IfExpr;
+import org.apache.asterix.lang.common.expression.IndexAccessor;
+import org.apache.asterix.lang.common.expression.ListConstructor;
+import org.apache.asterix.lang.common.expression.ListSliceExpression;
+import org.apache.asterix.lang.common.expression.LiteralExpr;
+import org.apache.asterix.lang.common.expression.OperatorExpr;
+import org.apache.asterix.lang.common.expression.QuantifiedExpression;
+import org.apache.asterix.lang.common.expression.RecordConstructor;
+import org.apache.asterix.lang.common.expression.UnaryExpr;
+import org.apache.asterix.lang.common.expression.VariableExpr;
+import org.apache.asterix.lang.common.struct.Identifier;
+import org.apache.asterix.lang.common.struct.QuantifiedPair;
+import org.apache.asterix.lang.sqlpp.clause.AbstractBinaryCorrelateClause;
+import org.apache.asterix.lang.sqlpp.clause.FromClause;
+import org.apache.asterix.lang.sqlpp.clause.FromTerm;
+import org.apache.asterix.lang.sqlpp.clause.HavingClause;
+import org.apache.asterix.lang.sqlpp.clause.JoinClause;
+import org.apache.asterix.lang.sqlpp.clause.NestClause;
+import org.apache.asterix.lang.sqlpp.clause.Projection;
+import org.apache.asterix.lang.sqlpp.clause.SelectBlock;
+import org.apache.asterix.lang.sqlpp.clause.SelectClause;
+import org.apache.asterix.lang.sqlpp.clause.SelectElement;
+import org.apache.asterix.lang.sqlpp.clause.SelectRegular;
+import org.apache.asterix.lang.sqlpp.clause.SelectSetOperation;
+import org.apache.asterix.lang.sqlpp.clause.UnnestClause;
+import org.apache.asterix.lang.sqlpp.expression.CaseExpression;
+import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
+import org.apache.asterix.lang.sqlpp.expression.WindowExpression;
+import org.apache.asterix.lang.sqlpp.struct.SetOperationRight;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+
+/**
+ * Base class for visitors that search for expressions having certain properties and return a boolean value
+ * indicating whether such expressions were found or not, or {@code null} if search could not be performed.
+ */
+public abstract class AbstractSqlppContainsExpressionVisitor<T>
+ extends AbstractSqlppQueryExpressionVisitor<Boolean, T> {
+
+ @Override
+ public Boolean visit(FromClause fromClause, T arg) throws CompilationException {
+ for (FromTerm fromTerm : fromClause.getFromTerms()) {
+ if (fromTerm.accept(this, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(FromTerm fromTerm, T arg) throws CompilationException {
+ if (visit(fromTerm.getLeftExpression(), arg)) {
+ return true;
+ }
+ for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) {
+ if (correlateClause.accept(this, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(JoinClause joinClause, T arg) throws CompilationException {
+ return visit(joinClause.getRightExpression(), arg) || visit(joinClause.getConditionExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(NestClause nestClause, T arg) throws CompilationException {
+ return nestClause.accept(this, arg);
+ }
+
+ @Override
+ public Boolean visit(Projection projection, T arg) throws CompilationException {
+ ILangExpression expr = projection.getExpression();
+ return expr != null && expr.accept(this, arg);
+ }
+
+ @Override
+ public Boolean visit(SelectBlock selectBlock, T arg) throws CompilationException {
+ return visit(selectBlock.getFromClause(), arg) || visit(selectBlock.getGroupbyClause(), arg)
+ || visit(selectBlock.getSelectClause(), arg) || visitExprList(selectBlock.getLetWhereList(), arg)
+ || visitExprList(selectBlock.getLetHavingListAfterGroupby(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectClause selectClause, T arg) throws CompilationException {
+ return visit(selectClause.getSelectElement(), arg) || visit(selectClause.getSelectRegular(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectElement selectElement, T arg) throws CompilationException {
+ return visit(selectElement.getExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectRegular selectRegular, T arg) throws CompilationException {
+ return visitExprList(selectRegular.getProjections(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectSetOperation selectSetOperation, T arg) throws CompilationException {
+ if (selectSetOperation.getLeftInput().accept(this, arg)) {
+ return true;
+ }
+ for (SetOperationRight right : selectSetOperation.getRightInputs()) {
+ if (right.getSetOperationRightInput().accept(this, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(SelectExpression selectStatement, T arg) throws CompilationException {
+ return visitExprList(selectStatement.getLetList(), arg) || visit(selectStatement.getSelectSetOperation(), arg)
+ || visit(selectStatement.getOrderbyClause(), arg) || visit(selectStatement.getLimitClause(), arg);
+ }
+
+ @Override
+ public Boolean visit(UnnestClause unnestClause, T arg) throws CompilationException {
+ return visit(unnestClause.getRightExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(HavingClause havingClause, T arg) throws CompilationException {
+ return visit(havingClause.getFilterExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(CaseExpression caseExpression, T arg) throws CompilationException {
+ return visit(caseExpression.getConditionExpr(), arg) || visitExprList(caseExpression.getWhenExprs(), arg)
+ || visitExprList(caseExpression.getThenExprs(), arg) || visit(caseExpression.getElseExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(LiteralExpr l, T arg) throws CompilationException {
+ return false;
+ }
+
+ @Override
+ public Boolean visit(VariableExpr v, T arg) throws CompilationException {
+ return false;
+ }
+
+ @Override
+ public Boolean visit(ListConstructor lc, T arg) throws CompilationException {
+ return visitExprList(lc.getExprList(), arg);
+ }
+
+ @Override
+ public Boolean visit(RecordConstructor rc, T arg) throws CompilationException {
+ for (FieldBinding fb : rc.getFbList()) {
+ if (visit(fb.getLeftExpr(), arg)) {
+ return true;
+ }
+ if (visit(fb.getRightExpr(), arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(OperatorExpr operatorExpr, T arg) throws CompilationException {
+ return visitExprList(operatorExpr.getExprList(), arg);
+ }
+
+ @Override
+ public Boolean visit(FieldAccessor fa, T arg) throws CompilationException {
+ return visit(fa.getExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(IndexAccessor ia, T arg) throws CompilationException {
+ return visit(ia.getExpr(), arg) || visit(ia.getIndexExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(ListSliceExpression expression, T arg) throws CompilationException {
+ return visit(expression.getExpr(), arg) || visit(expression.getStartIndexExpression(), arg)
+ || visit(expression.getEndIndexExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(IfExpr ifexpr, T arg) throws CompilationException {
+ return visit(ifexpr.getCondExpr(), arg) || visit(ifexpr.getThenExpr(), arg) || visit(ifexpr.getElseExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(QuantifiedExpression qe, T arg) throws CompilationException {
+ for (QuantifiedPair qf : qe.getQuantifiedList()) {
+ if (visit(qf.getExpr(), arg)) {
+ return true;
+ }
+ }
+ return visit(qe.getSatisfiesExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(LetClause lc, T arg) throws CompilationException {
+ return visit(lc.getBindingExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(WhereClause wc, T arg) throws CompilationException {
+ return visit(wc.getWhereExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(OrderbyClause oc, T arg) throws CompilationException {
+ return visitExprList(oc.getOrderbyList(), arg);
+ }
+
+ @Override
+ public Boolean visit(GroupbyClause gc, T arg) throws CompilationException {
+ for (GbyVariableExpressionPair key : gc.getGbyPairList()) {
+ if (visit(key.getExpr(), arg)) {
+ return true;
+ }
+ }
+ if (gc.hasDecorList()) {
+ for (GbyVariableExpressionPair key : gc.getDecorPairList()) {
+ if (visit(key.getExpr(), arg)) {
+ return true;
+ }
+ }
+ }
+ if (gc.hasGroupFieldList() && visitFieldList(gc.getGroupFieldList(), arg)) {
+ return true;
+ }
+ if (gc.hasWithMap() && visitExprList(gc.getWithVarMap().keySet(), arg)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(LimitClause lc, T arg) throws CompilationException {
+ return visit(lc.getLimitExpr(), arg) || visit(lc.getOffset(), arg);
+ }
+
+ @Override
+ public Boolean visit(UnaryExpr u, T arg) throws CompilationException {
+ return visit(u.getExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(WindowExpression winExpr, T arg) throws CompilationException {
+ return (winExpr.hasPartitionList() && visitExprList(winExpr.getPartitionList(), arg))
+ || (winExpr.hasOrderByList() && visitExprList(winExpr.getOrderbyList(), arg))
+ || (winExpr.hasFrameStartExpr() && visit(winExpr.getFrameStartExpr(), arg))
+ || (winExpr.hasFrameEndExpr() && visit(winExpr.getFrameEndExpr(), arg))
+ || (winExpr.hasWindowFieldList() && visitFieldList(winExpr.getWindowFieldList(), arg))
+ || visitExprList(winExpr.getExprList(), arg);
+ }
+
+ @Override
+ public Boolean visit(CallExpr callExpr, T arg) throws CompilationException {
+ return visitExprList(callExpr.getExprList(), arg);
+ }
+
+ private boolean visit(ILangExpression expr, T arg) throws CompilationException {
+ if (expr == null) {
+ return false;
+ }
+ return expr.accept(this, arg);
+ }
+
+ private <E extends ILangExpression> boolean visitExprList(Collection<E> exprList, T arg)
+ throws CompilationException {
+ for (E langExpr : exprList) {
+ if (visit(langExpr, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private <E extends ILangExpression> boolean visitFieldList(Collection<Pair<E, Identifier>> fieldList, T arg)
+ throws CompilationException {
+ for (Pair<E, Identifier> p : fieldList) {
+ if (visit(p.first, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
index 2c80470..c1ad794 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
@@ -37,6 +37,7 @@
public ExternalFunctionInfo(String namespace, String name, int arity, FunctionKind kind, List<IAType> argumentTypes,
IAType returnType, IResultTypeComputer rtc, String body, String language) {
+ // TODO: fix CheckNonFunctionalExpressionVisitor once we have non-functional external functions
super(namespace, name, arity, true);
this.rtc = rtc;
this.argumentTypes = argumentTypes;
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-spidersilk-tests/869/ (7/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:53 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-stabilization-f69489-compat/1196/ (14/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:35 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/5923/ (6/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:23 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ssl-compression/708/ (6/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:52 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Dmitry Lychagin (Code Review)" <de...@asterixdb.apache.org>.
Hello Anon. E. Moose (1000171), Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/3436
to look at the new patch set (#2).
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
[NO ISSUE][COMP] Do not inline non-functional LET clauses
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- When inlining LET clauses in LET ... SELECT ...
skip those that contain non-functional expressions
Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
---
M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
10 files changed, 454 insertions(+), 25 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/36/3436/2
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/6511/ (13/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:18:01 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-openjdk11/1296/ (12/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:59 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Anon. E. Moose (Code Review)" <de...@asterixdb.apache.org>.
Anon. E. Moose (1000171) has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1: Contrib-2
Analytics Compatibility Tests Failed
https://cbjenkins.page.link/4YVbQKJJfhgfUmpo8 : UNSTABLE
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 01:53:49 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/3937/ (8/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:53 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/5929/ (5/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:52 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/8706/
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:19:12 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/6294/ (2/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:21 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/6505/ (15/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:37 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Anon. E. Moose (Code Review)" <de...@asterixdb.apache.org>.
Anon. E. Moose (1000171) has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Analytics Compatibility Compilation Successful
https://cbjenkins.page.link/LeAbkoPRSqVcMNdC7 : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:22:19 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Dmitry Lychagin (Code Review)" <de...@asterixdb.apache.org>.
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
[NO ISSUE][COMP] Do not inline non-functional LET clauses
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- When inlining LET clauses in LET ... SELECT ...
skip those that contain non-functional expressions
Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3436
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Dmitry Lychagin <dm...@couchbase.com>
Reviewed-by: Ali Alsuliman <al...@gmail.com>
---
M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
10 files changed, 454 insertions(+), 25 deletions(-)
Approvals:
Jenkins: Verified; ; Verified
Anon. E. Moose (1000171):
Dmitry Lychagin: Verified
Ali Alsuliman: Looks good to me, approved
Objections:
Jenkins: Violations found
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
index d2bfaf0..9499b08 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
@@ -9,12 +9,12 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- REPLICATE |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- SORT_GROUP_BY[$$152] |PARTITIONED|
+ -- SORT_GROUP_BY[$$156] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$152] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$156] |PARTITIONED|
-- SORT_GROUP_BY[$$phone_substr] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
@@ -27,29 +27,29 @@
-- STREAM_SELECT |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- SORT_GROUP_BY[$$149] |PARTITIONED|
+ -- SORT_GROUP_BY[$$153] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$149] |PARTITIONED|
- -- PRE_CLUSTERED_GROUP_BY[$$145] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$153] |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$149] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- STREAM_SELECT |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- STABLE_SORT [$$145(ASC)] |PARTITIONED|
+ -- STABLE_SORT [$$149(ASC)] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$132][$$139] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$136][$$143] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$phone_substr][$$134] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$phone_substr][$$138] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -60,7 +60,7 @@
-- BROADCAST_EXCHANGE |PARTITIONED|
-- UNNEST |UNPARTITIONED|
-- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
- -- HASH_PARTITION_EXCHANGE [$$139] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$143] |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -75,12 +75,12 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- REPLICATE |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- SORT_GROUP_BY[$$152] |PARTITIONED|
+ -- SORT_GROUP_BY[$$156] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$152] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$156] |PARTITIONED|
-- SORT_GROUP_BY[$$phone_substr] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
@@ -93,29 +93,29 @@
-- STREAM_SELECT |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- SORT_GROUP_BY[$$149] |PARTITIONED|
+ -- SORT_GROUP_BY[$$153] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$149] |PARTITIONED|
- -- PRE_CLUSTERED_GROUP_BY[$$145] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$153] |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$149] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- STREAM_SELECT |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- STABLE_SORT [$$145(ASC)] |PARTITIONED|
+ -- STABLE_SORT [$$149(ASC)] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$132][$$139] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$136][$$143] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$phone_substr][$$134] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$phone_substr][$$138] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -126,7 +126,7 @@
-- BROADCAST_EXCHANGE |PARTITIONED|
-- UNNEST |UNPARTITIONED|
-- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
- -- HASH_PARTITION_EXCHANGE [$$139] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$143] |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
new file mode 100644
index 0000000..c23f43b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp
@@ -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.
+ */
+
+/*
+ * Description : Test that a LET clause containing random() is not inlined
+ * Success : Yes
+ */
+
+LET x = random(), y = tostring(x)
+FROM range(1, 1) r
+SELECT VALUE string(x) = y
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
new file mode 100644
index 0000000..f32a580
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm
@@ -0,0 +1 @@
+true
\ No newline at end of file
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index 6752f77..24384f2 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -58,6 +58,15 @@
return getFunctionInfo(new FunctionIdentifier(fs.getNamespace(), fs.getName(), fs.getArity()));
}
+ public static IFunctionInfo getBuiltinFunctionInfo(String functionName, int arity) {
+ IFunctionInfo fi =
+ getFunctionInfo(new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity));
+ if (fi == null) {
+ fi = getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity));
+ }
+ return fi;
+ }
+
@FunctionalInterface
public interface IFunctionCollector {
Set<CallExpr> getFunctionCalls(Expression expression) throws CompilationException;
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
index 117fa77..28533e1 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java
@@ -39,12 +39,14 @@
import org.apache.asterix.lang.common.statement.DropDatasetStatement;
import org.apache.asterix.lang.common.statement.FeedDropStatement;
import org.apache.asterix.lang.common.statement.FeedPolicyDropStatement;
+import org.apache.asterix.lang.common.statement.FunctionDecl;
import org.apache.asterix.lang.common.statement.FunctionDropStatement;
import org.apache.asterix.lang.common.statement.IndexDropStatement;
import org.apache.asterix.lang.common.statement.InsertStatement;
import org.apache.asterix.lang.common.statement.LoadStatement;
import org.apache.asterix.lang.common.statement.NodeGroupDropStatement;
import org.apache.asterix.lang.common.statement.NodegroupDecl;
+import org.apache.asterix.lang.common.statement.Query;
import org.apache.asterix.lang.common.statement.SetStatement;
import org.apache.asterix.lang.common.statement.StartFeedStatement;
import org.apache.asterix.lang.common.statement.StopFeedStatement;
@@ -56,6 +58,16 @@
public abstract class AbstractQueryExpressionVisitor<R, T> implements ILangVisitor<R, T> {
@Override
+ public R visit(Query q, T arg) throws CompilationException {
+ return null;
+ }
+
+ @Override
+ public R visit(FunctionDecl fd, T arg) throws CompilationException {
+ return null;
+ }
+
+ @Override
public R visit(CreateIndexStatement cis, T arg) throws CompilationException {
return null;
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
index 28851fd..8bc319f 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
@@ -150,10 +150,6 @@
// Rewrites like/not-like expressions.
rewriteOperatorExpression();
- // Inlines WITH expressions after variableCheckAndRewrite(...) so that the variable scoping for WITH
- // expression is correct.
- inlineWithExpressions();
-
// Rewrites several variable-arg functions into their corresponding internal list-input functions.
rewriteListInputFunctions();
@@ -165,6 +161,10 @@
// names could be case sensitive.
rewriteFunctionNames();
+ // Inlines WITH expressions after variableCheckAndRewrite(...) so that the variable scoping for WITH
+ // expression is correct.
+ inlineWithExpressions();
+
// Sets the var counter of the query.
topStatement.setVarCounter(context.getVarCounter().get());
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
index ebb7b10..9865bdf 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java
@@ -32,9 +32,13 @@
import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
import org.apache.asterix.lang.sqlpp.util.SqlppRewriteUtil;
+import org.apache.asterix.lang.sqlpp.visitor.CheckNonFunctionalExpressionVisitor;
import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppExpressionScopingVisitor;
public class InlineWithExpressionVisitor extends AbstractSqlppExpressionScopingVisitor {
+
+ private final CheckNonFunctionalExpressionVisitor checkNonFunctionalExpressionVisitor =
+ new CheckNonFunctionalExpressionVisitor();
public InlineWithExpressionVisitor(LangRewritingContext context) {
super(context);
@@ -57,11 +61,14 @@
// Performs the rewriting recursively in the newBindingExpr itself.
super.visit(newBindingExpr, arg);
+ Expression bindingExpr = letClause.getBindingExpr();
+ Boolean isNonFunctional = bindingExpr.accept(checkNonFunctionalExpressionVisitor, null);
+ if (isNonFunctional != null && isNonFunctional) {
+ continue;
+ }
+
// Removes the WITH entry and adds variable-expr mapping into the varExprMap.
with.remove();
- Expression bindingExpr = letClause.getBindingExpr();
- // Wraps the binding expression with IndependentSubquery, so that free identifier references
- // in the binding expression will not be resolved use outer-scope variables.
varExprMap.put(letClause.getVarExpr(), bindingExpr);
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
new file mode 100644
index 0000000..167660a
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
@@ -0,0 +1,44 @@
+/*
+ * 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.lang.sqlpp.visitor;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.util.FunctionUtil;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor;
+import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
+
+/**
+ * Checks whether given expression is non-functional (i.e. whether it calls a non-functional function)
+ */
+public final class CheckNonFunctionalExpressionVisitor extends AbstractSqlppContainsExpressionVisitor<Void> {
+ @Override
+ public Boolean visit(CallExpr callExpr, Void arg) throws CompilationException {
+ FunctionSignature fs = callExpr.getFunctionSignature();
+ IFunctionInfo fi = FunctionUtil.getBuiltinFunctionInfo(fs.getName(), fs.getArity());
+ // TODO: all external functions are considered functional for now.
+ // we'll need to revisit this code once we enable non-functional in ExternalFunctionInfo
+ if (fi != null && !fi.isFunctional()) {
+ return true;
+ }
+ return super.visit(callExpr, arg);
+ }
+}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
new file mode 100644
index 0000000..e3f65e6
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java
@@ -0,0 +1,328 @@
+/*
+ * 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.lang.sqlpp.visitor.base;
+
+import java.util.Collection;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.clause.GroupbyClause;
+import org.apache.asterix.lang.common.clause.LetClause;
+import org.apache.asterix.lang.common.clause.LimitClause;
+import org.apache.asterix.lang.common.clause.OrderbyClause;
+import org.apache.asterix.lang.common.clause.WhereClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.expression.FieldAccessor;
+import org.apache.asterix.lang.common.expression.FieldBinding;
+import org.apache.asterix.lang.common.expression.GbyVariableExpressionPair;
+import org.apache.asterix.lang.common.expression.IfExpr;
+import org.apache.asterix.lang.common.expression.IndexAccessor;
+import org.apache.asterix.lang.common.expression.ListConstructor;
+import org.apache.asterix.lang.common.expression.ListSliceExpression;
+import org.apache.asterix.lang.common.expression.LiteralExpr;
+import org.apache.asterix.lang.common.expression.OperatorExpr;
+import org.apache.asterix.lang.common.expression.QuantifiedExpression;
+import org.apache.asterix.lang.common.expression.RecordConstructor;
+import org.apache.asterix.lang.common.expression.UnaryExpr;
+import org.apache.asterix.lang.common.expression.VariableExpr;
+import org.apache.asterix.lang.common.struct.Identifier;
+import org.apache.asterix.lang.common.struct.QuantifiedPair;
+import org.apache.asterix.lang.sqlpp.clause.AbstractBinaryCorrelateClause;
+import org.apache.asterix.lang.sqlpp.clause.FromClause;
+import org.apache.asterix.lang.sqlpp.clause.FromTerm;
+import org.apache.asterix.lang.sqlpp.clause.HavingClause;
+import org.apache.asterix.lang.sqlpp.clause.JoinClause;
+import org.apache.asterix.lang.sqlpp.clause.NestClause;
+import org.apache.asterix.lang.sqlpp.clause.Projection;
+import org.apache.asterix.lang.sqlpp.clause.SelectBlock;
+import org.apache.asterix.lang.sqlpp.clause.SelectClause;
+import org.apache.asterix.lang.sqlpp.clause.SelectElement;
+import org.apache.asterix.lang.sqlpp.clause.SelectRegular;
+import org.apache.asterix.lang.sqlpp.clause.SelectSetOperation;
+import org.apache.asterix.lang.sqlpp.clause.UnnestClause;
+import org.apache.asterix.lang.sqlpp.expression.CaseExpression;
+import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
+import org.apache.asterix.lang.sqlpp.expression.WindowExpression;
+import org.apache.asterix.lang.sqlpp.struct.SetOperationRight;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+
+/**
+ * Base class for visitors that search for expressions having certain properties and return a boolean value
+ * indicating whether such expressions were found or not, or {@code null} if search could not be performed.
+ */
+public abstract class AbstractSqlppContainsExpressionVisitor<T>
+ extends AbstractSqlppQueryExpressionVisitor<Boolean, T> {
+
+ @Override
+ public Boolean visit(FromClause fromClause, T arg) throws CompilationException {
+ for (FromTerm fromTerm : fromClause.getFromTerms()) {
+ if (fromTerm.accept(this, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(FromTerm fromTerm, T arg) throws CompilationException {
+ if (visit(fromTerm.getLeftExpression(), arg)) {
+ return true;
+ }
+ if (fromTerm.hasCorrelateClauses()) {
+ for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) {
+ if (correlateClause.accept(this, arg)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(JoinClause joinClause, T arg) throws CompilationException {
+ return visit(joinClause.getRightExpression(), arg) || visit(joinClause.getConditionExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(NestClause nestClause, T arg) throws CompilationException {
+ return nestClause.accept(this, arg);
+ }
+
+ @Override
+ public Boolean visit(Projection projection, T arg) throws CompilationException {
+ return visit(projection.getExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectBlock selectBlock, T arg) throws CompilationException {
+ return (selectBlock.hasFromClause() && visit(selectBlock.getFromClause(), arg))
+ || (selectBlock.hasLetWhereClauses() && visitExprList(selectBlock.getLetWhereList(), arg))
+ || (selectBlock.hasGroupbyClause() && visit(selectBlock.getGroupbyClause(), arg))
+ || (selectBlock.hasLetHavingClausesAfterGroupby()
+ && visitExprList(selectBlock.getLetHavingListAfterGroupby(), arg))
+ || visit(selectBlock.getSelectClause(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectClause selectClause, T arg) throws CompilationException {
+ return (selectClause.selectElement() && visit(selectClause.getSelectElement(), arg))
+ || (selectClause.selectRegular() && visit(selectClause.getSelectRegular(), arg));
+ }
+
+ @Override
+ public Boolean visit(SelectElement selectElement, T arg) throws CompilationException {
+ return visit(selectElement.getExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectRegular selectRegular, T arg) throws CompilationException {
+ return visitExprList(selectRegular.getProjections(), arg);
+ }
+
+ @Override
+ public Boolean visit(SelectSetOperation selectSetOperation, T arg) throws CompilationException {
+ if (selectSetOperation.getLeftInput().accept(this, arg)) {
+ return true;
+ }
+ if (selectSetOperation.hasRightInputs()) {
+ for (SetOperationRight right : selectSetOperation.getRightInputs()) {
+ if (right.getSetOperationRightInput().accept(this, arg)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(SelectExpression selectStatement, T arg) throws CompilationException {
+ return (selectStatement.hasLetClauses() && visitExprList(selectStatement.getLetList(), arg))
+ || visit(selectStatement.getSelectSetOperation(), arg)
+ || (selectStatement.hasOrderby() && visit(selectStatement.getOrderbyClause(), arg))
+ || (selectStatement.hasLimit() && visit(selectStatement.getLimitClause(), arg));
+ }
+
+ @Override
+ public Boolean visit(UnnestClause unnestClause, T arg) throws CompilationException {
+ return visit(unnestClause.getRightExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(HavingClause havingClause, T arg) throws CompilationException {
+ return visit(havingClause.getFilterExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(CaseExpression caseExpression, T arg) throws CompilationException {
+ return visit(caseExpression.getConditionExpr(), arg) || visitExprList(caseExpression.getWhenExprs(), arg)
+ || visitExprList(caseExpression.getThenExprs(), arg) || visit(caseExpression.getElseExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(LiteralExpr l, T arg) throws CompilationException {
+ return false;
+ }
+
+ @Override
+ public Boolean visit(VariableExpr v, T arg) throws CompilationException {
+ return false;
+ }
+
+ @Override
+ public Boolean visit(ListConstructor lc, T arg) throws CompilationException {
+ return visitExprList(lc.getExprList(), arg);
+ }
+
+ @Override
+ public Boolean visit(RecordConstructor rc, T arg) throws CompilationException {
+ for (FieldBinding fb : rc.getFbList()) {
+ if (visit(fb.getLeftExpr(), arg)) {
+ return true;
+ }
+ if (visit(fb.getRightExpr(), arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(OperatorExpr operatorExpr, T arg) throws CompilationException {
+ return visitExprList(operatorExpr.getExprList(), arg);
+ }
+
+ @Override
+ public Boolean visit(FieldAccessor fa, T arg) throws CompilationException {
+ return visit(fa.getExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(IndexAccessor ia, T arg) throws CompilationException {
+ return visit(ia.getExpr(), arg) || visit(ia.getIndexExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(ListSliceExpression expression, T arg) throws CompilationException {
+ return visit(expression.getExpr(), arg) || visit(expression.getStartIndexExpression(), arg)
+ || visit(expression.getEndIndexExpression(), arg);
+ }
+
+ @Override
+ public Boolean visit(IfExpr ifexpr, T arg) throws CompilationException {
+ return visit(ifexpr.getCondExpr(), arg) || visit(ifexpr.getThenExpr(), arg) || visit(ifexpr.getElseExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(QuantifiedExpression qe, T arg) throws CompilationException {
+ for (QuantifiedPair qf : qe.getQuantifiedList()) {
+ if (visit(qf.getExpr(), arg)) {
+ return true;
+ }
+ }
+ return visit(qe.getSatisfiesExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(LetClause lc, T arg) throws CompilationException {
+ return visit(lc.getBindingExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(WhereClause wc, T arg) throws CompilationException {
+ return visit(wc.getWhereExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(OrderbyClause oc, T arg) throws CompilationException {
+ return visitExprList(oc.getOrderbyList(), arg);
+ }
+
+ @Override
+ public Boolean visit(GroupbyClause gc, T arg) throws CompilationException {
+ for (GbyVariableExpressionPair key : gc.getGbyPairList()) {
+ if (visit(key.getExpr(), arg)) {
+ return true;
+ }
+ }
+ if (gc.hasDecorList()) {
+ for (GbyVariableExpressionPair key : gc.getDecorPairList()) {
+ if (visit(key.getExpr(), arg)) {
+ return true;
+ }
+ }
+ }
+ if (gc.hasGroupFieldList() && visitFieldList(gc.getGroupFieldList(), arg)) {
+ return true;
+ }
+ if (gc.hasWithMap() && visitExprList(gc.getWithVarMap().keySet(), arg)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean visit(LimitClause lc, T arg) throws CompilationException {
+ return visit(lc.getLimitExpr(), arg) || visit(lc.getOffset(), arg);
+ }
+
+ @Override
+ public Boolean visit(UnaryExpr u, T arg) throws CompilationException {
+ return visit(u.getExpr(), arg);
+ }
+
+ @Override
+ public Boolean visit(WindowExpression winExpr, T arg) throws CompilationException {
+ return (winExpr.hasPartitionList() && visitExprList(winExpr.getPartitionList(), arg))
+ || (winExpr.hasOrderByList() && visitExprList(winExpr.getOrderbyList(), arg))
+ || (winExpr.hasFrameStartExpr() && visit(winExpr.getFrameStartExpr(), arg))
+ || (winExpr.hasFrameEndExpr() && visit(winExpr.getFrameEndExpr(), arg))
+ || (winExpr.hasWindowFieldList() && visitFieldList(winExpr.getWindowFieldList(), arg))
+ || visitExprList(winExpr.getExprList(), arg);
+ }
+
+ @Override
+ public Boolean visit(CallExpr callExpr, T arg) throws CompilationException {
+ return visitExprList(callExpr.getExprList(), arg);
+ }
+
+ private boolean visit(ILangExpression expr, T arg) throws CompilationException {
+ return expr != null && expr.accept(this, arg);
+ }
+
+ private <E extends ILangExpression> boolean visitExprList(Collection<E> exprList, T arg)
+ throws CompilationException {
+ for (E langExpr : exprList) {
+ if (visit(langExpr, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private <E extends ILangExpression> boolean visitFieldList(Collection<Pair<E, Identifier>> fieldList, T arg)
+ throws CompilationException {
+ for (Pair<E, Identifier> p : fieldList) {
+ if (visit(p.first, arg)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
index 2c80470..c1ad794 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
@@ -37,6 +37,7 @@
public ExternalFunctionInfo(String namespace, String name, int arity, FunctionKind kind, List<IAType> argumentTypes,
IAType returnType, IResultTypeComputer rtc, String body, String language) {
+ // TODO: fix CheckNonFunctionalExpressionVisitor once we have non-functional external functions
super(namespace, name, arity, true);
this.rtc = rtc;
this.argumentTypes = argumentTypes;
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 3
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/6086/ (3/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:21 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/6092/ (4/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:51 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Anon. E. Moose (Code Review)" <de...@asterixdb.apache.org>.
Anon. E. Moose (1000171) has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2: Contrib+1
Analytics Compatibility Tests Successful
https://cbjenkins.page.link/xqRT2srmcDBS6ogD6 : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 22:47:29 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-stabilization-f69489-compat/1202/ (14/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:18:03 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/5841/ (1/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:21 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Dmitry Lychagin (Code Review)" <de...@asterixdb.apache.org>.
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2: Verified+1
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 23:45:41 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/8700/
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:24:18 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/11414/ (4/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:22 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-txnlog/1101/ (16/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:39 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/6144/ (10/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:28 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
BAD Compatibility Tests Started https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/4536/
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:25:44 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2: Integration-Tests+1
Integration Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/8706/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 22:34:48 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1: Contrib+1
BAD Compatibility Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/4536/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:39:48 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1: Integration-Tests-1
Integration Tests Failed
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/8700/ : UNSTABLE
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 01:34:03 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/3931/ (11/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:29 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-spidersilk-tests/863/ (7/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:23 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/5847/ (1/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:51 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-txnlog/1107/ (15/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:18:06 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Anon. E. Moose (Code Review)" <de...@asterixdb.apache.org>.
Anon. E. Moose (1000171) has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Analytics Compatibility Compilation Successful
https://cbjenkins.page.link/YrLy3ExEWuBAytni8 : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:26:30 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/5945/ (9/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:26 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/5951/ (9/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:54 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/9886/ (11/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:57 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ssl-compression/702/ (8/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:25 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/9880/ (12/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:31 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/5904/ (5/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:22 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2: Contrib+1
BAD Compatibility Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/4542/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:38:13 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/6300/ (16/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:18:07 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-openjdk11/1290/ (13/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 1
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 00:22:33 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Ali Alsuliman (Code Review)" <de...@asterixdb.apache.org>.
Ali Alsuliman has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2: Code-Review+2
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Mon, 17 Jun 2019 21:31:48 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/5910/ (3/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:51 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/11420/ (2/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:51 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
BAD Compatibility Tests Started https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/4542/
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:21:17 +0000
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Posted by "Jenkins (Code Review)" <de...@asterixdb.apache.org>.
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 )
Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/6150/ (10/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3436
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553
Gerrit-Change-Number: 3436
Gerrit-PatchSet: 2
Gerrit-Owner: Dmitry Lychagin <dm...@couchbase.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 13 Jun 2019 21:17:55 +0000
Gerrit-HasComments: No