Hi CSharper,

Pull requests with implementation or at least test case would be highly
appreciated.

Best Regards,
Alexander


2013/11/1 CSharper <[email protected]>

> Hi,
>
> we are using NHibernate 1.2.1 behind a framework for a large application.
>
> I was experimenting with NHib 4 now and found some of our unit tests going
> red with it. One of the problems is a bug in HQLQueryPlan. We have
> implemented the Any operator for a query as a select top 1 Id from Entity
> and if entity is an abstract class that is mapped per concrete class we get
> an exception because the IdentitySet is used for deduplicating the results
> and it does not work for value types. The part "if (needsLimit)" in
> HQLQueryPlan is the one I am writing about.
>
> I had a look at the code and it obviously does not work. It will normally
> return 0 rows because of the "if (distinction.Add(result))
> continue;". Running all the unit tests of NHibernate I saw that there also
> is no test coverage.
>
> Now some thoughts and questions:
> - is the distinction needed at all? In all other cases than when doing the
> in-memory rowselection, there is nothing done with deduplication so I
> assume it is also not required in this case
> - maybe I could rewrite the code and provide a pull request
> - if one of the translators already a bunch of data, the rowselection for
> the further selects could be adjusted to avoid unnecessary large result sets
> - wouldn't it be worth refactoring the RowSelection class to use
> Nullable<int> instead of int with special NoValue constant of -1 to
> indicate nullness
>
> CSharper
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to