Both the denormalised view and the query on it are represented as LINQ queries. The compiler then optimises the composition of the two and returns something that acts directly on the database without building up an intermediate representation. It seems to me that the same technique should work for a normalised view over a denormalised database.
On 10 December 2013 01:57, Jamie Brandon <ja...@scattered-thoughts.net>wrote: > That part that seemed relevant to your question is compile queries on > denormalised views to queries on normalised databases. > > > On 9 December 2013 22:07, Brian Craft <craft.br...@gmail.com> wrote: > >> Very interesting paper, thanks. Seem to be more about LINQ to SQL, >> though: translating queries in a host language to sql queries against a db. >> It doesn't, for example, address indexing in-memory data. >> >> >> On Monday, December 9, 2013 11:23:36 AM UTC-8, Jamie Brandon wrote: >> >>> Take a look at "A practical theory of language-integrated query" at >>> http://homepages.inf.ed.ac.uk/wadler/topics/recent.html . In the FPDays >>> talk linked there Wadler demonstrated writing queries which returned >>> denormalised views on tables, composing those with queries on the >>> denormalised view and compiling the result into efficient sql that acts >>> over normalised tables. >>> >>> >>> On 9 December 2013 17:56, Brian Craft <craft...@gmail.com> wrote: >>> >>>> Slightly OT, but I know many of you have read OOTTP. >>>> >>>> This paper describes a hypothetical relational modeling infrastructure >>>> that allows declaring indexes on and writing queries against denormalized >>>> tables as though they were normalized tables. The point of this is to >>>> eliminate the complexity that comes from demands of performance: algorithms >>>> become more brittle and harder to understand when they must be rewritten >>>> for a denormalized data structure, for example. >>>> >>>> But does this infrastructure exist in the real world? I'm aware of >>>> various efforts to provide relational modeling in the application, LINQ, >>>> datomic, etc. But I haven't seen much in the way of indexing support, or >>>> support for logical/physical schema separation. Is there some obvious way >>>> to do these? Indexing in particular is critical. Hierarchical modeling >>>> provides very fast look-up. Switching to a relational model without indexes >>>> would mean potentially scanning millions of rows for every data access. >>>> >>>> -- >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@googlegroups.com >>>> >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+u...@googlegroups.com >>>> >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+u...@googlegroups.com. >>>> >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> >>> -- >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.