Can someone help take a look at this JIRA <https://issues.apache.org/jira/browse/CALCITE-1856> ( https://issues.apache.org/jira/browse/CALCITE-1856) and PR <https://github.com/apache/calcite/pull/479> ( https://github.com/apache/calcite/pull/479)? Thanks a lot.
On Mon, Jun 19, 2017 at 6:01 PM, Shuyi Chen <[email protected]> wrote: > Can we add an option in StructKind, say, PEEK_FIELDS_NO_STAR_EXPANSION? > And modify SqlValidatorImpl.java to disable star expansion optionally? > Thanks a lot. > > Shuyi > > On Sun, Jun 18, 2017 at 11:59 PM, Shuyi Chen <[email protected]> wrote: > >> We do want to use the PEEK_FIELDS behavior as Flink does support >> RecordType. But I believe Avatica is not used in Flink SQL API. >> >> Is it possible to add an option in Calcite to disable the flattening >> behavior when using PEEK_FIELDS? Or what do you suggest? >> >> Thanks. >> >> On Fri, Jun 16, 2017 at 9:03 PM, Julian Hyde <[email protected]> wrote: >> >>> 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_DEFAUL >>> T >>> > 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." >>> >>> >> >> >> -- >> "So you have to trust that the dots will somehow connect in your future." >> > > > > -- > "So you have to trust that the dots will somehow connect in your future." > -- "So you have to trust that the dots will somehow connect in your future."
