[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2017-05-06 Thread Hao Tan (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15999656#comment-15999656
 ] 

Hao Tan commented on CALCITE-1389:
--

Thank you, Michael.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2017-05-06 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15999632#comment-15999632
 ] 

Michael Mior commented on CALCITE-1389:
---

This rule implemented a *very* limited set of techniques from that paper and 
would only perform matching in a very restricted set of circumstances. No 
caching was implemented. In any case, this rule was made obsolete by 
CALCITE-1731. I'd suggest you look there instead. It's still not a complete 
implementation of the approach in the paper, but it's more solid than this.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2017-05-05 Thread Hao Tan (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15999254#comment-15999254
 ] 

Hao Tan commented on CALCITE-1389:
--

Hi Michael Mior, I tried out this new rule and it seems that I am not able to 
match A join B join C to a view created by another permutation (e.g. B join C 
join A). View query uses the same set of table and contains all columns 
required by the query. Have you tested similar cases for this rule? In 
MaterializationTest.java, I can only find case that only binary join is used. 

BTW, Does calcite has a complete implementation of the techniques covered in 
ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
 for materialized view matching?

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-11-01 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15626883#comment-15626883
 ] 

Michael Mior commented on CALCITE-1389:
---

Fixed in 
[435b6d4|https://github.com/apache/calcite/commit/435b6d47b195f55e4a926da3ba27f3bb0e5699cc].

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-11-01 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15626881#comment-15626881
 ] 

Michael Mior commented on CALCITE-1389:
---

Thanks! That did the trick.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-11-01 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15626203#comment-15626203
 ] 

Julian Hyde commented on CALCITE-1389:
--

Maybe something involving {{CalciteAssert.AssertQuery.withHook(Hook.PROGRAM, 
...)}}?


> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-11-01 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15626156#comment-15626156
 ] 

Michael Mior commented on CALCITE-1389:
---

Any suggestions on how I can selectively enable the rule during tests? I'd like 
to keep the test case in MaterializationTest, but it will fail with the 
MaterializedViewJoinRule not enabled. I don't see an obvious to have it enabled 
just for the tests. (Ideally, just for that single test).

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-31 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15623045#comment-15623045
 ] 

Julian Hyde commented on CALCITE-1389:
--

I'm fine with that. In fact, the documentation will help people decide which 
rules to enable to achieve a particular materialization strategy.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-31 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15623037#comment-15623037
 ] 

Michael Mior commented on CALCITE-1389:
---

I think it might be good to disable this rule by default. That is, avoid adding 
it to the default planner constructed in {{CalcitePrepareImpl}}. Thoughts? The 
documentation would mention that it is necessary to manually add this rule and 
the goal would still be to eventually have this enabled by default.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-31 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15623016#comment-15623016
 ] 

Julian Hyde commented on CALCITE-1389:
--

Yes, please open a separate issue for the doc, and go ahead and commit your PR.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-18 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15585567#comment-15585567
 ] 

Michael Mior commented on CALCITE-1389:
---

Sounds like a great idea. I will admit that I don't have a great handle on some 
of the aspects you mentioned, but I think all of those should be included in 
the documentation. I think this is worth opening up a separate issue for which 
I'll do if there are no objections. Maybe we can get some stable documentation 
on existing use of MVs before pushing this further.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-17 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15582936#comment-15582936
 ] 

Julian Hyde commented on CALCITE-1389:
--

I'm happy for these changes to go in. But I'd like to have a sense for where 
the effort is going - and where it fits with related efforts.

How would you feel about creating a page in our documentation about 
materialized views? It would cover regular materializations (with their 
general-purpose matching algorithm), lattices (specialized for SPJA), planning 
secondary indexes (as [~maryannxue] has done in Phoenix), view recommendations, 
and life cycle issues (how do we invalidate materialized views? how to add the 
necessary hooks so that they appear in the schema). We could discuss which 
query patterns each kind of MV can handle; and compare with MVs in other 
systems such as Cassandra and Druid; and list some of the possible future 
directions. It would help our users figure out which are the best pieces of our 
(complicated) framework to use.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-11 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15565650#comment-15565650
 ] 

Michael Mior commented on CALCITE-1389:
---

Definitely far from production quality IMO, but I think interesting enough to 
be included. I'll have to think over what would happen in each of the scenarios 
you presented above, but it's definitely not very robust at this point. Some 
more test cases clarifying the current behaviour are definitely in order.

That said, I've tried to make the rule fairly restrictive so it won't try to 
rewrite cases that aren't correctly handled. For example, I check that all the 
joins are inner joins. My target for this is conjunctive queries with equality 
predicates and simple field references in the SELECT clause.

bq. Or if the the MV doesn't use any table twice, but the MV does?

I assume one of the references to MV above should be query?

I haven't thought specifically about the complexity of this approach, but I 
would expect poor performance with a large number of MVs. The paper gives some 
ideas on how to build index structures to optimize this. On a related note, if 
you have any suggestions on where an appropriate place in the code would be to 
construct such indexes and what object should own the index data, that would be 
helpful.

As for where this fits into planning, I think this could still work as part of 
Volcano. Using MVs when possible is not always the best choice. It also enables 
cost-based selection of multiple MVs when that's an option.

Thanks for the style suggestions. I fixed those issues.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-10 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15563739#comment-15563739
 ] 

Julian Hyde commented on CALCITE-1389:
--

I reviewed your change. It looks fine, but a few comments:
* I don't get a sense that this is very robust. It may be robust, but to be 
convinced, I'd need to see a lot more tests covering more of the potential 
patterns.
* I can't figure out how it would fit into multi-phase planning. It seems to be 
a Hep step. So, would it happen early in the planning process, before Volcano?
* Can it handle multiple MVs? What if more than one matches?
* If you have an MV on {{A join B}}, can it match a query {{A join B join C}}; 
can it match a query {{B join C}}?
* What if there are intervening GROUP BYs between the items in the join tree 
(or SELECT DISTINCTs or semi-joins).
* What if the MV uses the same table twice, by different join paths? Or if the 
the MV doesn't use any table twice, but the MV does?
* What are the performance characteristics if the number of MVs grows large?

In short, I can't tell how far this is along the road to production quality. It 
doesn't need to be production quality (we can flag it as 'experimental') but we 
do need to know what cases it can handle, what the deficiencies are, and which 
of those deficiencies could be addressed by future work.

Code style:
* If you need to wrap arguments, e.g. 
https://github.com/apache/calcite/pull/284/files#diff-937b1dde0b0e60b098796a4a10d4a2e6R115,
 don't align with the '(', instead indent 4.
* In method javadoc, use active "Produces ..." rather than imperative "Produce 
..."

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
> Fix For: 1.11.0
>
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-05 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15548597#comment-15548597
 ] 

Michael Mior commented on CALCITE-1389:
---

Sorry, somehow I didn't see your earlier comment. Not sure how I missed this, 
but I added it now.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-10-04 Thread Jesus Camacho Rodriguez (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15547794#comment-15547794
 ] 

Jesus Camacho Rodriguez commented on CALCITE-1389:
--

{quote}
[~michaelmior], I think you are missing some files in the PR (at least the rule 
itself)?
{quote}

[~michaelmior], have you checked this? I could review and try to include it in 
1.10.0. Thanks

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-09-27 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15527228#comment-15527228
 ] 

Julian Hyde commented on CALCITE-1389:
--

I haven't looked at your code yet but I am familiar with the paper. Did you 
consider implementing that paper by building on top of Calcite's lattice 
construct?

The problem with "free form" materialized views is that there tend to be a lot 
of them. The paper aims to solve that problem, and so do lattices. But lattices 
are better: they can gather statistics and recommend creating views that don't 
exist but would likely be useful.

Lattices are essentially the same as the SPJ views described in the paper, but 
of course today they need to be created by hand. (I would argue that for 
DW-style workloads, creating lattices by hand is a lot more practical than 
creating MVs by hand. This is not just about making the optimizer's life 
easier, but also about making the DBA's life easier. MVs are not easy to manage 
operationally.) By anyway, if people have created a lot of MVs by hand, my idea 
was to have an algorithm that created lattices automatically, and thereby 
reduce the cost of examining all of those MVs.

The main missing piece, as I see it, is an algorithm that, given a collection 
of MVs, creates an optimal set of lattices such that each MV belongs to a 
lattice.

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-09-27 Thread Jesus Camacho Rodriguez (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15527152#comment-15527152
 ] 

Jesus Camacho Rodriguez commented on CALCITE-1389:
--

[~michaelmior], I think you are missing some files in the PR (at least the rule 
itself)?

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1389) Add rule to perform rewriting of queries using materialized views with joins

2016-09-27 Thread Michael Mior (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15527032#comment-15527032
 ] 

Michael Mior commented on CALCITE-1389:
---

Pull request available on GitHub.

https://github.com/apache/calcite/pull/284

> Add rule to perform rewriting of queries using materialized views with joins
> 
>
> Key: CALCITE-1389
> URL: https://issues.apache.org/jira/browse/CALCITE-1389
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Mior
>Assignee: Michael Mior
>
>  I've been looking into implementing the approach from the following paper. 
> It's very nicely written and easy to follow. It also doesn't require trying 
> different join permutations. I'm starting with several additional 
> restrictions (only equijoins, no aggregations, etc.)
> ftp://ftp.cse.buffalo.edu/users/azhang/disc/SIGMOD/pdf-files/331/202-optimizing.pdf
> Thanks to [~jcamachorodriguez] for his help in sorting out some issues with 
> the rule so far.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)