Thank you for your response. I saw it and applied patch on calcite 1.20. However I realized BeamCalRel does not generate right code [1]to turn back Beam types. I am working on that now. Please let me know if apache beam support nested row types but I miss it.
[1] https://github.com/apache/beam/blob/646f596988be9d6a739090f48d2fed07c8dfc17c/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/rel/BeamCalcRel.java#L167 On Fri, Feb 14, 2020 at 10:33 AM Rui Wang <ruw...@google.com> wrote: > Calcite has improved to reconstruct ROW back in the output. See [1]. Beam > need to update Calcite dependency to > 1.21 to adopt that. > > > > [1]: https://jira.apache.org/jira/browse/CALCITE-3138 > <https://urldefense.proofpoint.com/v2/url?u=https-3A__jira.apache.org_jira_browse_CALCITE-2D3138&d=DwMFaQ&c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&r=BkW1L6EF7ergAVYDXCo-3Vwkpy6qjsWAz7_GD7pAR8g&m=kPxDNZSy_WpbC0xfVKTFpbSnpFAdhwMZYhSq9L-8H0g&s=jliQ_5N9_-n0EN1qXNmzeBX4m8Xhdcv_UtaHQ812L9Y&e=> > > > -Rui > > On Thu, Feb 13, 2020 at 9:05 PM Talat Uyarer <tuya...@paloaltonetworks.com> > wrote: > >> Hi, >> >> I am trying to Beam SQL. But something is wrong. I have nested row >> records. I read them as Pcollection<Row> and apply Select * query and >> compare with initial rows. Looks like nested rows are flatten by calcite. >> How do you have any idea how can I avoid this? >> >> I added a same testcase for my issue: >> >> Schema nestedSchema = >> Schema.builder() >> .addInt32Field("f_nestedInt") >> .addStringField("f_nestedString") >> .addInt32Field("f_nestedIntPlusOne") >> .build(); >> Schema inputType = >> Schema.builder().addInt32Field("f_int").addRowField("f_row", >> nestedSchema).build(); >> >> PCollection<Row> input = >> pipeline.apply( >> Create.of( >> Row.withSchema(inputType) >> .addValues( >> 1, Row.withSchema(nestedSchema).addValues(312, "CC", >> 313).build()) >> .build()) >> .withRowSchema(inputType)) >> .setRowSchema(inputType); >> >> PCollection<Row> result = >> input >> .apply( >> SqlTransform.query( >> "SELECT * FROM PCOLLECTION")); >> >> PAssert.that(result) >> .containsInAnyOrder(Row.withSchema(inputType) >> .addValues( >> 1, Row.withSchema(nestedSchema).addValues(312, "CC", >> 313).build()) >> .build()); >> >> >> Thank you so much in advance. >> >>