[ 
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)

Reply via email to