Canonical Query Trees

Kind of going off the last post…

So, behind the whole ADO.NET Entities infrastructure they have a standard, declarative model for representing queries, canonical query trees. Sounds crazy-complex, but it’s - at least in concept, I’m sure the implementation was a fun challenge - a simple idea. You can think of it as a query serialization format. The infrastructure has various higher-level representations of these queries.

What’s very, very interesting is the quote from this post on the ADO.NET team blog (where I learned of the above):

At the Object Services layer, you have a choice of expressing queries either via LINQ or via eSQL. At the Map Provider, you need to express queries in terms of eSQL. We may also allow – in a future version – queries to be specified in terms of canonical query trees (CQTs).  

Nice.

Now here’s a right sexy idea… build an expression editor that uses metadata services and spits out CQT. This could be a foundation for user-generated queries (ad-hoc reports, searches) and nice tool for business rule conditions. I like it.

Post a Comment

*Required
*Required (Never published)