[
https://issues.apache.org/jira/browse/BEAM-6632?focusedWorklogId=196360&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-196360
]
ASF GitHub Bot logged work on BEAM-6632:
----------------------------------------
Author: ASF GitHub Bot
Created on: 08/Feb/19 18:57
Start Date: 08/Feb/19 18:57
Worklog Time Spent: 10m
Work Description: kennknowles commented on pull request #7785:
[BEAM-6632] Fixes integer overflow for interval >= 25 DAY
URL: https://github.com/apache/beam/pull/7785#discussion_r255197517
##########
File path:
sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/rule/BeamAggregationRule.java
##########
@@ -181,12 +181,12 @@ private static RelNode updateWindow(RelOptRuleCall call,
Aggregate aggregate, Pr
}
private static Duration durationParameter(List<RexNode> parameters, int
parameterIndex) {
- return Duration.millis(intValue(parameters.get(parameterIndex)));
+ return Duration.millis(longValue(parameters.get(parameterIndex)));
}
- private static long intValue(RexNode operand) {
+ private static long longValue(RexNode operand) {
if (operand instanceof RexLiteral) {
- return RexLiteral.intValue(operand);
+ return ((Number) RexLiteral.value(operand)).longValue();
Review comment:
I also bet that adding this to Calcite at
https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rex/RexLiteral.java#L1093
would be welcome.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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: 196360)
Time Spent: 40m (was: 0.5h)
> Unable to run Query with TUMBLE interval >= 25 DAY
> --------------------------------------------------
>
> Key: BEAM-6632
> URL: https://issues.apache.org/jira/browse/BEAM-6632
> Project: Beam
> Issue Type: Bug
> Components: dsl-sql
> Affects Versions: 2.9.0
> Reporter: Lukas Drbal
> Assignee: Lukas Drbal
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> I am not able to run query with interval DAY >= 25.
> Example:
> {code:java}
> SELECT f_int2, COUNT(*) AS `getFieldCount`,
> TUMBLE_START(f_timestamp, INTERVAL '31' DAY) AS `window_start`,
> TUMBLE_END(f_timestamp, INTERVAL '31' DAY) AS `window_end`
> FROM TABLE_A
> GROUP BY f_int2, TUMBLE(f_timestamp, INTERVAL '31' DAY)
> {code}
> It result to IllegalArgumentException: FixedWindows WindowingStrategies must
> have 0 <= offset < size
>
> {noformat}
> Caused by: java.lang.IllegalArgumentException: FixedWindows
> WindowingStrategies must have 0 <= offset < size
> at
> org.apache.beam.sdk.transforms.windowing.FixedWindows.<init>(FixedWindows.java:65)
> at
> org.apache.beam.sdk.transforms.windowing.FixedWindows.of(FixedWindows.java:50)
> at
> org.apache.beam.sdk.extensions.sql.impl.rule.BeamAggregationRule.createWindowFn(BeamAggregationRule.java:137)
> at
> org.apache.beam.sdk.extensions.sql.impl.rule.BeamAggregationRule.updateWindow(BeamAggregationRule.java:77)
> at
> org.apache.beam.sdk.extensions.sql.impl.rule.BeamAggregationRule.onMatch(BeamAggregationRule.java:59)
> at
> org.apache.beam.repackaged.beam_sdks_java_extensions_sql.org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:212){noformat}
> Looks like Integer overflow in
> [BeamAggregationRule.java#L184|https://github.com/apache/beam/blob/master/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/rule/BeamAggregationRule.java#L184].
> Solution should be simple: getting long value from RexNode.
>
> I can create PR and TestCase for this bug.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)