Hi, I've created a pull request: https://github.com/nhibernate/nhibernate-core/pull/234 NHibernate issue is NH-3569. Regards
Am Donnerstag, 31. Oktober 2013 20:43:38 UTC+1 schrieb Alexander I. Zaytsev: > Hi CSharper, > > Pull requests with implementation or at least test case would be highly > appreciated. > > Best Regards, > Alexander > > > 2013/11/1 CSharper <[email protected] <javascript:>> > >> 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.
