MDrivenWiki
Log in

QueryPlan

From MDrivenWiki
Revision as of 08:05, 15 October 2019 by Hans (talk | contribs) (Created page with "QueryPlan is what we call the ability to statically analyze a viewmodel to know ahead of time what data it will use. QueryPlan is used to efficiently fetch the data for a vie...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

QueryPlan is what we call the ability to statically analyze a viewmodel to know ahead of time what data it will use.

QueryPlan is used to efficiently fetch the data for a view.

Since views may shift what data they show (seekers or when base nesting on variables) the QueryPlan logic is active even after view creation - to make sure the slow performing lazy fetch does not kick in.

Lazy fetch is a strategy to fetch the object needed for a object locator just in time. This is practical but if every object would fetch itself with a roundtrip to server the application would not scale at all.

QueryPlan has multiple steps:

  1. Statically figure out Hierarcy building expressions (the nestings). On this level we only collect Class and Relation + the classes that expressions used the allinstances operator on
  2. Statically figure out what the other columns use (the non nestings)

From these 2 steps we have static information about what TYPE of information that will - at one point or another - be used by the view - per hierarcy level