GitHub user akedin opened a pull request: https://github.com/apache/beam/pull/4082
[BEAM-2203] Subtraction 'timestamp - interval' Currently this also includes commits from https://github.com/apache/beam/pull/4065/ Follow this checklist to help us incorporate your contribution quickly and easily: - [ ] Make sure there is a [JIRA issue](https://issues.apache.org/jira/projects/BEAM/issues/) filed for the change (usually before you start working on it). Trivial changes like typos do not require a JIRA issue. Your pull request should address just this issue, without pulling in other changes. - [ ] Each commit in the pull request should have a meaningful subject line and body. - [ ] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA issue. - [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why. - [ ] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically. - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf). --- You can merge this pull request into a Git repository by running: $ git pull https://github.com/akedin/beam timestamp_minus_interval Alternatively you can review and apply these changes as the patch at: https://github.com/apache/beam/pull/4082.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #4082 ---- commit c2c283cf9bda446c37874f0af9d43e52e90b6dd8 Author: Anton Kedin <ke...@kedin-macbookpro.roam.corp.google.com> Date: 2017-10-31T00:36:21Z [BEAM-2203] Implement Reinterprent from integer types to BigInt Split Reinterpret call implementation into multiple classes. Add implementation for INT_TYPES->BIGINT conversion. This is needed for TIMESTAMPDIFF() implementation, Calcilte converts 'TIMESTAMPDIFF(timeUnit, dateStart, dateEnd)' to 'CAST(/INT(Reinterpret(-(dateEnd, dateStart)), timeUnit.multiplier)):INTEGER NOT NULL' commit 7be44848e8a5c90ce3d1d764a2d2a3bdd7f84a72 Author: Anton Kedin <ke...@kedin-macbookpro.roam.corp.google.com> Date: 2017-10-31T00:42:29Z [BEAM-2203] Implement TIMESTAMPDIFF() Add BeamSqlDateTimeMinus expression, which implements only TIMESTAMPDIFF(). Other supported 'datetime minus' variants are not implemented here. commit 72225ce421db4a108bbc9fb10bd7d545f9e8b089 Author: Anton Kedin <ke...@kedin-macbookpro.roam.corp.google.com> Date: 2017-11-02T03:22:04Z fixup! [BEAM-2203] Implement TIMESTAMPDIFF() commit 4900a32c5a4f95d5bf38340811e6c07b7ea06e99 Author: Anton Kedin <ke...@google.com> Date: 2017-11-02T17:20:03Z fixup! fixup! [BEAM-2203] Implement TIMESTAMPDIFF() commit 5828f9b16adbdd52d0b635f842fba510f6923e3a Author: Anton Kedin <ke...@google.com> Date: 2017-11-06T07:26:10Z [BEAM-2203] Implement 'timestamp - interval' Move TIMESTAMPDIFF implementation into BeamSqlTimestampMinusTimestampExpression, add BeamSqlTimestampMinusIntervalExpression ---- ---