asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven Jacobs <sjaco...@ucr.edu>
Subject Re: [jira] [Created] (ASTERIXDB-1155) Limit clause won't work within a function
Date Wed, 28 Oct 2015 00:37:24 GMT
Feel free to put me on the review.
Steven

On Tuesday, October 27, 2015, Taewoo Kim (JIRA) <jira@apache.org> 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)
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message