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.
