Interesting that it ran on 1.13..but I still think the new behavior is the
right one.  Several changes went into Calcite between Drill's 1.13 and 1.15
release, so I cannot identify when this behavior changed.   Can you use a
slightly different alias name ?  The following should work:
    select max(last_name) *max_last_name* from cp.`employee.json` group by
last_name limit 5;

On Fri, Apr 19, 2019 at 2:24 PM Nitin Pawar <nitinpawar...@gmail.com> wrote:

> sorry  my bad. i meant the query which was failing was with alias
> following is output on drill 1.13.0
>
> bash-3.2$ bin/drill-embedded
> Apr 20, 2019 2:46:45 AM org.glassfish.jersey.server.ApplicationHandler
> initialize
> INFO: Initiating Jersey application, version Jersey: 2.8 2014-04-29
> 01:25:26...
> apache drill 1.13.0-SNAPSHOT
> "a drill in the hand is better than two in the bush"
> 0: jdbc:drill:zk=local> select max(last_name) last_name from
> cp.`employee.json` group by
> . . . . . . . . . . . > last_name limit 5;
> +------------+
> | last_name  |
> +------------+
> | Nowmer     |
> | Whelply    |
> | Spence     |
> | Gutierrez  |
> | Damstra    |
> +------------+
>
>
> On Sat, Apr 20, 2019 at 1:40 AM Aman Sinha <amansi...@gmail.com> wrote:
>
> > This is legal:
> >   select max(last_name)  from cp.`employee.json` group by last_name limit
> > 5;
> > But this is not:
> >   select max(last_name) last_name from cp.`employee.json` group by
> > last_name limit 5;
> >
> > The reason is the second query is aliasing the max() output to
> 'last_name'
> > which is being referenced in the group-by clause.  Referencing an
> aggregate
> > expr in the group-by is not allowed by SQL standards, hence Calcite
> (which
> > does the parsing and validation, not Drill) throws this error during
> > validation phase.  Detailed error stack is below.  I don't think this
> would
> > have worked in 1.13 either.  My guess is you may have run the first query
> > in 1.13 and that should still continue to work.
> >
> > Validation error thrown by Calcite:
> >
> > Caused By (org.apache.calcite.sql.validate.SqlValidatorException)
> Aggregate
> > expression is illegal in GROUP BY clause
> >
> >     sun.reflect.NativeConstructorAccessorImpl.newInstance0():-2
> >
> >     sun.reflect.NativeConstructorAccessorImpl.newInstance():62
> >
> >     sun.reflect.DelegatingConstructorAccessorImpl.newInstance():45
> >
> >     java.lang.reflect.Constructor.newInstance():423
> >
> >     org.apache.calcite.runtime.Resources$ExInstWithCause.ex():463
> >
> >     org.apache.calcite.runtime.Resources$ExInst.ex():572
> >
> >     org.apache.calcite.sql.SqlUtil.newContextException():787
> >
> >     org.apache.calcite.sql.SqlUtil.newContextException():772
> >
> >
> >
> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError():4788
> >
> >
> >
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateGroupClause():3941
> >
> >
>  org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect():3306
> >
> >     org.apache.calcite.sql.validate.SelectNamespace.validateImpl():60
> >
> >     org.apache.calcite.sql.validate.AbstractNamespace.validate():84
> >
> >
> > org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace():977
> >
> >     org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery():953
> >
> >     org.apache.calcite.sql.SqlSelect.validate():216
> >
> >
> >
> >
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression():928
> >
> >     org.apache.calcite.sql.validate.SqlValidatorImpl.validate():632
> >
> >     org.apache.drill.exec.planner.sql.SqlConverter.validate():207
> >
> > On Fri, Apr 19, 2019 at 12:39 PM Nitin Pawar <nitinpawar...@gmail.com>
> > wrote:
> >
> > > I think the error is not with storage plugin but with query parsing
> > >
> > > here is the exception
> > > 0: jdbc:drill:zk=local> select max(last_name) last_name from
> > > cp.`employee.json` group by last_name limit 5;
> > > Error: VALIDATION ERROR: From line 1, column 8 to line 1, column 21:
> > > Aggregate expression is illegal in GROUP BY clause
> > >
> > > On Fri, Apr 19, 2019 at 11:57 PM Kunal Khatua <ku...@apache.org>
> wrote:
> > >
> > > > (Replying on the Drill user list)
> > > >
> > > > This is odd. The CP storage plugin is inbuilt with Drill and that
> > hasn't
> > > > changed. 1.15 by itself works fine.
> > > >
> > > > What is the error you are seeing, Nitin?
> > > >
> > > >
> > > > On 4/18/2019 10:58:48 PM, Nitin Pawar <nitinpawar...@gmail.com>
> wrote:
> > > > Hi,
> > > >
> > > > We are trying to upgrade drill from 1.13 to 1.15
> > > > following query works in drill 1.13 but not in 1.15
> > > >
> > > > select max(last_name) from cp.`employee.json` group by last_name
> limit
> > 5
> > > >
> > > > can you let us know if this backward compatibility issue will be
> fixed
> > ??
> > > >
> > > > --
> > > > Nitin Pawar
> > > >
> > >
> > >
> > > --
> > > Nitin Pawar
> > >
> >
>
>
> --
> Nitin Pawar
>

Reply via email to