PEEK_FIELDS was added as part of 
https://issues.apache.org/jira/browse/CALCITE-1208 
<https://issues.apache.org/jira/browse/CALCITE-1208>, basically to allow us to 
implement Phoenix’s “column family” feature, where it’s optional whether you 
qualify a column with its column family.

If you don’t have that requirement, you probably shouldn’t use PEEK_FIELDS or 
PEEK_FIELDS_DEFAULT.

Julian

> On Jun 16, 2017, at 6:07 PM, Shuyi Chen <[email protected]> wrote:
> 
> Hi all,
> 
> Our team are looking into integration of Flink with Calcite. We found that
> when we set the RelRecordType to use the PEEK_FIELDS/PEEK_FIELDS_DEFAULT
> name resolution policy. A "select * from Table" will yield a recursively
> flatten result. For example,
> 
> Table:
>  a: Int
>  b: Record(f1: Int, f2: Record(f3: String, f4:Int))
> 
> "select * from Table" will return tuples of (a, b.f1, b.f2.f3, b.f2.f4)
> instead of (a, b) when we use PEEK_FIELDS/PEEK_FIELDS_DEFAULT for the
> RelRecordType.
> 
> Using FULLY_QUALIFIED will yield the expected result (a, b)
> 
> We found that this recursive flattening behavior was controlled by this
> *kind* field in RelRecordType, which states in the documentation that it's
> used for resolving fields in record types.
> 
> I am wondering if this is an expected behavior, or should we fix it? Thanks
> a lot.
> 
> Shuyi
> 
> 
> 
> -- 
> "So you have to trust that the dots will somehow connect in your future."

Reply via email to