The split makes a lot of sense, should we have another module for the criteria query SQM translation?
As we only have one grammar for HQL and JPQL, does jpql come under the hibernate-hql-parser-antlr4poc module? On 21/08/15 21:51, Steve Ebersole wrote: > Just a heads up that I started a major refactoring of the antlr4 poc > project in preparation for starting to look at this next sql-gen step. > > First I am making it into a multi-module project. We will have the > hql-parser module, but then also an orm-sql-gen module to be able to > play with that part. This makes sure we are not blending orm concerns > into the pure hql parser. > > Also, I started working on splitting the "semantic query" model out > into a separate module as well. There are a few reasons for this. I > wont go into them all here. The main one being that HQL is just one > producer of this semantic model. Rather than another long name I went > with the acronym SQM (Semantic Query Model) here. The top package > being org.hibernate.sqm. > > These changes already illustrated some tighter couplings then I had > intended, so it was a good exercise. I'll push once I get those > couplings cleaned up. > > On Fri, Aug 21, 2015 at 2:35 PM andrea boriero <drebor...@gmail.com > <mailto:drebor...@gmail.com>> wrote: > > I haven't seen it, I'm going to read it. > > On 21 August 2015 at 16:54, Steve Ebersole <st...@hibernate.org > <mailto:st...@hibernate.org>> wrote: > > http://www.antlr2.org/article/1170602723163/treewalkers.html > > Not sure if y'all have seen this. Its an old article > advocating manual tree walking (what we are facing here) over > using generated tree walkers. > > > > On Wed, Aug 19, 2015 at 12:27 PM Steve Ebersole > <st...@hibernate.org <mailto:st...@hibernate.org>> wrote: > > I agree. Its my biggest hang up with regard to using > Antlr 4. Actually, its my only hang up with Antlr 4, but > its a huge one. > > On Tue, Aug 18, 2015 at 9:30 AM andrea boriero > <drebor...@gmail.com <mailto:drebor...@gmail.com>> wrote: > > yes Steve I'm more familiar with Antlr4 ( but not 3) > and I gave a look at your poc. > > Apart some problems to fully understand the semantic > model (due to my lack of a complete knowledge of the > domain problem), > I agree with you about the simplicity and elegance of > the grammar for HQL recognition and semantic model > building. > > What I don't like it's the necessity to build our own > semantic model walker/s in order to produce the final SQL. > > > > > > > > > On 14 August 2015 at 16:32, Steve Ebersole > <st...@hibernate.org <mailto:st...@hibernate.org>> wrote: > > We've had a few discussions about this in the > past. As 5.0 is getting > close to Final (next week), its time to start > contemplating our next major > tasks. The consensus pick for that has been the > idea of a "unified SQL > generation engine" along with a shared project for > the semantic analysis of > HQL/JPQL (and recently it was decided to include > JPA Criteria > interpretation here as well). > > The central premise is this. Take the roughly 6 > or 7 different top-level > ways Hibernate generates SQL and combine that into > one "engine" based on > the input of a "semantic tree". The mentioned > HQL/JPQL/Criteria shared > project will be one producer of such semantic > trees. Others would include > persisters (for insert/update/delete requests) and > loaders (for load > requests). > > We have a lot of tasks for this overall goal still > remaining. > > We still have to finalize the design for the > HQL/JPQL/Criteria to semantic > tree translator. One option is to proceed with > the Antlr 4 based approach > I started a PoC for. John has been helping me > some lately with that. The > first task here is to come to a consensus whether > Antlr 4 is the way we > want to proceed here. We've been over the pros > and cons before in detail. > In summary, there is a lot to love with Antlr 4. > Our grammar for HQL > recognition and semantic tree building is very > simple and elegant imo. The > drawback is clearly the lack of tree walking, > meaning that we are > responsible for writing by hand our walker for the > semantic tree. In fact > multiple, since each consumer (orm, ogm, search) > would need to write their > own. And if we decide to build another AST while > walking the semantic > tree, we'd end up having to hand-write yet another > walker for those. > > What I mean by that last part is that there are 2 > ways we might choose to > deal with the semantic tree. For the purpose of > discussion, let's look at > the ORM case. The first approach is to simply > generate the SQL as we walk > the semantic tree; this would be a 2 phase > interpretation approach (input > -> semantic tree -> SQL). That works in many > cases. However it breaks > down in other cases. This is exactly the approach > our existing HQL > translator uses. The other approach is to use a > 3-phase translation (input > -> semantic-tree -> semantic-SQL-tree(s) -> SQL). > This gives a hint to one > of the major problems. One source "semantic" > query will often correspond > to multiple SQL queries; that is hard to manage in > the 2-phase approach. > And not to mention integrating things like > follow-on fetches and other > enhancements we want to gain from this. My vote > is definitely for 3 or > more phases of interpretation. The problem is > that this is exactly where > Antlr 4 sort of falls down. > > So first things first... we need to decide on > Antlr 3 versus Antlr 4 > (versus some other parser solution). > > Next, on the ORM side (every "backend" can decide > this individually) we > need to decide on the approach for semantic-tree > to SQL translation, which > somewhat depends on the Antlr 3 versus Antlr 4 > decision. > > We really need to decide these things ASAP and get > moving on them as soon > as ORM 5.0 is finished. > > Also, this is a massive undertaking with huge gain > potentials for not just > ORM. As such we need to understand who will be > working on this. Sanne, > Gunnar... I know y'all have a vested interest and > a desire to work on it. > John, I know the same is true for you. Andrea? > Have you had a chance to > look over the poc and/or get more familiar with Antlr? > > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > <mailto:hibernate-dev@lists.jboss.org> > https://lists.jboss.org/mailman/listinfo/hibernate-dev > > > -- John O'Hara joh...@redhat.com JBoss, by Red Hat Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in UK and Wales under Company Registration No. 3798903 Directors: Michael Cunningham (USA), Charlie Peters (USA), Matt Parsons (USA) and Michael O'Neill (Ireland). _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev