You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2022/04/20 23:45:00 UTC

[jira] [Created] (CALCITE-5105) Add MEASURE type and AGGREGATE aggregate function

Julian Hyde created CALCITE-5105:
------------------------------------

             Summary: Add MEASURE type and AGGREGATE aggregate function
                 Key: CALCITE-5105
                 URL: https://issues.apache.org/jira/browse/CALCITE-5105
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde


In CALCITE-4496 we propose adding measures to SQL, and an "AS MEASURE" sub-clause to the SELECT clause so that you can define measures. This change is a first step in that direction: namely the ability to define the columns are measures and use validate queries that use measures.

This change adds a {{MEASURE}} type, which is parameterized with the value type, so that in RelNode-and-RexNode-land a measure column whose value is of type {{INTEGER}} would have type {{MEASURE<INTEGER>}}. (In SqlNode-land its type would be {{INTEGER}} and we would tell that it was a measure by some other means.)

This change also adds an aggregate function called {{AGGREGATE}} that evaluates measures in the current {{GROUP BY}} context. (You can think of this as letting the measures roll themselves up as only they know how. For example, if the {{sum_price}} measure is defined as {{SUM(price)}} then if I write {{AGGREGATE(sum_price)}} in my query it's as if I wrote {{SUM(price)}}. But we also support measures that have more complex formulas.)



--
This message was sent by Atlassian Jira
(v8.20.7#820007)