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

Dawid Wysakowicz commented on FLINK-16379:
------------------------------------------

We probably shouldn't. The benefit of {{VALUES}} clause is that users do not 
have to specify the schema manually. It is derived based on the types of 
literals + used expressions. I also intend to support automatic type 
generalization. So that the most generic type of an expression is assigned for 
all values at the same position across rows. It's also closer to the SQL 
standard.

I am sorry I have not sync on that earlier. 

> Introduce fromValues in TableEnvironment
> ----------------------------------------
>
>                 Key: FLINK-16379
>                 URL: https://issues.apache.org/jira/browse/FLINK-16379
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table SQL / API
>            Reporter: Dawid Wysakowicz
>            Assignee: Dawid Wysakowicz
>            Priority: Major
>             Fix For: 1.11.0
>
>
> Introduce a fromValues method to TableEnvironment similar to {{VALUES}} 
> clause in SQL
> The suggested API could look like:
> {code}
>       /**
>        * Creates a Table from a given row constructing expressions.
>        *
>        * <p>Examples:
>        *
>        * <p>You can use {@link Expressions#row(Object, Object...)} to create 
> a composite rows:
>        * <pre>{@code
>        *  tEnv.fromValues(
>        *      row(1, "ABC"),
>        *      row(2L, "ABCDE")
>        *  )
>        * }</pre>
>        * will produce a Table with a schema as follows:
>        * <pre>{@code
>        *  root
>        *  |-- f0: BIGINT NOT NULL
>        *  |-- f1: VARCHAR(5) NOT NULL
>        * }</pre>
>        *
>        * <p>ROWs that are a result of e.g. a function call are not flattened
>        * <pre>{@code
>        *  public class RowFunction extends ScalarFunction {
>        *      @DataTypeHint("ROW<f0 BIGINT, f1 VARCHAR(5)>")
>        *      Row eval();
>        *  }
>        *
>        *  tEnv.fromValues(
>        *      call(new RowFunction()),
>        *      call(new RowFunction())
>        *  )
>        * }</pre>
>        * will produce a Table with a schema as follows:
>        * <pre>{@code
>        *  root
>        *  |-- f0: ROW<`f0` BIGINT, `f1` VARCHAR(5)>
>        * }</pre>
>        *
>        * <p>The row constructor can be dropped to create a table with a 
> single row:
>        *
>        * <p>ROWs that are a result of e.g. a function call are not flattened
>        * <pre>{@code
>        *  tEnv.fromValues(
>        *      1,
>        *      2L,
>        *      3
>        *  )
>        * }</pre>
>        * will produce a Table with a schema as follows:
>        * <pre>{@code
>        *  root
>        *  |-- f0: BIGINT NOT NULL
>        * }</pre>
>        *
>        * @param expressions Expressions for constructing rows of the VALUES 
> table.
>        */
>       Table fromValues(Expression... expressions);
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to