[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-1886) unexpected AST node from where (id1, id2) in ((1, 2), (3, 4))
Paizo (JIRA)
noreply at atlassian.com
Tue Nov 9 08:54:13 EST 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=39071#action_39071 ]
Paizo commented on HHH-1886:
----------------------------
seems it's supported in 3.5 (see improvement HHH-4907)... i just tried it out and i still have the same error
> unexpected AST node from where (id1,id2) in ((1,2), (3,4))
> ----------------------------------------------------------
>
> Key: HHH-1886
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1886
> Project: Hibernate Core
> Issue Type: Bug
> Components: query-hql
> Affects Versions: 3.1.2
> Environment: Hibernate 3.1.2 Postgres 8.1.2
> Reporter: Brian Cox
> Attachments: hql.zip
>
>
> ANSI SQL allows: WHERE ((id1, id2)) IN ((1,2), (3,4)); but the HQL parser throws org.hibernate.hql.ast.QuerySyntaxException (see stack trace below). I've fixed this by modifying hql.g and sql-gen.g (attached below). Note that these mods caused a NullPointerException due to use of LA(0) in weakKeywords() (see HHH-1885) that I worked around by adding LT(0) != null
> before the LA(0) call; however, this does NOT fix the underlying problem [the use of LA(0)]
> org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: {vector} [select new com.timestock.tess.data.objects.StatsAggregationData(b.id,b.user,b.transet,b.tranunit,b.userGroup,b.transetGroup,...) from com.timestock.tess.data.objects.StatsTranSetUserGroupInterval b where b.intervalStartTime >= :startTime and b.intervalStartTime < :endTime and (b.transet,b.userGroup) in ((0,0),(600000000000000030,600000000000000137))
> at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
> at org.hibernate.hql.ast.QueryTranslatorImpl.generate(QueryTranslatorImpl.java:209)
> at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:178)
> at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
> at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
> at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
> at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
> at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:134)
> at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:113)
> at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1602)
> at com.timestock.tess.util.StatisticsAggregation.getDatabaseRows(StatisticsAggregation.java:410)
> at com.timestock.tess.util.StatisticsAggregation.getDatabaseRows(StatisticsAggregation.java:334)
> at com.timestock.tess.util.StatisticsAggregation.getAggregatedRows(StatisticsAggregation.java:222)
> at com.timestock.tess.util.TranSetAggregation.AggregateGroup(TranSetAggregation.java:259)
> at com.timestock.tess.util.TranSetAggregation.AggregateGroupHourly(TranSetAggregation.java:69)
> at com.timestock.tess.services.processors.StatsProcessor.doIntervalAggregation(StatsProcessor.java:732)
> at com.timestock.tess.services.processors.StatsProcessor.doIntervalAggregations(StatsProcessor.java:705)
> at com.timestock.tess.services.processors.StatsProcessor.processStats(StatsProcessor.java:418)
> at com.timestock.tess.services.collectors.StatsCollector$StatisticsCollector.run(StatsCollector.java:559)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> Caused by: <AST>:0:0: unexpected AST node: {vector}
> at org.hibernate.hql.antlr.SqlGeneratorBase.inList(SqlGeneratorBase.java:3016)
> at org.hibernate.hql.antlr.SqlGeneratorBase.exoticComparisonExpression(SqlGeneratorBase.java:2831)
> at org.hibernate.hql.antlr.SqlGeneratorBase.comparisonExpr(SqlGeneratorBase.java:1203)
> at org.hibernate.hql.antlr.SqlGeneratorBase.booleanExpr(SqlGeneratorBase.java:851)
> at org.hibernate.hql.antlr.SqlGeneratorBase.booleanOp(SqlGeneratorBase.java:2541)
> at org.hibernate.hql.antlr.SqlGeneratorBase.booleanExpr(SqlGeneratorBase.java:831)
> at org.hibernate.hql.antlr.SqlGeneratorBase.whereExpr(SqlGeneratorBase.java:724)
> at org.hibernate.hql.antlr.SqlGeneratorBase.selectStatement(SqlGeneratorBase.java:184)
> at org.hibernate.hql.antlr.SqlGeneratorBase.statement(SqlGeneratorBase.java:117)
> at org.hibernate.hql.ast.QueryTranslatorImpl.generate(QueryTranslatorImpl.java:203)
> ... 19 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list