More than HQLQueryPlan I think we should "abstract" the QueryPlanCache.
Would be SPECTACULAR if we can avoid multiple visit to the same LINQ-ExpressionTree as we are avoiding multiple parse of the same HQL-string. Have a look to QueryPlanCache and you will see we having zero abstraction of HQLQueryPlan, FilterQueryPlan, NativeSQLQueryPlan, HQLQueryPlanKey, FilterQueryPlanKey (I know you have worked on it). 2009/11/27 Steve Strong <[email protected]> > Hi All, > > Quick question - within HQLQueryPlan, HQL strings are parsed to > determine polymorphic queries, hence potentially creating multiple > translators for a single HQL query (such as "from System.Object o"). > > This is currently a fairly nasty bit of string processing code which > is performed prior to making potentially multiple calls to the > QueryTranslatorFactory, and this processing is performed the same way > regardless of whether we are using the old translator or the new ANTLR > based one. > > With the Linq provider, I obviously don't have an HQL string on which > to run the existing processing, so I need to write code to process the > tree to work out the polymorphic stuff (which is pretty simple, should > be much cleaner than the existing string-based code). > > My plan is to refactor QueryTranslatorFactory so that the decisioning > around polymorphism resides in there rather than in the > HHQLQueryPlan. That way, the current string based code will move into > the classic parser, and the tree-based code that I need to write for > Linq will move into the ANTLR parser and be used for both Linq and > string-based HQL when that parser is being used. HQLQueryPlan will > just make one call to the QueryTranslatorFactory rather than the > multiple calls that it may make, with the refactored > QueryTranslatorFactory returning a list of translators rather than the > single translator that it currently returns. > > The question is just to see if anyone sees any issues with that? As > far as I can see, it's a pretty isolated change but just wanted to > bounce it of you chaps before getting the scalpel out :) > > Cheers, > > Steve > -- Fabio Maulo
