[
https://issues.apache.org/jira/browse/CALCITE-3582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16992438#comment-16992438
]
Stamatis Zampetakis commented on CALCITE-3582:
----------------------------------------------
Hey [~amaliujia], just note that if the struct appears in the select clause
then I think the flattener is supposed to recreate it in the end. So for this
specific use-case it may not be necessary to deactivate the flattener since you
don't care about what happens in the middle of the plan as long as you obtain a
struct in the end.
> Make RelStructuredTypeFlattener configurable in PlannerImpl
> -----------------------------------------------------------
>
> Key: CALCITE-3582
> URL: https://issues.apache.org/jira/browse/CALCITE-3582
> Project: Calcite
> Issue Type: Task
> Reporter: Rui Wang
> Assignee: Rui Wang
> Priority: Major
>
> There is a use case where users want to mix Beam programming model with Beam
> SQL together to process a dataset. The following is an example of the use
> case:
> dataset.apply(something user defined)
> .apply(SELECT row_a, row_b ...)
> .apply(something user defined)
> As you can see, after the SQL statement is applied, the data structure should
> be preserved for further processing(e.g. users expect to see there are two
> rows, than flattened fields of rows)
> So far as RelStructuredTypeFlattener is enabled by default in PlannerImpl,
> Row/Struct will be flattened. But users are very likely defined an output
> scheme that include row/struct, as that's what they processed in SQL
> statement.
> Make calling RelStructuredTypeFlattener configurable in PlannerImpl to allow
> disabling it when not needed can be a solution.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)