Hello Guenther,

I totally agree that user could adapt his query to use "AS" keyword, while we 
focus on keeping getLimitString() most fast and 
simple as possible.

I think that my modifications are more or less ready and you can view them 
here: 
https://github.com/lukasz-antoniak/hibernate-core/compare/SQLServerLimitString
TOP(100)PERCENT and ORDER BY issue fixed plus introduced limit parameters 
binding in Dialect class.

Query "select id, description descr, (select max(id) from Product2) maximum 
from Product2" fails for me (even without paging):
19:50:29,046 ERROR ErrorCounter:54 - line 1:24: unexpected token: descr
19:50:29,046 ERROR ErrorCounter:50 - line 1:24: unexpected token: descr
line 1:24: unexpected token: descr
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.identPrimary(HqlBaseParser.java:4016)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.primaryExpression(HqlBaseParser.java:859)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.atom(HqlBaseParser.java:3390)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:3168)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.multiplyExpression(HqlBaseParser.java:3040)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2750)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:568)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2518)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2379)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2343)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2259)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2224)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.expression(HqlBaseParser.java:2010)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.aliasedExpression(HqlBaseParser.java:2177)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.selectedPropertiesList(HqlBaseParser.java:1390)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.selectClause(HqlBaseParser.java:1293)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1030)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:700)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:294)
        at 
org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:157)
        at 
org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:266)
        at 
org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
        at 
org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
        at 
org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105)
        at 
org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
        at 
org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)
        at 
org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:219)
        at 
org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:197)
        at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1736)
...
19:50:29,062  WARN HqlParser:259 - HHH000203: processEqualityExpression() : No 
expression to process!
...

Best Regards,
Lukasz Antoniak
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to