That was QUICK!  Thx, guys!

On 10/27/15 5:37 PM, Steven Jacobs wrote:
Feel free to put me on the review.
Steven

On Tuesday, October 27, 2015, Taewoo Kim (JIRA) <[email protected]> wrote:

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

Taewoo Kim commented on ASTERIXDB-1155:
---------------------------------------

The reason of this issue is that CloneAndSubstituteVariablesVisitor tries
to call accept() on an offset expression in LimitClause which is null. I
have fixed this issue and uploaded a fix.

Limit clause won't work within a function
-----------------------------------------

                 Key: ASTERIXDB-1155
                 URL:
https://issues.apache.org/jira/browse/ASTERIXDB-1155
             Project: Apache AsterixDB
          Issue Type: Bug
            Reporter: Steven Jacobs
            Assignee: Taewoo Kim

I can't find an example where a limit clause works within a function.
Here is an example of one that doesn't work:
DDL:
drop dataverse emergencyTest if exists;
create dataverse emergencyTest;
use dataverse emergencyTest;
create type EmergencyReport as {
       "id":int,
       "intensity":int
}
create dataset EmergencyReports(EmergencyReport)
primary key id;
//This works fine
for $emergency in dataset EmergencyReports
limit 1
return $emergency.message
//this fails
create function mostIntenseEarthquakeNearLocation() {
for $emergency in dataset EmergencyReports
limit 1
return $emergency.message
};
for $result in mostIntenseEarthquakeNearLocation()
return $result;
I've tried many combinations. Here is the top of the stack trace:
at
org.apache.asterix.aql.rewrites.CloneAndSubstituteVariablesVisitor.visitLimitClause(CloneAndSubstituteVariablesVisitor.java:285)
       at
org.apache.asterix.aql.rewrites.CloneAndSubstituteVariablesVisitor.visitLimitClause(CloneAndSubstituteVariablesVisitor.java:1)
       at
org.apache.asterix.aql.expression.LimitClause.accept(LimitClause.java:67)
       at
org.apache.asterix.aql.rewrites.CloneAndSubstituteVariablesVisitor.visitFlworExpression(CloneAndSubstituteVariablesVisitor.java:117)
       at
org.apache.asterix.aql.rewrites.CloneAndSubstituteVariablesVisitor.visitFlworExpression(CloneAndSubstituteVariablesVisitor.java:1)
       at
org.apache.asterix.aql.expression.FLWOGRExpression.accept(FLWOGRExpression.java:82)
       at
org.apache.asterix.aql.rewrites.InlineUdfsVisitor.inlineUdfsInExpr(InlineUdfsVisitor.java:341)
       at
org.apache.asterix.aql.rewrites.InlineUdfsVisitor.visitForClause(InlineUdfsVisitor.java:220)
       at
org.apache.asterix.aql.rewrites.InlineUdfsVisitor.visitForClause(InlineUdfsVisitor.java:1)
       at
org.apache.asterix.aql.expression.ForClause.accept(ForClause.java:70)
       at
org.apache.asterix.aql.rewrites.InlineUdfsVisitor.visitFlworExpression(InlineUdfsVisitor.java:194)
       at
org.apache.asterix.aql.rewrites.InlineUdfsVisitor.visitFlworExpression(InlineUdfsVisitor.java:1)
       at
org.apache.asterix.aql.expression.FLWOGRExpression.accept(FLWOGRExpression.java:82)



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


Reply via email to