uwescience / raco

Compilation and rule-based optimization framework for relational algebra. Raco is the language, optimization, and query translation layer for the Myria project.
Other
72 stars 19 forks source link

Add recursive idb support #545

Closed jingjingwang closed 7 years ago

jingjingwang commented 7 years ago

This PR adds support for a new syntax: a do-until-convergence loop containing a list of special MyriaL statements. The loop terminates when there will be no update to any relation. Examples are those newly added optimizer tests.

jingjingwang commented 7 years ago

I expect myself adding some more checks to limit what can be put inside of the do-until-convergence loop, but would like to get the main changes being reviewed first.

For 059673c, I'm not sure if it's the best design. I would like to add a MIN aggregate that takes a list of column indices to compare two tuples in that order, however the current MIN is a binary expression. I added a new aggregate called MULTIMIN instead with less support (e.g. fakedb) than MIN, but maybe extending MIN to an nary expression is another option? Would like to hear your thought.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.2%) to 91.822% when pulling 22f8ec9bec9b4b0f4c8d9d15588eb14a97d7626b on add_recursive_idb_support into 55653947635ebeeed48c975f6a2c341a97b8f116 on master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.06%) to 91.898% when pulling d86a4b0482a8e505ea5764e21e73b70abd9f966e on add_recursive_idb_support into 6d75be5d6b3d5bc0a490428bb2938c67039b7330 on master.

jingjingwang commented 7 years ago

I've addressed most comments except for a few pending discussions:

We can discuss them in person if necessary.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.06%) to 91.898% when pulling da94a7f717c219aa087ba47d96fe4bd8061f299c on add_recursive_idb_support into 6d75be5d6b3d5bc0a490428bb2938c67039b7330 on master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.1%) to 91.839% when pulling 81e9e1ed13a47f4218c4bb8008acc9e697d9902d on add_recursive_idb_support into 6d75be5d6b3d5bc0a490428bb2938c67039b7330 on master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.05%) to 91.912% when pulling 718157d9cc4d256d3145d33298ea0d324d28e0dc on add_recursive_idb_support into 6d75be5d6b3d5bc0a490428bb2938c67039b7330 on master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.05%) to 91.917% when pulling cca8d107132f4df189a3ac5f9c28c0a0367a4d74 on add_recursive_idb_support into 6d75be5d6b3d5bc0a490428bb2938c67039b7330 on master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.05%) to 91.917% when pulling 7f0716211eb421c2c2772d88258b40bf9cab35ab on add_recursive_idb_support into 6d75be5d6b3d5bc0a490428bb2938c67039b7330 on master.

jingjingwang commented 7 years ago

Goes with https://github.com/uwescience/myria/pull/877.