[ https://issues.apache.org/jira/browse/BEAM-9424?focusedWorklogId=397679&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-397679 ]
ASF GitHub Bot logged work on BEAM-9424: ---------------------------------------- Author: ASF GitHub Bot Created on: 04/Mar/20 16:41 Start Date: 04/Mar/20 16:41 Worklog Time Spent: 10m Work Description: reuvenlax commented on issue #11034: [BEAM-9424] Allow grouping by LogicalType URL: https://github.com/apache/beam/pull/11034#issuecomment-594651288 @kanterov ok, I see the bug now. the problem is because we have an unfortunate asymmetry between Row.Builder.addValues and Row.getValues. getValues returns the base type for logical types (because that's how it's stored, but addValues expects to get the input type. I'm still thinking of the best way to resolve this inconsistency without breaking other use cases. However a simple fix for now is to fix SelectHelpers to use attachValues instead of addValues. Coincidentally that change is already made in https://github.com/apache/beam/pull/11025. Can you check to see whether that PR fixes the problem you're seeing? ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 397679) Time Spent: 3h 40m (was: 3.5h) > Grouping By LogicalTypes is not supported > ----------------------------------------- > > Key: BEAM-9424 > URL: https://issues.apache.org/jira/browse/BEAM-9424 > Project: Beam > Issue Type: Bug > Components: sdk-java-core > Affects Versions: 2.19.0 > Reporter: fdiazgon > Assignee: fdiazgon > Priority: Minor > Labels: sql > Time Spent: 3h 40m > Remaining Estimate: 0h > > Creating a schema from a BQ schema that has either TIME, DATE or DATETIME > columns, and grouping by one of these fields throws NullPointerException. > {code:java} > Pipeline pipeline = Pipeline.create(); > Schema beamSchemaWithLogicalTypes = > BigQueryUtils.fromTableSchema( > new TableSchema() > .setFields( > Arrays.asList( > new TableFieldSchema().setName("fTime").setType("TIME"), > new TableFieldSchema().setName("fDate").setType("DATE"), > new > TableFieldSchema().setName("fDatetime").setType("DATETIME")))); > Row row = > Row.withSchema(beamSchemaWithLogicalTypes) > .addValues( > DateTime.parse("2020-02-02"), > DateTime.parse("2020-02-02"), > DateTime.parse("2020-02-02T00:00:00")) > .build(); > PCollection<Row> outputRow = > pipeline > .apply(Create.of(row)) > .setRowSchema(beamSchemaWithLogicalTypes) > .apply( > SqlTransform.query( > "SELECT fTime, fDate, fDatetime FROM PCOLLECTION GROUP BY > fTime, fDate, fDatetime")); > pipeline.run(); > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)