Fantastic! We're also very interested in this feature.

+Boxiu

On Tue, Sep 17, 2019 at 11:31 AM Danny Chan <yuzhao....@gmail.com> wrote:

> In umbrella task FLINK-10232 we have introduced CREATE TABLE grammar in
> our new module flink-sql-parser. And we proposed to use computed column to
> describe the time attribute of process time in the design doc FLINK SQL
> DDL, so user may create a table with process time attribute as follows:
> create table T1(
>   a int,
>   b bigint,
>   c varchar,
>   d as PROCTIME,
> ) with (
>   'k1' = 'v1',
>   'k2' = 'v2'
> );
>
> The column d would be a process time attribute for table T1.
>
> Besides that, computed  columns have several other use cases, such as
> these [2]:
>
>
> • Virtual generated columns can be used as a way to simplify and unify
> queries. A complicated condition can be defined as a generated column and
> referred to from multiple queries on the table to ensure that all of them
> use exactly the same condition.
> • Stored generated columns can be used as a materialized cache for
> complicated conditions that are costly to calculate on the fly.
> • Generated columns can simulate functional indexes: Use a generated
> column to define a functional expression and index it. This can be useful
> for working with columns of types that cannot be indexed directly, such as
> JSON columns.
> • For stored generated columns, the disadvantage of this approach is that
> values are stored twice; once as the value of the generated column and once
> in the index.
> • If a generated column is indexed, the optimizer recognizes query
> expressions that match the column definition and uses indexes from the
> column as appropriate during query execution(Not supported yet).
>
>
>
> Computed columns are introduced in SQL-SERVER-2016 [1], MYSQL-5.6 [2] and
> ORACLE-11g [3].
>
> This is the design doc:
>
> https://docs.google.com/document/d/110TseRtTCphxETPY7uhiHpu-dph3NEesh3mYKtJ7QOY/edit?usp=sharing
>
> Any suggestions are appreciated, thanks.
>
> [1]
> https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-2016
> [2]
> https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html
> [3] https://oracle-base.com/articles/11g/virtual-columns-11gr1
>
> Best,
> Danny Chan
>

Reply via email to