Some others, probably, was extracted from NHibernate passing tests (I'm
talking about tests for HQL-functions).As you can imagine this query
select avg(a.BodyWeight) from Animal a having avg(a.BodyWeight)>0
should work fine.

BTW don't worry about Artorius, you can continue porting classes and tests
from Hibernate3.3

2009/3/9 Fabio Maulo <[email protected]>

> If I well remember, all those queries was extracted from test/s of
> Hibernate3.2.6.
>
> 2009/3/9 Steve <[email protected]>
>
>
>> Had a few days off lately, hence the recent radio silence :)
>>
>> Latest update is that I've ported across all the grammar tests that
>> Fabio had in the Artorius project and added them to the ANTLR-
>> HQL.Tests project.  The way I've done this is a smidge twisted, and
>> I'm not sure that I particularly like the implementation, but it is
>> working.  What I've done is:
>>
>> * Moved all the various queries from the original Artorius C# file
>> (GrammarFixture.cs, for those interested) and dumped them into an XML
>> file in the ANTLR project (TestQueries.xml).  I've preserved names,
>> comments etc as far as possible
>>
>> * Written a small Java console app to consume that XML file, run each
>> query against Hibernate, and create a new XML file
>> (TestQueriesWithResults.xml) which includes a string representation of
>> the AST tree that Hibernate built
>>
>> * Moved the ANTLR-HQL.Tests project to use NUnit 2.5, and created a
>> data driven test which spins round the XML file, pushing each query
>> into the new parser and checking that the tree created matches the
>> Hibernate results.
>>
>> This has resulted in 816 tests, all of which now pass against the
>> latest ANTLR-HQL checkin.  So I'm pretty confident that the first pass
>> of the HQL parser is in pretty good shape.  Next step is do start
>> getting tests running against the second pass...
>>
>> One interesting thing is that out of the original Artorius tests,
>> there are a number of queries that don't parse in Hibernate.  I've
>> dumped these below, and would appreciate feedback from you chaps as to
>> which of these should work in the NHibernate world, and which can be
>> removed:
>>
>> select bar.string, foo.string from bar in class org.hibernate.test.Bar
>> inner join bar.baz as baz inner join elements(baz.fooSet) as foo where
>> baz.name = 'name'
>>
>> select bar.string, foo.string from bar in class
>> org.hibernate.test.Bar, bar.baz as baz, elements(baz.fooSet) as foo
>> where baz.name = 'name'
>>
>> select count(*) where this.amount>-1 and this.name is null
>>
>> from sm in class org.hibernate.test.SubMulti where exists
>> sm.children.elements
>>
>> from Order order where maxindex(order.items) > 100
>>
>> from Order order where minelement(order.items) > 10000
>>
>> select item from Item item, Order order where order.items[ maxindex
>> (order.items) ] = item and order.id = 11
>>
>> select bar.string, foo.string from bar in class org.hibernate.test.Bar
>> inner join bar.baz as baz inner join elements(baz.fooSet) as foo where
>> baz.name = 'name'
>>
>> select bar.string, foo.string from bar in class
>> org.hibernate.test.Bar, bar.baz as baz, elements(baz.fooSet) as foo
>> where baz.name = 'name'
>>
>> select count(*) where this.amount>-1 and this.name is null
>>
>> from sm in class org.hibernate.test.SubMulti where exists
>> sm.children.elements
>>
>> from Order order join order.group
>>
>> select count(a.id) from Animal a having count(a.id)>1
>>
>> select avg(a.BodyWeight) from Animal a having avg(a.BodyWeight)>0
>>
>> select max(a.BodyWeight) from Animal a having max(a.BodyWeight)>0
>>
>> select min(a.BodyWeight) from Animal a having min(a.BodyWeight)>0
>>
>> select sum(a.BodyWeight) from Animal a having sum(a.BodyWeight)>0
>>
>> select cast(cast(cast(a.BodyWeight as string) as double) as int from
>> Animal a group by cast(cast(cast(a.BodyWeight as string) as double) as
>> int having cast(cast(cast(a.BodyWeight as string) as double) as int =
>> 1
>>
>> Cheers,
>>
>> Steve
>
>
>
>
> --
> Fabio Maulo
>



-- 
Fabio Maulo

Reply via email to