|
From: cremor (JIRA) <nh...@gm...> - 2011-05-05 11:15:59
|
Queries with nested subqueries either fail or return wrong results
------------------------------------------------------------------
Key: NH-2693
URL: http://216.121.112.228/browse/NH-2693
Project: NHibernate
Issue Type: Bug
Components: Linq Provider
Affects Versions: 3.2.0Alpha2
Reporter: cremor
Priority: Major
The attached test shows multiple failing queries which have in common that they are all using nested subqueries. I have no idea if the different queries fail because of different bugs or if it's all because of the same, but I hope they are clear enough that they can be fixed.
Following is an explanation of the test:
Domain model:
FirstLevel has a set of components of type SecondLevelComponent.
SecondLevelComponent has a many-to-one to ThirdLevel.
ThirdLevel is the abstract base of SpecificThirdLevel (table-per-subclass mapping).
SpecificThirdLevel has a set of entities of type FourthLevel.
The queries and why they are failing:
* _1_Querying_BasedOnFourthLevelExistence_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
+ Should select all FirstLevel entities that have at least one FourthLevel entity as child, implemented by using the "is" operator and then casting the ThirdLevel to a SpecificThirdLevel.
- Returns wrong results, the generated SQL checks for existing ThirdLevel childs instead of FourthLevel childs.
* _2_Querying_BasedOnFourthLevelExistence_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
+ Should select same as first query, but this time implemented by using the Select() and OfType() methods.
- Fails with exception "QueryException : could not resolve property: class of: component[ThirdLevel,SpecificThirdLevel,SomeBool]". I think it should check the class of ThirdLevel instead of SecondLevelComponent.
* _3_Querying_BasedOnFourthLevelProperty_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
+ Should select all FirstLevel entities that have at least one FourthLevel entity _with a specific property_ as child. Implemented with "is" and casting like the first query.
- Fails with exception "QueryException : could not resolve property: SomeString of: ThirdLevel". It should search the "SomeString" property on FourthLevel instead of ThirdLevel.
* _4_Querying_BasedOnFourthLevelProperty_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
+ Should select same as third query, but this time implemented with Select() and OfType() like the second query.
- Fails with same exception as the second query.
The last two queries are not using a polymorphistic association. Instead they are using the property SecondLevelComponent.SpecificThirdLevel so that no type checking or casting is needed. But they are still failing:
* _5_Querying_BasedOnFourthLevelExistence_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
+ Should select same as first and second query.
- Returns no entities. But I'm not sure why it doesn't return anything.
* _6_Querying_BasedOnFourthLevelProperty_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
+ Should select same as third and fourth query.
- Also returns no entities and I also don't know why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: cremor (JIRA) <nh...@gm...> - 2011-05-05 11:17:56
|
[ http://216.121.112.228/browse/NH-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
cremor updated NH-2693:
-----------------------
Attachment: NH2693 Test.zip
> Queries with nested subqueries either fail or return wrong results
> ------------------------------------------------------------------
>
> Key: NH-2693
> URL: http://216.121.112.228/browse/NH-2693
> Project: NHibernate
> Issue Type: Bug
> Components: Linq Provider
> Affects Versions: 3.2.0Alpha2
> Reporter: cremor
> Priority: Major
> Attachments: NH2693 Test.zip
>
>
> The attached test shows multiple failing queries which have in common that they are all using nested subqueries. I have no idea if the different queries fail because of different bugs or if it's all because of the same, but I hope they are clear enough that they can be fixed.
> Following is an explanation of the test:
> Domain model:
> FirstLevel has a set of components of type SecondLevelComponent.
> SecondLevelComponent has a many-to-one to ThirdLevel.
> ThirdLevel is the abstract base of SpecificThirdLevel (table-per-subclass mapping).
> SpecificThirdLevel has a set of entities of type FourthLevel.
> The queries and why they are failing:
> * _1_Querying_BasedOnFourthLevelExistence_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity as child, implemented by using the "is" operator and then casting the ThirdLevel to a SpecificThirdLevel.
> - Returns wrong results, the generated SQL checks for existing ThirdLevel childs instead of FourthLevel childs.
> * _2_Querying_BasedOnFourthLevelExistence_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first query, but this time implemented by using the Select() and OfType() methods.
> - Fails with exception "QueryException : could not resolve property: class of: component[ThirdLevel,SpecificThirdLevel,SomeBool]". I think it should check the class of ThirdLevel instead of SecondLevelComponent.
> * _3_Querying_BasedOnFourthLevelProperty_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity _with a specific property_ as child. Implemented with "is" and casting like the first query.
> - Fails with exception "QueryException : could not resolve property: SomeString of: ThirdLevel". It should search the "SomeString" property on FourthLevel instead of ThirdLevel.
> * _4_Querying_BasedOnFourthLevelProperty_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third query, but this time implemented with Select() and OfType() like the second query.
> - Fails with same exception as the second query.
> The last two queries are not using a polymorphistic association. Instead they are using the property SecondLevelComponent.SpecificThirdLevel so that no type checking or casting is needed. But they are still failing:
> * _5_Querying_BasedOnFourthLevelExistence_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first and second query.
> - Returns no entities. But I'm not sure why it doesn't return anything.
> * _6_Querying_BasedOnFourthLevelProperty_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third and fourth query.
> - Also returns no entities and I also don't know why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-06-19 21:30:16
|
[ http://216.121.112.228/browse/NH-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21309#action_21309 ]
Fabio Maulo commented on NH-2693:
---------------------------------
5 and 6 fails because wrong mapping.
> Queries with nested subqueries either fail or return wrong results
> ------------------------------------------------------------------
>
> Key: NH-2693
> URL: http://216.121.112.228/browse/NH-2693
> Project: NHibernate
> Issue Type: Bug
> Components: Linq Provider
> Affects Versions: 3.2.0Alpha2
> Reporter: cremor
> Priority: Major
> Attachments: NH2693 Test.zip
>
>
> The attached test shows multiple failing queries which have in common that they are all using nested subqueries. I have no idea if the different queries fail because of different bugs or if it's all because of the same, but I hope they are clear enough that they can be fixed.
> Following is an explanation of the test:
> Domain model:
> FirstLevel has a set of components of type SecondLevelComponent.
> SecondLevelComponent has a many-to-one to ThirdLevel.
> ThirdLevel is the abstract base of SpecificThirdLevel (table-per-subclass mapping).
> SpecificThirdLevel has a set of entities of type FourthLevel.
> The queries and why they are failing:
> * _1_Querying_BasedOnFourthLevelExistence_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity as child, implemented by using the "is" operator and then casting the ThirdLevel to a SpecificThirdLevel.
> - Returns wrong results, the generated SQL checks for existing ThirdLevel childs instead of FourthLevel childs.
> * _2_Querying_BasedOnFourthLevelExistence_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first query, but this time implemented by using the Select() and OfType() methods.
> - Fails with exception "QueryException : could not resolve property: class of: component[ThirdLevel,SpecificThirdLevel,SomeBool]". I think it should check the class of ThirdLevel instead of SecondLevelComponent.
> * _3_Querying_BasedOnFourthLevelProperty_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity _with a specific property_ as child. Implemented with "is" and casting like the first query.
> - Fails with exception "QueryException : could not resolve property: SomeString of: ThirdLevel". It should search the "SomeString" property on FourthLevel instead of ThirdLevel.
> * _4_Querying_BasedOnFourthLevelProperty_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third query, but this time implemented with Select() and OfType() like the second query.
> - Fails with same exception as the second query.
> The last two queries are not using a polymorphistic association. Instead they are using the property SecondLevelComponent.SpecificThirdLevel so that no type checking or casting is needed. But they are still failing:
> * _5_Querying_BasedOnFourthLevelExistence_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first and second query.
> - Returns no entities. But I'm not sure why it doesn't return anything.
> * _6_Querying_BasedOnFourthLevelProperty_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third and fourth query.
> - Also returns no entities and I also don't know why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-06-19 21:37:15
|
[ http://216.121.112.228/browse/NH-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21310#action_21310 ]
Fabio Maulo commented on NH-2693:
---------------------------------
For the others we have to check.
btw... you can't map a List<T> to a <set>
> Queries with nested subqueries either fail or return wrong results
> ------------------------------------------------------------------
>
> Key: NH-2693
> URL: http://216.121.112.228/browse/NH-2693
> Project: NHibernate
> Issue Type: Bug
> Components: Linq Provider
> Affects Versions: 3.2.0Alpha2
> Reporter: cremor
> Priority: Major
> Attachments: NH2693 Test.zip
>
>
> The attached test shows multiple failing queries which have in common that they are all using nested subqueries. I have no idea if the different queries fail because of different bugs or if it's all because of the same, but I hope they are clear enough that they can be fixed.
> Following is an explanation of the test:
> Domain model:
> FirstLevel has a set of components of type SecondLevelComponent.
> SecondLevelComponent has a many-to-one to ThirdLevel.
> ThirdLevel is the abstract base of SpecificThirdLevel (table-per-subclass mapping).
> SpecificThirdLevel has a set of entities of type FourthLevel.
> The queries and why they are failing:
> * _1_Querying_BasedOnFourthLevelExistence_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity as child, implemented by using the "is" operator and then casting the ThirdLevel to a SpecificThirdLevel.
> - Returns wrong results, the generated SQL checks for existing ThirdLevel childs instead of FourthLevel childs.
> * _2_Querying_BasedOnFourthLevelExistence_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first query, but this time implemented by using the Select() and OfType() methods.
> - Fails with exception "QueryException : could not resolve property: class of: component[ThirdLevel,SpecificThirdLevel,SomeBool]". I think it should check the class of ThirdLevel instead of SecondLevelComponent.
> * _3_Querying_BasedOnFourthLevelProperty_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity _with a specific property_ as child. Implemented with "is" and casting like the first query.
> - Fails with exception "QueryException : could not resolve property: SomeString of: ThirdLevel". It should search the "SomeString" property on FourthLevel instead of ThirdLevel.
> * _4_Querying_BasedOnFourthLevelProperty_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third query, but this time implemented with Select() and OfType() like the second query.
> - Fails with same exception as the second query.
> The last two queries are not using a polymorphistic association. Instead they are using the property SecondLevelComponent.SpecificThirdLevel so that no type checking or casting is needed. But they are still failing:
> * _5_Querying_BasedOnFourthLevelExistence_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first and second query.
> - Returns no entities. But I'm not sure why it doesn't return anything.
> * _6_Querying_BasedOnFourthLevelProperty_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third and fourth query.
> - Also returns no entities and I also don't know why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-06-19 21:51:16
|
[ http://216.121.112.228/browse/NH-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21311#action_21311 ]
Fabio Maulo commented on NH-2693:
---------------------------------
Tests committed
> Queries with nested subqueries either fail or return wrong results
> ------------------------------------------------------------------
>
> Key: NH-2693
> URL: http://216.121.112.228/browse/NH-2693
> Project: NHibernate
> Issue Type: Bug
> Components: Linq Provider
> Affects Versions: 3.2.0Alpha2
> Reporter: cremor
> Priority: Major
> Attachments: NH2693 Test.zip
>
>
> The attached test shows multiple failing queries which have in common that they are all using nested subqueries. I have no idea if the different queries fail because of different bugs or if it's all because of the same, but I hope they are clear enough that they can be fixed.
> Following is an explanation of the test:
> Domain model:
> FirstLevel has a set of components of type SecondLevelComponent.
> SecondLevelComponent has a many-to-one to ThirdLevel.
> ThirdLevel is the abstract base of SpecificThirdLevel (table-per-subclass mapping).
> SpecificThirdLevel has a set of entities of type FourthLevel.
> The queries and why they are failing:
> * _1_Querying_BasedOnFourthLevelExistence_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity as child, implemented by using the "is" operator and then casting the ThirdLevel to a SpecificThirdLevel.
> - Returns wrong results, the generated SQL checks for existing ThirdLevel childs instead of FourthLevel childs.
> * _2_Querying_BasedOnFourthLevelExistence_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first query, but this time implemented by using the Select() and OfType() methods.
> - Fails with exception "QueryException : could not resolve property: class of: component[ThirdLevel,SpecificThirdLevel,SomeBool]". I think it should check the class of ThirdLevel instead of SecondLevelComponent.
> * _3_Querying_BasedOnFourthLevelProperty_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity _with a specific property_ as child. Implemented with "is" and casting like the first query.
> - Fails with exception "QueryException : could not resolve property: SomeString of: ThirdLevel". It should search the "SomeString" property on FourthLevel instead of ThirdLevel.
> * _4_Querying_BasedOnFourthLevelProperty_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third query, but this time implemented with Select() and OfType() like the second query.
> - Fails with same exception as the second query.
> The last two queries are not using a polymorphistic association. Instead they are using the property SecondLevelComponent.SpecificThirdLevel so that no type checking or casting is needed. But they are still failing:
> * _5_Querying_BasedOnFourthLevelExistence_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first and second query.
> - Returns no entities. But I'm not sure why it doesn't return anything.
> * _6_Querying_BasedOnFourthLevelProperty_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third and fourth query.
> - Also returns no entities and I also don't know why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: cremor (JIRA) <nh...@gm...> - 2011-06-20 07:59:19
|
[ http://216.121.112.228/browse/NH-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21312#action_21312 ]
cremor commented on NH-2693:
----------------------------
Ups, sorry about the mapping error in query 5 and 6. That's the result of using Fluent NHibernate usually and XML only for NHibernate bugs ;)
About the lists: I know that they behave differently as sets (for transient entities) but other than that it shoudn't cause any problems, right?
> Queries with nested subqueries either fail or return wrong results
> ------------------------------------------------------------------
>
> Key: NH-2693
> URL: http://216.121.112.228/browse/NH-2693
> Project: NHibernate
> Issue Type: Bug
> Components: Linq Provider
> Affects Versions: 3.2.0Alpha2
> Reporter: cremor
> Priority: Major
> Attachments: NH2693 Test.zip
>
>
> The attached test shows multiple failing queries which have in common that they are all using nested subqueries. I have no idea if the different queries fail because of different bugs or if it's all because of the same, but I hope they are clear enough that they can be fixed.
> Following is an explanation of the test:
> Domain model:
> FirstLevel has a set of components of type SecondLevelComponent.
> SecondLevelComponent has a many-to-one to ThirdLevel.
> ThirdLevel is the abstract base of SpecificThirdLevel (table-per-subclass mapping).
> SpecificThirdLevel has a set of entities of type FourthLevel.
> The queries and why they are failing:
> * _1_Querying_BasedOnFourthLevelExistence_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity as child, implemented by using the "is" operator and then casting the ThirdLevel to a SpecificThirdLevel.
> - Returns wrong results, the generated SQL checks for existing ThirdLevel childs instead of FourthLevel childs.
> * _2_Querying_BasedOnFourthLevelExistence_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first query, but this time implemented by using the Select() and OfType() methods.
> - Fails with exception "QueryException : could not resolve property: class of: component[ThirdLevel,SpecificThirdLevel,SomeBool]". I think it should check the class of ThirdLevel instead of SecondLevelComponent.
> * _3_Querying_BasedOnFourthLevelProperty_WithIsAndCasting_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select all FirstLevel entities that have at least one FourthLevel entity _with a specific property_ as child. Implemented with "is" and casting like the first query.
> - Fails with exception "QueryException : could not resolve property: SomeString of: ThirdLevel". It should search the "SomeString" property on FourthLevel instead of ThirdLevel.
> * _4_Querying_BasedOnFourthLevelProperty_WithSelectAndOfType_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third query, but this time implemented with Select() and OfType() like the second query.
> - Fails with same exception as the second query.
> The last two queries are not using a polymorphistic association. Instead they are using the property SecondLevelComponent.SpecificThirdLevel so that no type checking or casting is needed. But they are still failing:
> * _5_Querying_BasedOnFourthLevelExistence_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as first and second query.
> - Returns no entities. But I'm not sure why it doesn't return anything.
> * _6_Querying_BasedOnFourthLevelProperty_ByUsingSpecificThirdLevelProperty_ShouldReturnSameEntitiesAsLinqToObjects
> + Should select same as third and fourth query.
> - Also returns no entities and I also don't know why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|