[jira] [Commented] (ASTERIXDB-1623) Certain Rewrite Rule causes NPE in LogicalPlan.toString()

2016-09-04 Thread Xikui Wang (JIRA)

[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462350#comment-15462350
 ] 

Xikui Wang commented on ASTERIXDB-1623:
---

Hi Till,

Yingyi helped me located the problem. In the old insert case, there is no needs 
to initialize the previous record attribute. However this will cause null value 
in the upsert case. That's the reason of NPE. 

Basically the malformed operator causes the problem not the rewrite rule. :) 

> Certain Rewrite Rule causes NPE in LogicalPlan.toString()
> -
>
> Key: ASTERIXDB-1623
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1623
> Project: Apache AsterixDB
>  Issue Type: Bug
>  Components: Optimizer
>Reporter: Xikui Wang
>Assignee: Yingyi Bu
>
> I met this bug when I was adding 'upsert-option' for the feed part. The 
> easiest way to reproduce this bug is to checkout my change at gerrit: 
> https://asterix-gerrit.ics.uci.edu/#/c/1068/ and execute the added test case. 
> The logical plan generated by subscribe statement is: 
> from: 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:81
> {quote}
> sink -- |UNPARTITIONED|
>   upsert into experiments:TwitterUsers from record: %0->$$2 partitioned by 
> [%0->$$3] out: ([record-before-upsert:null])  -- |UNPARTITIONED|
> assign [$$3] <- [function-call: asterix:field-access-by-name, 
> Args:[%0->$$2, AString: {screen-name}]] -- |UNPARTITIONED|
>   project ([$$2]) -- |UNPARTITIONED|
> assign [$$2] <- [function-call: asterix:collection-to-sequence, 
> Args:[%0->$$0]] -- |UNPARTITIONED|
>   unnest $$0 <- function-call: asterix:feed-collect, Args:[AString: 
> {experiments}, AString: {UserFeed}, AString: {UserFeed}, AString: {INTAKE}, 
> AString: {TwitterUsers}, AString: {TwitterUserType}] -- |UNPARTITIONED|
> empty-tuple-source -- |UNPARTITIONED|
> {quote}
> I managed to trace down that after runOptimizationSets 
> (org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer#runOptimizationSets)
>  worked on ruleList "ruleList.second.get(0) instanceof 
> PullSelectOutOfEqJoin", the plan.toString will causes NPE. 
> In normal scenario, this exception will not appear due to the log level 
> setting. However, during the integration test, this bug will be triggered by 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:85
> The stack trace is as below:
> {quote}
> java.lang.NullPointerException
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression.toString(VariableReferenceExpression.java:67)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.toString(AbstractFunctionCallExpression.java:124)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.toString(AbstractFunctionCallExpression.java:124)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalExpressionPrettyPrintVisitor.visitScalarFunctionCallExpression(LogicalExpressionPrettyPrintVisitor.java:57)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalExpressionPrettyPrintVisitor.visitScalarFunctionCallExpression(LogicalExpressionPrettyPrintVisitor.java:31)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression.accept(ScalarFunctionCallExpression.java:55)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.pprintExprList(LogicalOperatorPrettyPrintVisitor.java:483)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.visitAssignOperator(LogicalOperatorPrettyPrintVisitor.java:198)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.visitAssignOperator(LogicalOperatorPrettyPrintVisitor.java:70)
>   at 
> org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator.accept(AssignOperator.java:63)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:47)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:59)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:59)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printPlan(PlanPrettyPrinter.java:33)
>   at 
> 

[jira] [Commented] (ASTERIXDB-1623) Certain Rewrite Rule causes NPE in LogicalPlan.toString()

2016-09-03 Thread Till (JIRA)

[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462240#comment-15462240
 ] 

Till commented on ASTERIXDB-1623:
-

Hi [~buyingyi], why is not a problem?

> Certain Rewrite Rule causes NPE in LogicalPlan.toString()
> -
>
> Key: ASTERIXDB-1623
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1623
> Project: Apache AsterixDB
>  Issue Type: Bug
>  Components: Optimizer
>Reporter: Xikui Wang
>Assignee: Yingyi Bu
>
> I met this bug when I was adding 'upsert-option' for the feed part. The 
> easiest way to reproduce this bug is to checkout my change at gerrit: 
> https://asterix-gerrit.ics.uci.edu/#/c/1068/ and execute the added test case. 
> The logical plan generated by subscribe statement is: 
> from: 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:81
> {quote}
> sink -- |UNPARTITIONED|
>   upsert into experiments:TwitterUsers from record: %0->$$2 partitioned by 
> [%0->$$3] out: ([record-before-upsert:null])  -- |UNPARTITIONED|
> assign [$$3] <- [function-call: asterix:field-access-by-name, 
> Args:[%0->$$2, AString: {screen-name}]] -- |UNPARTITIONED|
>   project ([$$2]) -- |UNPARTITIONED|
> assign [$$2] <- [function-call: asterix:collection-to-sequence, 
> Args:[%0->$$0]] -- |UNPARTITIONED|
>   unnest $$0 <- function-call: asterix:feed-collect, Args:[AString: 
> {experiments}, AString: {UserFeed}, AString: {UserFeed}, AString: {INTAKE}, 
> AString: {TwitterUsers}, AString: {TwitterUserType}] -- |UNPARTITIONED|
> empty-tuple-source -- |UNPARTITIONED|
> {quote}
> I managed to trace down that after runOptimizationSets 
> (org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer#runOptimizationSets)
>  worked on ruleList "ruleList.second.get(0) instanceof 
> PullSelectOutOfEqJoin", the plan.toString will causes NPE. 
> In normal scenario, this exception will not appear due to the log level 
> setting. However, during the integration test, this bug will be triggered by 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:85
> The stack trace is as below:
> {quote}
> java.lang.NullPointerException
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression.toString(VariableReferenceExpression.java:67)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.toString(AbstractFunctionCallExpression.java:124)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.toString(AbstractFunctionCallExpression.java:124)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalExpressionPrettyPrintVisitor.visitScalarFunctionCallExpression(LogicalExpressionPrettyPrintVisitor.java:57)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalExpressionPrettyPrintVisitor.visitScalarFunctionCallExpression(LogicalExpressionPrettyPrintVisitor.java:31)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression.accept(ScalarFunctionCallExpression.java:55)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.pprintExprList(LogicalOperatorPrettyPrintVisitor.java:483)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.visitAssignOperator(LogicalOperatorPrettyPrintVisitor.java:198)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.visitAssignOperator(LogicalOperatorPrettyPrintVisitor.java:70)
>   at 
> org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator.accept(AssignOperator.java:63)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:47)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:59)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:59)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printPlan(PlanPrettyPrinter.java:33)
>   at 
> org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.logPlanAt(HeuristicOptimizer.java:93)
>   at 
> org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:85)
>   at 
> 

[jira] [Commented] (ASTERIXDB-1623) Certain Rewrite Rule causes NPE in LogicalPlan.toString()

2016-08-31 Thread Xikui Wang (JIRA)

[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15454367#comment-15454367
 ] 

Xikui Wang commented on ASTERIXDB-1623:
---

Attached. :) 

> Certain Rewrite Rule causes NPE in LogicalPlan.toString()
> -
>
> Key: ASTERIXDB-1623
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1623
> Project: Apache AsterixDB
>  Issue Type: Bug
>  Components: Optimizer
>Reporter: Xikui Wang
>Assignee: Yingyi Bu
>
> I met this bug when I was adding 'upsert-option' for the feed part. The 
> easiest way to reproduce this bug is to checkout my change at gerrit: 
> https://asterix-gerrit.ics.uci.edu/#/c/1068/ and execute the added test case. 
> The logical plan generated by subscribe statement is: 
> from: 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:81
> {quote}
> sink -- |UNPARTITIONED|
>   upsert into experiments:TwitterUsers from record: %0->$$2 partitioned by 
> [%0->$$3] out: ([record-before-upsert:null])  -- |UNPARTITIONED|
> assign [$$3] <- [function-call: asterix:field-access-by-name, 
> Args:[%0->$$2, AString: {screen-name}]] -- |UNPARTITIONED|
>   project ([$$2]) -- |UNPARTITIONED|
> assign [$$2] <- [function-call: asterix:collection-to-sequence, 
> Args:[%0->$$0]] -- |UNPARTITIONED|
>   unnest $$0 <- function-call: asterix:feed-collect, Args:[AString: 
> {experiments}, AString: {UserFeed}, AString: {UserFeed}, AString: {INTAKE}, 
> AString: {TwitterUsers}, AString: {TwitterUserType}] -- |UNPARTITIONED|
> empty-tuple-source -- |UNPARTITIONED|
> {quote}
> I managed to trace down that after runOptimizationSets 
> (org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer#runOptimizationSets)
>  worked on ruleList "ruleList.second.get(0) instanceof 
> PullSelectOutOfEqJoin", the plan.toString will causes NPE. 
> In normal scenario, this exception will not appear due to the log level 
> setting. However, during the integration test, this bug will be triggered by 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:85
> The stack trace is as below:
> {quote}
> java.lang.NullPointerException
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression.toString(VariableReferenceExpression.java:67)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.toString(AbstractFunctionCallExpression.java:124)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.toString(AbstractFunctionCallExpression.java:124)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalExpressionPrettyPrintVisitor.visitScalarFunctionCallExpression(LogicalExpressionPrettyPrintVisitor.java:57)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalExpressionPrettyPrintVisitor.visitScalarFunctionCallExpression(LogicalExpressionPrettyPrintVisitor.java:31)
>   at 
> org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression.accept(ScalarFunctionCallExpression.java:55)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.pprintExprList(LogicalOperatorPrettyPrintVisitor.java:483)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.visitAssignOperator(LogicalOperatorPrettyPrintVisitor.java:198)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor.visitAssignOperator(LogicalOperatorPrettyPrintVisitor.java:70)
>   at 
> org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator.accept(AssignOperator.java:63)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:47)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:59)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printOperator(PlanPrettyPrinter.java:59)
>   at 
> org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter.printPlan(PlanPrettyPrinter.java:33)
>   at 
> org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.logPlanAt(HeuristicOptimizer.java:93)
>   at 
> org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:85)
>   at 
> 

[jira] [Commented] (ASTERIXDB-1623) Certain Rewrite Rule causes NPE in LogicalPlan.toString()

2016-08-31 Thread Till (JIRA)

[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15453542#comment-15453542
 ] 

Till commented on ASTERIXDB-1623:
-

[~idleft], could you attach a stack trace to the issue?

> Certain Rewrite Rule causes NPE in LogicalPlan.toString()
> -
>
> Key: ASTERIXDB-1623
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1623
> Project: Apache AsterixDB
>  Issue Type: Bug
>  Components: Optimizer
>Reporter: Xikui Wang
>Assignee: Yingyi Bu
>
> I met this bug when I was adding 'upsert-option' for the feed part. The 
> easiest way to reproduce this bug is to checkout my change at gerrit: 
> https://asterix-gerrit.ics.uci.edu/#/c/1068/ and execute the added test case. 
> The logical plan generated by subscribe statement is: 
> from: 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:81
> {quote}
> sink -- |UNPARTITIONED|
>   upsert into experiments:TwitterUsers from record: %0->$$2 partitioned by 
> [%0->$$3] out: ([record-before-upsert:null])  -- |UNPARTITIONED|
> assign [$$3] <- [function-call: asterix:field-access-by-name, 
> Args:[%0->$$2, AString: {screen-name}]] -- |UNPARTITIONED|
>   project ([$$2]) -- |UNPARTITIONED|
> assign [$$2] <- [function-call: asterix:collection-to-sequence, 
> Args:[%0->$$0]] -- |UNPARTITIONED|
>   unnest $$0 <- function-call: asterix:feed-collect, Args:[AString: 
> {experiments}, AString: {UserFeed}, AString: {UserFeed}, AString: {INTAKE}, 
> AString: {TwitterUsers}, AString: {TwitterUserType}] -- |UNPARTITIONED|
> empty-tuple-source -- |UNPARTITIONED|
> {quote}
> I managed to trace down that after runOptimizationSets 
> (org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer#runOptimizationSets)
>  worked on ruleList "ruleList.second.get(0) instanceof 
> PullSelectOutOfEqJoin", the plan.toString will causes NPE. 
> In normal scenario, this exception will not appear due to the log level 
> setting. However, during the integration test, this bug will be triggered by 
> org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java:85



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)