[
https://issues.apache.org/jira/browse/PHOENIX-2163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14698370#comment-14698370
]
James Taylor commented on PHOENIX-2163:
---------------------------------------
Excellent, [~shuxi0ng]. Please review and commit, [~maryannxue].
Regarding CASE and CASE/WHEN both are compiled to the same expression:
CaseExpression. Does Calcite have different RexNodes for CASE versus CASE/WHEN?
You can look at the case_statement rule in PhoenixSQL.g for how we translate at
parse time a CASE <e> WHEN <v1> THEN <e1> WHEN <v2> THEN <e2> END. We basically
translate it to a CASE WHEN <e> = <v1> THEN <e1> WHEN <e> = <v2> THEN <e2> END.
If need be, you could do that translation in your factory.
For CaseExpression, the List<Expression> children need to be in the following
order: <when expression1><then expression1><when expression2><then
expression2>...<optional else expression>.
For example, given this CASE statement: CASE WHEN c1 = 'a' THEN 'b' WHEN c2 =
'b' THEN 'c' ELSE 'd' END, we'd end up with the following List<Expression>:
'b', c1 = 'a', 'c', c2 = 'b', 'd'
We know if there's an else clause based on the size of the list being an odd
number.
> Measure performance of Phoenix/Calcite querying
> -----------------------------------------------
>
> Key: PHOENIX-2163
> URL: https://issues.apache.org/jira/browse/PHOENIX-2163
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Shuxiong Ye
> Attachments: PHOENIX-2163.patch
>
>
> The work to integrate Phoenix with Calcite has come along far enough that
> queries both against the data table and through a secondary index is
> functional. As a checkpoint, we should compare performance of as many queries
> as possible in our regression suite for the calcite branch against the latest
> Phoenix release (4.5.0). The runtime of these two systems should be the same,
> so this will give us an idea of the overhead of query parsing and compilation
> for Calcite. This is super important, as it'll identify outstanding work
> that'll be necessary to do prior to any releases on top of this new stack.
> Source code of regression suite is at
> https://github.com/mujtabachohan/PhoenixRegressor
> Connection string location:
> https://github.com/mujtabachohan/PhoenixRegressor/blob/master/src/main/resources/settings.json
> Instructions on how to compile and run:
> https://github.com/mujtabachohan/PhoenixRegressor/blob/master/README.md
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)