[
https://issues.apache.org/jira/browse/BEAM-10219?focusedWorklogId=451163&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-451163
]
ASF GitHub Bot logged work on BEAM-10219:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 25/Jun/20 15:48
Start Date: 25/Jun/20 15:48
Worklog Time Spent: 10m
Work Description: ZijieSong946 commented on a change in pull request
#12054:
URL: https://github.com/apache/beam/pull/12054#discussion_r445658639
##########
File path:
sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSQLDialectSpecTest.java
##########
@@ -2457,6 +2458,256 @@ public void testDateFromUnixInt64() {
pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
}
+ /////////////////////////////////////////////////////////////////////////////
+ // TIME type tests
+ /////////////////////////////////////////////////////////////////////////////
+
+ @Test
+ public void testTimeLiteral() {
+ String sql = "SELECT TIME '15:30:00'";
+
+ ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
+ BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql);
+ PCollection<Row> stream = BeamSqlRelUtils.toPCollection(pipeline,
beamRelNode);
+
+ PAssert.that(stream)
+ .containsInAnyOrder(
+ Row.withSchema(Schema.builder().addLogicalTypeField("f_time",
SqlTypes.TIME).build())
+ .addValues(LocalTime.of(15, 30, 0, 0))
+ .build());
+
pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
+ }
+
+ @Test
+ public void testTimeColumn() {
+ String sql = "SELECT FORMAT_TIME('%T', time_field) FROM table_with_time";
+
+ ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
+ BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql);
+ PCollection<Row> stream = BeamSqlRelUtils.toPCollection(pipeline,
beamRelNode);
+
+ PAssert.that(stream)
+ .containsInAnyOrder(
+
Row.withSchema(Schema.builder().addStringField("f_time_str").build())
+ .addValues("15:30:00")
+ .build(),
+
Row.withSchema(Schema.builder().addStringField("f_time_str").build())
+ .addValues("23:35:59")
+ .build());
+
pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
+ }
+
+ // TODO[BEAM-9166]: Add a test for CURRENT_TIME function ("SELECT
CURRENT_TIME()")
+
+ @Test
+ public void testExtractTime() {
+ String sql =
+ "SELECT "
+ + "EXTRACT(HOUR FROM TIME '15:30:35') as hour, "
+ + "EXTRACT(MINUTE FROM TIME '15:30:35') as minute, "
+ + "EXTRACT(SECOND FROM TIME '15:30:35') as second, "
+ + "EXTRACT(MILLISECOND FROM TIME '15:30:35') as millisecond, "
+ + "EXTRACT(MICROSECOND FROM TIME '15:30:35') as microsecond ";
Review comment:
Extract for millisecond precision works, but tests for microsecond and
nanosecond precision not works because of TIME literal function.
----------------------------------------------------------------
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:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 451163)
Time Spent: 3h 20m (was: 3h 10m)
> Support ZetaSQL TIME functions in BeamSQL
> -----------------------------------------
>
> Key: BEAM-10219
> URL: https://issues.apache.org/jira/browse/BEAM-10219
> Project: Beam
> Issue Type: New Feature
> Components: dsl-sql-zetasql
> Reporter: Robin Qiu
> Assignee: Zijie Song
> Priority: P2
> Time Spent: 3h 20m
> Remaining Estimate: 0h
>
> Support *all* TIME functions defined in ZetaSQL (BigQuery Standard SQL). See
> the list of functions below:
> [https://github.com/google/zetasql/blob/master/docs/time_functions.md]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)