[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wenhai updated ASTERIXDB-1288:
------------------------------
    Description: 
If there is a computation in the inner branch, currently the optimizer cannot 
consider that into consideration. For example, for the following query, if we 
want to do a correct index-search, "$t1.countA - 20" instead of "$t1.countA" 
should be provided into a B+Tree index on $t2.countB. However, this assignment 
will be applied after any index search transformation (SIdx -> Sort -> PIdx -> 
then, assign -> select) and this generates false results.

{noformat}
for $t1 in dataset('TweetMessages')
for $t2 in dataset('TweetMessages')
let $c := $t2.countB + 20
where $t1.countA /* +indexnl */= $c
order by $t2.tweetid
return {"tweetid2": $t2.tweetid, "count2":$t2.countB};
{noformat}

  was:
If there is a computation in the inner branch, currently the optimizer cannot 
consider that into consideration. For example, for the following query, if we 
want to do a correct index-search, "$t1.countA - 20" instead of "$t1.countA" 
should be provided into a B+Tree index on $t2.countB. However, this assignment 
will be applied after any index search transformation (SIdx -> Sort -> PIdx -> 
then, assign -> select) and this generates false results.

for $t1 in dataset('TweetMessages')
for $t2 in dataset('TweetMessages')
let $c := $t2.countB + 20
where $t1.countA /* +indexnl */= $c
order by $t2.tweetid
return {"tweetid2": $t2.tweetid, "count2":$t2.countB};


> For a join, computation in the inner branch is not properly handled.
> --------------------------------------------------------------------
>
>                 Key: ASTERIXDB-1288
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1288
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Taewoo Kim
>            Assignee: Taewoo Kim
>
> If there is a computation in the inner branch, currently the optimizer cannot 
> consider that into consideration. For example, for the following query, if we 
> want to do a correct index-search, "$t1.countA - 20" instead of "$t1.countA" 
> should be provided into a B+Tree index on $t2.countB. However, this 
> assignment will be applied after any index search transformation (SIdx -> 
> Sort -> PIdx -> then, assign -> select) and this generates false results.
> {noformat}
> for $t1 in dataset('TweetMessages')
> for $t2 in dataset('TweetMessages')
> let $c := $t2.countB + 20
> where $t1.countA /* +indexnl */= $c
> order by $t2.tweetid
> return {"tweetid2": $t2.tweetid, "count2":$t2.countB};
> {noformat}



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

Reply via email to