looks exciting. If it is possible I would like to take a part of it however I'm not sure about this week (I could since August)
On Mon, Jul 23, 2018 at 9:10 PM, Michael Mior <[email protected]> wrote: > This does sound like my idea of fun, but unfortunately I won't have > the time to contribute in the near future. I'll keep this on my radar > though. I also shared this message with all the students in our > research group and I wouldn't be surprised if there was someone > willing to jump in. Thanks for keeping this moving Julian! > > -- > Michael Mior > [email protected] > Le lun. 23 juil. 2018 à 13:54, Julian Hyde <[email protected]> a écrit : > > > > For quite a while we have had partial support for MATCH_RECOGNIZE. We > support it in the parser and validator, but there is no runtime > implementation. It’s a shame, because MATCH_RECOGNIZE is an incredibly > powerful SQL feature for both traditional SQL (it’s in Oracle 12c) and for > continuous query (aka complex event processing - CEP). > > > > I figure it’s time to change that. My plan is to implement it > incrementally, getting simple queries working to start with, then allow > people to add more complex queries. > > > > In a dev branch [1], I’ve added a method Enumerables.match[2]. The idea > is that if you supply an Enumerable of input data, a finite state machine > to figure out when a sequence of rows makes a match (represented by a > transition function: (state, row) -> state), and a function to convert a > matched set of rows to a set of output rows. The match method is fairly > straightforward, and I almost have it finished. > > > > The complexity is in generating the finite state machine, emitter > function, and so forth. > > > > Can someone help me with this task? If your idea of fun is implementing > database algorithms, this is about as much fun as it gets. You learned > about finite state machines in college - this is your chance to actually > write one! > > > > This might be a good joint project with the Flink community. I know > Flink are thinking of implementing CEP, and the algorithm we write here > could be shared with Flink (for use via Flink SQL or via the Flink API). > > > > Julian > > > > [1] https://github.com/julianhyde/calcite/commits/1935-match-recognize < > https://github.com/julianhyde/calcite/commits/1935-match-recognize> > > > > [2] https://github.com/julianhyde/calcite/commit/ > 4dfaf1bbee718aa6694a8ce67d829c32d04c7e87#diff- > 8a97a64204db631471c563df7551f408R73 <https://github.com/ > julianhyde/calcite/commit/4dfaf1bbee718aa6694a8ce67d829c32d04c7e87#diff- > 8a97a64204db631471c563df7551f408R73> > -- Best regards, Sergey
