Below a few interesting pointers to the literature. Parameterized views are known as templates with binding patterns [1], views with access patterns [2]. There are many proposals and algorithms around these notions. I don't know if it is relevant to bring any of it into Calcite.
Best, Stamatis [1] http://ilpubs.stanford.edu:8090/103/1/1995-35.pdf [2] http://users.sdsc.edu/~ludaesch/Paper/deutsch-ludaescher-nash-icdt05.pdf Στις Δευ, 22 Οκτ 2018 στις 8:20 μ.μ., ο/η Julian Hyde <[email protected]> έγραψε: > It’s a need idea, and it could easily be done by a table macro. I just > wouldn’t call it a “view” anymore, because SQL views do not take > parameters, and as you can see, the syntax to call is now table function > syntax rather than view syntax. > > I like the idea of parameterized views. For instance a “view” that takes > not only literals as parameters but also relational expressions and > expressions (e.g. boolean expressions). I just never found a good syntax > for it, other than table function syntax. > > If you’re familiar with Lisp you will know why I called them table macros. > So maybe we need a SQL equivalent of quasi-quote?! [1] > > Julian > > [1] > https://courses.cs.washington.edu/courses/cse341/04wi/lectures/14-scheme-quote.html > < > https://courses.cs.washington.edu/courses/cse341/04wi/lectures/14-scheme-quote.html> > > > > On Oct 22, 2018, at 5:24 AM, [email protected] wrote: > > > > Hello dear Calcite team :) > > > > I have one design question on ViewTableMacro: > > > > Why does it not implement parameters? > > > > I was thinking about dynamic parameters "?" here. For example, following > > view with dynamic parameters > > some_view: SELECT * FROM some_table WHERE id > ? AND LIMIT ? > > could handle two parameters and then this view could be used as follows: > > SELECT * FROM TABLE(some_view(2,100)) > > > > Regards! > > > > -- > > Piotr Bojko > > http://about.me/ptr.bojko > >
