Wail Y. Alkowaileet created ASTERIXDB-3092:
----------------------------------------------

             Summary: LoadRecordFieldsRule should only consider field-access 
functions
                 Key: ASTERIXDB-3092
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-3092
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: COMP - Compiler
    Affects Versions: 0.9.7
            Reporter: Wail Y. Alkowaileet
            Assignee: Wail Y. Alkowaileet
             Fix For: 0.9.9


Reproducer is as follows:

DDL:
{code:java}
DROP DATAVERSE test IF EXISTS;
CREATE DATAVERSE test;

USE test;

CREATE TYPE OpenType AS {
    id: int
};

CREATE DATASET MyDataset(OpenType)
PRIMARY KEY id;{code}
 Query:
{code:java}
USE test;

-- Disabled for a simpler plan
SET `compiler.sort.parallel` "false";


SELECT VALUE md.name
FROM MyDataset md
LET currentData = {"myDate": current_date()}
WHERE currentData.myDate = current_date()
ORDER BY md.id
{code}
Error:
{code:java}
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
    at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
    at 
jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) 
~[?:?]
    at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[?:?]
    at java.util.Objects.checkIndex(Objects.java:372) ~[?:?]
    at java.util.ArrayList.get(ArrayList.java:459) ~[?:?]
    at 
org.apache.asterix.optimizer.rules.LoadRecordFieldsRule.rewritePost(LoadRecordFieldsRule.java:115)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:118)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:91)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:91)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:91)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:91)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController.rewriteWithRuleCollection(SequentialFixpointRuleController.java:52)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:91)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runLogicalOptimizationSets(HeuristicOptimizer.java:82)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:63)
 ~[classes/:?]
    at 
org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:94)
 ~[classes/:?]
    at 
org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:269) 
~[classes/:?]
    at 
org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:3708)
 ~[classes/:?]
    at 
org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:4216)
 ~[classes/:?]
    at 
org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:4348)
 ~[classes/:?]
    at 
org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:4252)
 ~[classes/:?]
    at 
org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:4231)
 ~[classes/:?]
    at 
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:490)
 ~[classes/:?]
    at 
org.apache.asterix.api.http.server.QueryServiceServlet.executeStatement(QueryServiceServlet.java:415)
 [classes/:?]
    at 
org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:305)
 [classes/:?]
    at 
org.apache.asterix.api.http.server.QueryServiceServlet.post(QueryServiceServlet.java:139)
 [classes/:?]
    at 
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:94) 
[classes/:?]
    at 
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:83)
 [classes/:?]
    at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:68)
 [classes/:?]
    at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:37)
 [classes/:?]
    at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java) [?:?]
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
[?:?]
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
[?:?]
    at java.lang.Thread.run(Thread.java:829) [?:?] {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to