[
https://issues.apache.org/jira/browse/FLINK-16379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17058034#comment-17058034
]
Timo Walther commented on FLINK-16379:
--------------------------------------
Empty table is a corner case. I don't know if we need to support that. But
there might be use cases that require such a behavior. Construction of table
with a POJO would be a follow up issue because don't support structured types
fully yet. But they can be supported in `fromValues(Object...)`. I suggest we
improve the current PR a bit and merge `fromValues` and `fromElements`. We can
add a `fromValues(Object..., DataType)`.
> 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
> Labels: pull-request-available
> Fix For: 1.11.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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)