You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by we...@apache.org on 2020/05/05 14:12:43 UTC

[spark] branch master updated: [SPARK-31630][SQL] Fix perf regression by skipping timestamps rebasing after some threshold

This is an automated email from the ASF dual-hosted git repository.

wenchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new bef5828  [SPARK-31630][SQL] Fix perf regression by skipping timestamps rebasing after some threshold
bef5828 is described below

commit bef5828e12500630d7efc8e0c005182b25ef2b7f
Author: Max Gekk <ma...@gmail.com>
AuthorDate: Tue May 5 14:11:53 2020 +0000

    [SPARK-31630][SQL] Fix perf regression by skipping timestamps rebasing after some threshold
    
    ### What changes were proposed in this pull request?
    Skip timestamps rebasing after a global threshold when there is no difference between Julian and Gregorian calendars. This allows to avoid checking hash maps of switch points, and fixes perf regressions in `toJavaTimestamp()` and `fromJavaTimestamp()`.
    
    ### Why are the changes needed?
    The changes fix perf regressions of conversions to/from external type `java.sql.Timestamp`.
    
    Before (see the PR's results https://github.com/apache/spark/pull/28440):
    ```
    ================================================================================================
    Conversion from/to external types
    ================================================================================================
    
    OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
    Intel(R) Xeon(R) CPU E5-2670 v2  2.50GHz
    To/from Java's date-time:                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
    ------------------------------------------------------------------------------------------------------------------------
    From java.sql.Timestamp                             376            388          10         13.3          75.2       1.1X
    Collect java.sql.Timestamp                         1878           1937          64          2.7         375.6       0.2X
    ```
    
    After:
    ```
    ================================================================================================
    Conversion from/to external types
    ================================================================================================
    
    OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
    Intel(R) Xeon(R) CPU E5-2670 v2  2.50GHz
    To/from Java's date-time:                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
    ------------------------------------------------------------------------------------------------------------------------
    From java.sql.Timestamp                             249            264          24         20.1          49.8       1.7X
    Collect java.sql.Timestamp                         1503           1523          24          3.3         300.5       0.3X
    ```
    
    Perf improvements in average of:
    
    1. From java.sql.Timestamp is ~ 34%
    2. To java.sql.Timestamps is ~16%
    
    ### Does this PR introduce _any_ user-facing change?
    No
    
    ### How was this patch tested?
    By existing test suites `DateTimeUtilsSuite` and `RebaseDateTimeSuite`.
    
    Closes #28441 from MaxGekk/opt-rebase-common-threshold.
    
    Authored-by: Max Gekk <ma...@gmail.com>
    Signed-off-by: Wenchen Fan <we...@databricks.com>
---
 .../spark/sql/catalyst/util/RebaseDateTime.scala   |  47 ++--
 .../benchmarks/DateTimeBenchmark-jdk11-results.txt | 254 ++++++++++-----------
 sql/core/benchmarks/DateTimeBenchmark-results.txt  | 254 ++++++++++-----------
 .../DateTimeRebaseBenchmark-jdk11-results.txt      | 142 ++++++------
 .../benchmarks/DateTimeRebaseBenchmark-results.txt | 144 ++++++------
 5 files changed, 431 insertions(+), 410 deletions(-)

diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/RebaseDateTime.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/RebaseDateTime.scala
index 040a97a..a1b87e8 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/RebaseDateTime.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/RebaseDateTime.scala
@@ -286,6 +286,17 @@ object RebaseDateTime {
    */
   private val gregJulianRebaseMap = loadRebaseRecords("gregorian-julian-rebase-micros.json")
 
+  private def getLastSwitchTs(rebaseMap: AnyRefMap[String, RebaseInfo]): Long = {
+    val latestTs = rebaseMap.values.map(_.switches.last).max
+    require(rebaseMap.values.forall(_.diffs.last == 0),
+      s"Differences between Julian and Gregorian calendar after ${microsToInstant(latestTs)} " +
+      "are expected to be zero for all available time zones.")
+    latestTs
+  }
+  // The switch time point after which all diffs between Gregorian and Julian calendars
+  // across all time zones are zero
+  private final val lastSwitchGregorianTs: Long = getLastSwitchTs(gregJulianRebaseMap)
+
   private final val gregorianStartTs = LocalDateTime.of(gregorianStartDate, LocalTime.MIDNIGHT)
   private final val julianEndTs = LocalDateTime.of(
     julianEndDate,
@@ -344,13 +355,17 @@ object RebaseDateTime {
    * @return The rebased microseconds since the epoch in Julian calendar.
    */
   def rebaseGregorianToJulianMicros(micros: Long): Long = {
-    val timeZone = TimeZone.getDefault
-    val tzId = timeZone.getID
-    val rebaseRecord = gregJulianRebaseMap.getOrNull(tzId)
-    if (rebaseRecord == null || micros < rebaseRecord.switches(0)) {
-      rebaseGregorianToJulianMicros(timeZone.toZoneId, micros)
+    if (micros >= lastSwitchGregorianTs) {
+      micros
     } else {
-      rebaseMicros(rebaseRecord, micros)
+      val timeZone = TimeZone.getDefault
+      val tzId = timeZone.getID
+      val rebaseRecord = gregJulianRebaseMap.getOrNull(tzId)
+      if (rebaseRecord == null || micros < rebaseRecord.switches(0)) {
+        rebaseGregorianToJulianMicros(timeZone.toZoneId, micros)
+      } else {
+        rebaseMicros(rebaseRecord, micros)
+      }
     }
   }
 
@@ -418,7 +433,9 @@ object RebaseDateTime {
   // in the interval: [julianGregDiffSwitchMicros(i), julianGregDiffSwitchMicros(i+1))
   private val julianGregRebaseMap = loadRebaseRecords("julian-gregorian-rebase-micros.json")
 
-  final val lastSwitchJulianTs: Long = julianGregRebaseMap.values.map(_.switches.last).max
+  // The switch time point after which all diffs between Julian and Gregorian calendars
+  // across all time zones are zero
+  final val lastSwitchJulianTs: Long = getLastSwitchTs(julianGregRebaseMap)
 
   /**
    * An optimized version of [[rebaseJulianToGregorianMicros(ZoneId, Long)]]. This method leverages
@@ -434,13 +451,17 @@ object RebaseDateTime {
    * @return The rebased microseconds since the epoch in Proleptic Gregorian calendar.
    */
   def rebaseJulianToGregorianMicros(micros: Long): Long = {
-    val timeZone = TimeZone.getDefault
-    val tzId = timeZone.getID
-    val rebaseRecord = julianGregRebaseMap.getOrNull(tzId)
-    if (rebaseRecord == null || micros < rebaseRecord.switches(0)) {
-      rebaseJulianToGregorianMicros(timeZone.toZoneId, micros)
+    if (micros >= lastSwitchJulianTs) {
+      micros
     } else {
-      rebaseMicros(rebaseRecord, micros)
+      val timeZone = TimeZone.getDefault
+      val tzId = timeZone.getID
+      val rebaseRecord = julianGregRebaseMap.getOrNull(tzId)
+      if (rebaseRecord == null || micros < rebaseRecord.switches(0)) {
+        rebaseJulianToGregorianMicros(timeZone.toZoneId, micros)
+      } else {
+        rebaseMicros(rebaseRecord, micros)
+      }
     }
   }
 }
diff --git a/sql/core/benchmarks/DateTimeBenchmark-jdk11-results.txt b/sql/core/benchmarks/DateTimeBenchmark-jdk11-results.txt
index 61b4c76..61ca342 100644
--- a/sql/core/benchmarks/DateTimeBenchmark-jdk11-results.txt
+++ b/sql/core/benchmarks/DateTimeBenchmark-jdk11-results.txt
@@ -6,18 +6,18 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 datetime +/- interval:                    Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date + interval(m)                                 1485           1567         116          6.7         148.5       1.0X
-date + interval(m, d)                              1504           1510           9          6.6         150.4       1.0X
-date + interval(m, d, ms)                          7000           7013          18          1.4         700.0       0.2X
-date - interval(m)                                 1466           1478          17          6.8         146.6       1.0X
-date - interval(m, d)                              1533           1534           1          6.5         153.3       1.0X
-date - interval(m, d, ms)                          7014           7019           7          1.4         701.4       0.2X
-timestamp + interval(m)                            3062           3064           3          3.3         306.2       0.5X
-timestamp + interval(m, d)                         3133           3136           5          3.2         313.3       0.5X
-timestamp + interval(m, d, ms)                     3401           3402           3          2.9         340.1       0.4X
-timestamp - interval(m)                            3025           3037          17          3.3         302.5       0.5X
-timestamp - interval(m, d)                         3083           3120          51          3.2         308.3       0.5X
-timestamp - interval(m, d, ms)                     3371           3379          11          3.0         337.1       0.4X
+date + interval(m)                                 1496           1569         104          6.7         149.6       1.0X
+date + interval(m, d)                              1514           1526          17          6.6         151.4       1.0X
+date + interval(m, d, ms)                          6231           6253          30          1.6         623.1       0.2X
+date - interval(m)                                 1481           1487           9          6.8         148.1       1.0X
+date - interval(m, d)                              1550           1552           2          6.5         155.0       1.0X
+date - interval(m, d, ms)                          6269           6272           4          1.6         626.9       0.2X
+timestamp + interval(m)                            3017           3056          54          3.3         301.7       0.5X
+timestamp + interval(m, d)                         3146           3148           3          3.2         314.6       0.5X
+timestamp + interval(m, d, ms)                     3446           3460          20          2.9         344.6       0.4X
+timestamp - interval(m)                            3045           3059          19          3.3         304.5       0.5X
+timestamp - interval(m, d)                         3147           3164          25          3.2         314.7       0.5X
+timestamp - interval(m, d, ms)                     3425           3442          25          2.9         342.5       0.4X
 
 
 ================================================================================================
@@ -28,92 +28,92 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 cast to timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-cast to timestamp wholestage off                    339            339           1         29.5          33.9       1.0X
-cast to timestamp wholestage on                     330            337           9         30.3          33.0       1.0X
+cast to timestamp wholestage off                    332            336           5         30.1          33.2       1.0X
+cast to timestamp wholestage on                     333            344          10         30.0          33.3       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 year of timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-year of timestamp wholestage off                   1226           1237          15          8.2         122.6       1.0X
-year of timestamp wholestage on                    1230           1242           9          8.1         123.0       1.0X
+year of timestamp wholestage off                   1246           1257          16          8.0         124.6       1.0X
+year of timestamp wholestage on                    1209           1218          12          8.3         120.9       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 quarter of timestamp:                     Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-quarter of timestamp wholestage off                1602           1606           7          6.2         160.2       1.0X
-quarter of timestamp wholestage on                 1511           1514           3          6.6         151.1       1.1X
+quarter of timestamp wholestage off                1608           1616          11          6.2         160.8       1.0X
+quarter of timestamp wholestage on                 1540           1552          10          6.5         154.0       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 month of timestamp:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-month of timestamp wholestage off                  1227           1233           8          8.1         122.7       1.0X
-month of timestamp wholestage on                   1226           1242          28          8.2         122.6       1.0X
+month of timestamp wholestage off                  1242           1246           6          8.1         124.2       1.0X
+month of timestamp wholestage on                   1202           1212          11          8.3         120.2       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 weekofyear of timestamp:                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-weekofyear of timestamp wholestage off             1965           1980          20          5.1         196.5       1.0X
-weekofyear of timestamp wholestage on              1816           1833          17          5.5         181.6       1.1X
+weekofyear of timestamp wholestage off             1879           1885           8          5.3         187.9       1.0X
+weekofyear of timestamp wholestage on              1832           1845          10          5.5         183.2       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 day of timestamp:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-day of timestamp wholestage off                    1229           1231           3          8.1         122.9       1.0X
-day of timestamp wholestage on                     1222           1230          10          8.2         122.2       1.0X
+day of timestamp wholestage off                    1236           1239           4          8.1         123.6       1.0X
+day of timestamp wholestage on                     1206           1219          17          8.3         120.6       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 dayofyear of timestamp:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-dayofyear of timestamp wholestage off              1294           1297           4          7.7         129.4       1.0X
-dayofyear of timestamp wholestage on               1257           1264           6          8.0         125.7       1.0X
+dayofyear of timestamp wholestage off              1308           1309           1          7.6         130.8       1.0X
+dayofyear of timestamp wholestage on               1239           1255          15          8.1         123.9       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 dayofmonth of timestamp:                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-dayofmonth of timestamp wholestage off             1247           1253           8          8.0         124.7       1.0X
-dayofmonth of timestamp wholestage on              1225           1229           4          8.2         122.5       1.0X
+dayofmonth of timestamp wholestage off             1259           1263           5          7.9         125.9       1.0X
+dayofmonth of timestamp wholestage on              1201           1205           5          8.3         120.1       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 dayofweek of timestamp:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-dayofweek of timestamp wholestage off              1416           1416           0          7.1         141.6       1.0X
-dayofweek of timestamp wholestage on               1376           1382           8          7.3         137.6       1.0X
+dayofweek of timestamp wholestage off              1406           1410           6          7.1         140.6       1.0X
+dayofweek of timestamp wholestage on               1387           1402          15          7.2         138.7       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 weekday of timestamp:                     Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-weekday of timestamp wholestage off                1350           1351           1          7.4         135.0       1.0X
-weekday of timestamp wholestage on                 1308           1318          13          7.6         130.8       1.0X
+weekday of timestamp wholestage off                1355           1367          18          7.4         135.5       1.0X
+weekday of timestamp wholestage on                 1311           1321          10          7.6         131.1       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 hour of timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-hour of timestamp wholestage off                   1004           1007           3         10.0         100.4       1.0X
-hour of timestamp wholestage on                     928            938           7         10.8          92.8       1.1X
+hour of timestamp wholestage off                    996            997           2         10.0          99.6       1.0X
+hour of timestamp wholestage on                     930            936           6         10.7          93.0       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 minute of timestamp:                      Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-minute of timestamp wholestage off                 1009           1020          15          9.9         100.9       1.0X
-minute of timestamp wholestage on                   933            935           2         10.7          93.3       1.1X
+minute of timestamp wholestage off                 1005           1012          10          9.9         100.5       1.0X
+minute of timestamp wholestage on                   949            952           3         10.5          94.9       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 second of timestamp:                      Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-second of timestamp wholestage off                  995            995           0         10.0          99.5       1.0X
-second of timestamp wholestage on                   932            937           8         10.7          93.2       1.1X
+second of timestamp wholestage off                 1013           1014           1          9.9         101.3       1.0X
+second of timestamp wholestage on                   933            934           2         10.7          93.3       1.1X
 
 
 ================================================================================================
@@ -124,15 +124,15 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 current_date:                             Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-current_date wholestage off                         292            316          34         34.2          29.2       1.0X
-current_date wholestage on                          270            276           6         37.0          27.0       1.1X
+current_date wholestage off                         291            293           2         34.3          29.1       1.0X
+current_date wholestage on                          280            284           3         35.7          28.0       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 current_timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-current_timestamp wholestage off                    313            328          20         31.9          31.3       1.0X
-current_timestamp wholestage on                     270            331          95         37.0          27.0       1.2X
+current_timestamp wholestage off                    311            324          18         32.1          31.1       1.0X
+current_timestamp wholestage on                     275            364          85         36.3          27.5       1.1X
 
 
 ================================================================================================
@@ -143,43 +143,43 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 cast to date:                             Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-cast to date wholestage off                        1078           1081           3          9.3         107.8       1.0X
-cast to date wholestage on                         1035           1040           7          9.7         103.5       1.0X
+cast to date wholestage off                        1077           1079           3          9.3         107.7       1.0X
+cast to date wholestage on                         1018           1030          14          9.8         101.8       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 last_day:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-last_day wholestage off                            1265           1266           3          7.9         126.5       1.0X
-last_day wholestage on                             1236           1246          10          8.1         123.6       1.0X
+last_day wholestage off                            1257           1260           4          8.0         125.7       1.0X
+last_day wholestage on                             1218           1227          14          8.2         121.8       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 next_day:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-next_day wholestage off                            1118           1118           1          8.9         111.8       1.0X
-next_day wholestage on                             1085           1090           8          9.2         108.5       1.0X
+next_day wholestage off                            1140           1141           1          8.8         114.0       1.0X
+next_day wholestage on                             1067           1076          11          9.4         106.7       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_add:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_add wholestage off                            1052           1054           4          9.5         105.2       1.0X
-date_add wholestage on                             1046           1051           6          9.6         104.6       1.0X
+date_add wholestage off                            1062           1064           3          9.4         106.2       1.0X
+date_add wholestage on                             1046           1055          11          9.6         104.6       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_sub:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_sub wholestage off                            1075           1075           0          9.3         107.5       1.0X
-date_sub wholestage on                             1043           1046           3          9.6         104.3       1.0X
+date_sub wholestage off                            1082           1083           1          9.2         108.2       1.0X
+date_sub wholestage on                             1047           1056          12          9.6         104.7       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 add_months:                               Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-add_months wholestage off                          1409           1409           0          7.1         140.9       1.0X
-add_months wholestage on                           1448           1453           4          6.9         144.8       1.0X
+add_months wholestage off                          1430           1431           1          7.0         143.0       1.0X
+add_months wholestage on                           1441           1446           8          6.9         144.1       1.0X
 
 
 ================================================================================================
@@ -190,8 +190,8 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 format date:                              Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-format date wholestage off                         5373           5390          24          1.9         537.3       1.0X
-format date wholestage on                          5337           5346          12          1.9         533.7       1.0X
+format date wholestage off                         5442           5549         150          1.8         544.2       1.0X
+format date wholestage on                          5529           5655         236          1.8         552.9       1.0X
 
 
 ================================================================================================
@@ -202,8 +202,8 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 from_unixtime:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-from_unixtime wholestage off                       7302           7308           9          1.4         730.2       1.0X
-from_unixtime wholestage on                        7298           7319          16          1.4         729.8       1.0X
+from_unixtime wholestage off                       7416           7440          34          1.3         741.6       1.0X
+from_unixtime wholestage on                        7372           7391          17          1.4         737.2       1.0X
 
 
 ================================================================================================
@@ -214,15 +214,15 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 from_utc_timestamp:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-from_utc_timestamp wholestage off                  1322           1355          48          7.6         132.2       1.0X
-from_utc_timestamp wholestage on                   1290           1294           5          7.8         129.0       1.0X
+from_utc_timestamp wholestage off                  1316           1320           6          7.6         131.6       1.0X
+from_utc_timestamp wholestage on                   1268           1272           4          7.9         126.8       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_utc_timestamp:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_utc_timestamp wholestage off                    1692           1705          18          5.9         169.2       1.0X
-to_utc_timestamp wholestage on                     1653           1657           4          6.1         165.3       1.0X
+to_utc_timestamp wholestage off                    1653           1657           6          6.0         165.3       1.0X
+to_utc_timestamp wholestage on                     1594           1599           4          6.3         159.4       1.0X
 
 
 ================================================================================================
@@ -233,29 +233,29 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 cast interval:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-cast interval wholestage off                        340            356          22         29.4          34.0       1.0X
-cast interval wholestage on                         293            296           2         34.1          29.3       1.2X
+cast interval wholestage off                        341            343           3         29.4          34.1       1.0X
+cast interval wholestage on                         279            282           1         35.8          27.9       1.2X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 datediff:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-datediff wholestage off                            1843           1862          28          5.4         184.3       1.0X
-datediff wholestage on                             1766           1780          16          5.7         176.6       1.0X
+datediff wholestage off                            1862           1865           4          5.4         186.2       1.0X
+datediff wholestage on                             1769           1783          15          5.7         176.9       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 months_between:                           Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-months_between wholestage off                      5856           5858           2          1.7         585.6       1.0X
-months_between wholestage on                       5799           5815          14          1.7         579.9       1.0X
+months_between wholestage off                      5594           5599           7          1.8         559.4       1.0X
+months_between wholestage on                       5498           5508          11          1.8         549.8       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 window:                                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-window wholestage off                              2017           2147         183          0.5        2017.4       1.0X
-window wholestage on                              47789          47910          91          0.0       47788.6       0.0X
+window wholestage off                              2044           2127         117          0.5        2044.3       1.0X
+window wholestage on                              48057          48109          54          0.0       48056.9       0.0X
 
 
 ================================================================================================
@@ -266,134 +266,134 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc YEAR:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc YEAR wholestage off                     2689           2689           1          3.7         268.9       1.0X
-date_trunc YEAR wholestage on                      2655           2670          17          3.8         265.5       1.0X
+date_trunc YEAR wholestage off                     2540           2542           3          3.9         254.0       1.0X
+date_trunc YEAR wholestage on                      2486           2507          29          4.0         248.6       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc YYYY:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc YYYY wholestage off                     2698           2700           3          3.7         269.8       1.0X
-date_trunc YYYY wholestage on                      2654           2660           6          3.8         265.4       1.0X
+date_trunc YYYY wholestage off                     2542           2543           3          3.9         254.2       1.0X
+date_trunc YYYY wholestage on                      2491           2498           9          4.0         249.1       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc YY:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc YY wholestage off                       2692           2697           7          3.7         269.2       1.0X
-date_trunc YY wholestage on                        2653           2662           7          3.8         265.3       1.0X
+date_trunc YY wholestage off                       2545           2569          35          3.9         254.5       1.0X
+date_trunc YY wholestage on                        2487           2493           4          4.0         248.7       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MON:                           Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MON wholestage off                      2752           2756           6          3.6         275.2       1.0X
-date_trunc MON wholestage on                       2666           2675          15          3.8         266.6       1.0X
+date_trunc MON wholestage off                      2590           2590           1          3.9         259.0       1.0X
+date_trunc MON wholestage on                       2506           2520          12          4.0         250.6       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MONTH:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MONTH wholestage off                    2743           2746           4          3.6         274.3       1.0X
-date_trunc MONTH wholestage on                     2667           2673           8          3.7         266.7       1.0X
+date_trunc MONTH wholestage off                    2595           2603          11          3.9         259.5       1.0X
+date_trunc MONTH wholestage on                     2505           2516          12          4.0         250.5       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MM:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MM wholestage off                       2741           2741           1          3.6         274.1       1.0X
-date_trunc MM wholestage on                        2670           2678           7          3.7         267.0       1.0X
+date_trunc MM wholestage off                       2605           2612          10          3.8         260.5       1.0X
+date_trunc MM wholestage on                        2501           2515          11          4.0         250.1       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc DAY:                           Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc DAY wholestage off                      2338           2342           6          4.3         233.8       1.0X
-date_trunc DAY wholestage on                       2269           2277           7          4.4         226.9       1.0X
+date_trunc DAY wholestage off                      2225           2229           5          4.5         222.5       1.0X
+date_trunc DAY wholestage on                       2184           2196           9          4.6         218.4       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc DD:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc DD wholestage off                       2324           2325           1          4.3         232.4       1.0X
-date_trunc DD wholestage on                        2270           2273           2          4.4         227.0       1.0X
+date_trunc DD wholestage off                       2232           2236           6          4.5         223.2       1.0X
+date_trunc DD wholestage on                        2183           2190           6          4.6         218.3       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc HOUR:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc HOUR wholestage off                     2325           2326           1          4.3         232.5       1.0X
-date_trunc HOUR wholestage on                      2284           2295           8          4.4         228.4       1.0X
+date_trunc HOUR wholestage off                     2194           2199           7          4.6         219.4       1.0X
+date_trunc HOUR wholestage on                      2160           2166           5          4.6         216.0       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MINUTE:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MINUTE wholestage off                    407            408           0         24.5          40.7       1.0X
-date_trunc MINUTE wholestage on                     382            386           3         26.1          38.2       1.1X
+date_trunc MINUTE wholestage off                    390            396           9         25.7          39.0       1.0X
+date_trunc MINUTE wholestage on                     331            337           7         30.2          33.1       1.2X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc SECOND:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc SECOND wholestage off                    404            404           1         24.8          40.4       1.0X
-date_trunc SECOND wholestage on                     386            390           4         25.9          38.6       1.0X
+date_trunc SECOND wholestage off                    375            381           8         26.7          37.5       1.0X
+date_trunc SECOND wholestage on                     332            346          14         30.1          33.2       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc WEEK:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc WEEK wholestage off                     2693           2694           2          3.7         269.3       1.0X
-date_trunc WEEK wholestage on                      2619           2629          10          3.8         261.9       1.0X
+date_trunc WEEK wholestage off                     2439           2443           6          4.1         243.9       1.0X
+date_trunc WEEK wholestage on                      2390           2409          32          4.2         239.0       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc QUARTER:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc QUARTER wholestage off                  3454           3466          17          2.9         345.4       1.0X
-date_trunc QUARTER wholestage on                   3384           3404          24          3.0         338.4       1.0X
+date_trunc QUARTER wholestage off                  3290           3292           4          3.0         329.0       1.0X
+date_trunc QUARTER wholestage on                   3214           3218           3          3.1         321.4       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc year:                               Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc year wholestage off                           339            340           1         29.5          33.9       1.0X
-trunc year wholestage on                            337            347           9         29.7          33.7       1.0X
+trunc year wholestage off                           308            310           3         32.5          30.8       1.0X
+trunc year wholestage on                            289            293           6         34.7          28.9       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc yyyy:                               Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc yyyy wholestage off                           347            348           2         28.8          34.7       1.0X
-trunc yyyy wholestage on                            334            335           2         29.9          33.4       1.0X
+trunc yyyy wholestage off                           309            311           3         32.4          30.9       1.0X
+trunc yyyy wholestage on                            289            294           7         34.6          28.9       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc yy:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc yy wholestage off                             339            346          11         29.5          33.9       1.0X
-trunc yy wholestage on                              333            338           5         30.0          33.3       1.0X
+trunc yy wholestage off                             311            311           0         32.2          31.1       1.0X
+trunc yy wholestage on                              288            294           7         34.7          28.8       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc mon:                                Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc mon wholestage off                            339            347          11         29.5          33.9       1.0X
-trunc mon wholestage on                             331            336           4         30.2          33.1       1.0X
+trunc mon wholestage off                            313            313           0         32.0          31.3       1.0X
+trunc mon wholestage on                             287            290           2         34.8          28.7       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc month:                              Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc month wholestage off                          341            344           3         29.3          34.1       1.0X
-trunc month wholestage on                           332            338           9         30.1          33.2       1.0X
+trunc month wholestage off                          310            310           0         32.3          31.0       1.0X
+trunc month wholestage on                           287            290           2         34.8          28.7       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc mm:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc mm wholestage off                             337            338           1         29.6          33.7       1.0X
-trunc mm wholestage on                              332            336           5         30.1          33.2       1.0X
+trunc mm wholestage off                             311            312           1         32.1          31.1       1.0X
+trunc mm wholestage on                              287            296           9         34.8          28.7       1.1X
 
 
 ================================================================================================
@@ -404,36 +404,36 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to timestamp str:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to timestamp str wholestage off                     184            187           4          5.4         183.9       1.0X
-to timestamp str wholestage on                      159            162           2          6.3         159.4       1.2X
+to timestamp str wholestage off                     169            170           1          5.9         168.9       1.0X
+to timestamp str wholestage on                      161            168          11          6.2         161.0       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_timestamp:                             Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_timestamp wholestage off                        1683           1689           8          0.6        1683.3       1.0X
-to_timestamp wholestage on                         1722           1725           4          0.6        1721.6       1.0X
+to_timestamp wholestage off                        1360           1361           1          0.7        1359.6       1.0X
+to_timestamp wholestage on                         1362           1366           6          0.7        1362.0       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_unix_timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_unix_timestamp wholestage off                   1733           1736           4          0.6        1733.1       1.0X
-to_unix_timestamp wholestage on                    1687           1690           4          0.6        1686.6       1.0X
+to_unix_timestamp wholestage off                   1343           1346           4          0.7        1342.6       1.0X
+to_unix_timestamp wholestage on                    1356           1359           2          0.7        1356.2       1.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to date str:                              Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to date str wholestage off                          218            220           4          4.6         217.6       1.0X
-to date str wholestage on                           213            215           2          4.7         212.6       1.0X
+to date str wholestage off                          227            230           4          4.4         227.0       1.0X
+to date str wholestage on                           299            302           3          3.3         299.0       0.8X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_date:                                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_date wholestage off                             3697           3699           2          0.3        3697.2       1.0X
-to_date wholestage on                              3603           3624          15          0.3        3602.7       1.0X
+to_date wholestage off                             3413           3440          38          0.3        3413.0       1.0X
+to_date wholestage on                              3392           3402          12          0.3        3392.3       1.0X
 
 
 ================================================================================================
@@ -444,14 +444,14 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 To/from Java's date-time:                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-From java.sql.Date                                  432            436           7         11.6          86.4       1.0X
-From java.time.LocalDate                            343            347           6         14.6          68.6       1.3X
-Collect java.sql.Date                              1888           2453         971          2.6         377.6       0.2X
-Collect java.time.LocalDate                        1779           1820          42          2.8         355.7       0.2X
-From java.sql.Timestamp                             375            384           9         13.3          75.0       1.2X
-From java.time.Instant                              317            326           8         15.8          63.5       1.4X
-Collect longs                                      1338           1428         115          3.7         267.6       0.3X
-Collect java.sql.Timestamp                         1716           2014         281          2.9         343.1       0.3X
-Collect java.time.Instant                          1832           1970         122          2.7         366.5       0.2X
+From java.sql.Date                                  410            415           7         12.2          82.0       1.0X
+From java.time.LocalDate                            332            333           1         15.1          66.4       1.2X
+Collect java.sql.Date                              1891           2542         829          2.6         378.1       0.2X
+Collect java.time.LocalDate                        1630           2138         441          3.1         326.0       0.3X
+From java.sql.Timestamp                             254            259           6         19.7          50.9       1.6X
+From java.time.Instant                              302            306           4         16.6          60.3       1.4X
+Collect longs                                      1134           1265         117          4.4         226.8       0.4X
+Collect java.sql.Timestamp                         1441           1458          16          3.5         288.1       0.3X
+Collect java.time.Instant                          1680           1928         253          3.0         336.0       0.2X
 
 
diff --git a/sql/core/benchmarks/DateTimeBenchmark-results.txt b/sql/core/benchmarks/DateTimeBenchmark-results.txt
index 3ef2f92..7586295 100644
--- a/sql/core/benchmarks/DateTimeBenchmark-results.txt
+++ b/sql/core/benchmarks/DateTimeBenchmark-results.txt
@@ -6,18 +6,18 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 datetime +/- interval:                    Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date + interval(m)                                 1613           1622          13          6.2         161.3       1.0X
-date + interval(m, d)                              1729           1752          32          5.8         172.9       0.9X
-date + interval(m, d, ms)                          6421           6424           5          1.6         642.1       0.3X
-date - interval(m)                                 1441           1443           2          6.9         144.1       1.1X
-date - interval(m, d)                              1687           1689           2          5.9         168.7       1.0X
-date - interval(m, d, ms)                          6617           6625          11          1.5         661.7       0.2X
-timestamp + interval(m)                            2713           2733          28          3.7         271.3       0.6X
-timestamp + interval(m, d)                         3027           3032           8          3.3         302.7       0.5X
-timestamp + interval(m, d, ms)                     3501           3509          12          2.9         350.1       0.5X
-timestamp - interval(m)                            2892           2895           4          3.5         289.2       0.6X
-timestamp - interval(m, d)                         3190           3196           9          3.1         319.0       0.5X
-timestamp - interval(m, d, ms)                     3497           3500           5          2.9         349.7       0.5X
+date + interval(m)                                 1638           1701          89          6.1         163.8       1.0X
+date + interval(m, d)                              1785           1790           7          5.6         178.5       0.9X
+date + interval(m, d, ms)                          6229           6270          58          1.6         622.9       0.3X
+date - interval(m)                                 1500           1503           4          6.7         150.0       1.1X
+date - interval(m, d)                              1764           1766           3          5.7         176.4       0.9X
+date - interval(m, d, ms)                          6428           6446          25          1.6         642.8       0.3X
+timestamp + interval(m)                            2719           2722           4          3.7         271.9       0.6X
+timestamp + interval(m, d)                         3011           3021          14          3.3         301.1       0.5X
+timestamp + interval(m, d, ms)                     3405           3412           9          2.9         340.5       0.5X
+timestamp - interval(m)                            2759           2764           7          3.6         275.9       0.6X
+timestamp - interval(m, d)                         3094           3112          25          3.2         309.4       0.5X
+timestamp - interval(m, d, ms)                     3388           3392           5          3.0         338.8       0.5X
 
 
 ================================================================================================
@@ -28,92 +28,92 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 cast to timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-cast to timestamp wholestage off                    321            323           2         31.1          32.1       1.0X
-cast to timestamp wholestage on                     294            306          10         34.0          29.4       1.1X
+cast to timestamp wholestage off                    319            323           6         31.4          31.9       1.0X
+cast to timestamp wholestage on                     304            311           8         32.9          30.4       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 year of timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-year of timestamp wholestage off                   1235           1242           9          8.1         123.5       1.0X
-year of timestamp wholestage on                    1208           1216           8          8.3         120.8       1.0X
+year of timestamp wholestage off                   1234           1239           6          8.1         123.4       1.0X
+year of timestamp wholestage on                    1229           1244          22          8.1         122.9       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 quarter of timestamp:                     Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-quarter of timestamp wholestage off                1415           1424          12          7.1         141.5       1.0X
-quarter of timestamp wholestage on                 1338           1341           4          7.5         133.8       1.1X
+quarter of timestamp wholestage off                1440           1445           7          6.9         144.0       1.0X
+quarter of timestamp wholestage on                 1358           1361           3          7.4         135.8       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 month of timestamp:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-month of timestamp wholestage off                  1224           1225           1          8.2         122.4       1.0X
-month of timestamp wholestage on                   1193           1202           8          8.4         119.3       1.0X
+month of timestamp wholestage off                  1239           1240           1          8.1         123.9       1.0X
+month of timestamp wholestage on                   1221           1239          26          8.2         122.1       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 weekofyear of timestamp:                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-weekofyear of timestamp wholestage off             1864           1866           3          5.4         186.4       1.0X
-weekofyear of timestamp wholestage on              1827           1840           7          5.5         182.7       1.0X
+weekofyear of timestamp wholestage off             1926           1934          11          5.2         192.6       1.0X
+weekofyear of timestamp wholestage on              1901           1911          10          5.3         190.1       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 day of timestamp:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-day of timestamp wholestage off                    1209           1211           2          8.3         120.9       1.0X
-day of timestamp wholestage on                     1191           1194           6          8.4         119.1       1.0X
+day of timestamp wholestage off                    1225           1229           6          8.2         122.5       1.0X
+day of timestamp wholestage on                     1217           1225           7          8.2         121.7       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 dayofyear of timestamp:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-dayofyear of timestamp wholestage off              1270           1271           2          7.9         127.0       1.0X
-dayofyear of timestamp wholestage on               1241           1250          12          8.1         124.1       1.0X
+dayofyear of timestamp wholestage off              1290           1295           7          7.8         129.0       1.0X
+dayofyear of timestamp wholestage on               1262           1270           7          7.9         126.2       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 dayofmonth of timestamp:                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-dayofmonth of timestamp wholestage off             1236           1250          20          8.1         123.6       1.0X
-dayofmonth of timestamp wholestage on              1193           1195           3          8.4         119.3       1.0X
+dayofmonth of timestamp wholestage off             1239           1239           1          8.1         123.9       1.0X
+dayofmonth of timestamp wholestage on              1215           1222           8          8.2         121.5       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 dayofweek of timestamp:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-dayofweek of timestamp wholestage off              1402           1405           4          7.1         140.2       1.0X
-dayofweek of timestamp wholestage on               1352           1359           7          7.4         135.2       1.0X
+dayofweek of timestamp wholestage off              1421           1422           2          7.0         142.1       1.0X
+dayofweek of timestamp wholestage on               1379           1388           8          7.3         137.9       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 weekday of timestamp:                     Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-weekday of timestamp wholestage off                1346           1347           2          7.4         134.6       1.0X
-weekday of timestamp wholestage on                 1294           1299           7          7.7         129.4       1.0X
+weekday of timestamp wholestage off                1349           1351           2          7.4         134.9       1.0X
+weekday of timestamp wholestage on                 1320           1327           8          7.6         132.0       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 hour of timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-hour of timestamp wholestage off                   1000           1008          11         10.0         100.0       1.0X
-hour of timestamp wholestage on                     936            941           6         10.7          93.6       1.1X
+hour of timestamp wholestage off                   1024           1024           0          9.8         102.4       1.0X
+hour of timestamp wholestage on                     921            929          11         10.9          92.1       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 minute of timestamp:                      Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-minute of timestamp wholestage off                  969            976          10         10.3          96.9       1.0X
-minute of timestamp wholestage on                   933            936           4         10.7          93.3       1.0X
+minute of timestamp wholestage off                  977            982           6         10.2          97.7       1.0X
+minute of timestamp wholestage on                   927            929           2         10.8          92.7       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 second of timestamp:                      Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-second of timestamp wholestage off                 1002           1005           3         10.0         100.2       1.0X
-second of timestamp wholestage on                   935            938           2         10.7          93.5       1.1X
+second of timestamp wholestage off                  987            989           3         10.1          98.7       1.0X
+second of timestamp wholestage on                   923            926           5         10.8          92.3       1.1X
 
 
 ================================================================================================
@@ -124,15 +124,15 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 current_date:                             Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-current_date wholestage off                         308            316          11         32.5          30.8       1.0X
-current_date wholestage on                          265            275          12         37.8          26.5       1.2X
+current_date wholestage off                         303            311          12         33.0          30.3       1.0X
+current_date wholestage on                          266            271           5         37.5          26.6       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 current_timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-current_timestamp wholestage off                    307            312           7         32.6          30.7       1.0X
-current_timestamp wholestage on                     263            268           5         38.1          26.3       1.2X
+current_timestamp wholestage off                    297            297           1         33.7          29.7       1.0X
+current_timestamp wholestage on                     264            272           7         37.8          26.4       1.1X
 
 
 ================================================================================================
@@ -143,43 +143,43 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 cast to date:                             Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-cast to date wholestage off                        1061           1065           5          9.4         106.1       1.0X
-cast to date wholestage on                          985            991          11         10.2          98.5       1.1X
+cast to date wholestage off                        1062           1063           2          9.4         106.2       1.0X
+cast to date wholestage on                         1007           1021          20          9.9         100.7       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 last_day:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-last_day wholestage off                            1261           1262           1          7.9         126.1       1.0X
-last_day wholestage on                             1223           1235          12          8.2         122.3       1.0X
+last_day wholestage off                            1262           1265           5          7.9         126.2       1.0X
+last_day wholestage on                             1244           1256          14          8.0         124.4       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 next_day:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-next_day wholestage off                            1114           1119           7          9.0         111.4       1.0X
-next_day wholestage on                             1034           1038           3          9.7         103.4       1.1X
+next_day wholestage off                            1119           1121           2          8.9         111.9       1.0X
+next_day wholestage on                             1057           1063           6          9.5         105.7       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_add:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_add wholestage off                            1059           1076          25          9.4         105.9       1.0X
-date_add wholestage on                             1012           1021           9          9.9         101.2       1.0X
+date_add wholestage off                            1054           1059           7          9.5         105.4       1.0X
+date_add wholestage on                             1037           1069          52          9.6         103.7       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_sub:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_sub wholestage off                            1046           1046           0          9.6         104.6       1.0X
-date_sub wholestage on                             1019           1023           3          9.8         101.9       1.0X
+date_sub wholestage off                            1054           1056           4          9.5         105.4       1.0X
+date_sub wholestage on                             1036           1040           4          9.7         103.6       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 add_months:                               Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-add_months wholestage off                          1392           1393           1          7.2         139.2       1.0X
-add_months wholestage on                           1335           1346          14          7.5         133.5       1.0X
+add_months wholestage off                          1408           1421          19          7.1         140.8       1.0X
+add_months wholestage on                           1434           1440           7          7.0         143.4       1.0X
 
 
 ================================================================================================
@@ -190,8 +190,8 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 format date:                              Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-format date wholestage off                         5959           5994          50          1.7         595.9       1.0X
-format date wholestage on                          5991           6008          28          1.7         599.1       1.0X
+format date wholestage off                         5937           6169         328          1.7         593.7       1.0X
+format date wholestage on                          5836           5878          74          1.7         583.6       1.0X
 
 
 ================================================================================================
@@ -202,8 +202,8 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 from_unixtime:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-from_unixtime wholestage off                       8851           8872          29          1.1         885.1       1.0X
-from_unixtime wholestage on                        8855           8872          10          1.1         885.5       1.0X
+from_unixtime wholestage off                       8904           8914          14          1.1         890.4       1.0X
+from_unixtime wholestage on                        8918           8936          13          1.1         891.8       1.0X
 
 
 ================================================================================================
@@ -214,15 +214,15 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 from_utc_timestamp:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-from_utc_timestamp wholestage off                  1105           1107           2          9.0         110.5       1.0X
-from_utc_timestamp wholestage on                   1072           1084          11          9.3         107.2       1.0X
+from_utc_timestamp wholestage off                  1110           1112           3          9.0         111.0       1.0X
+from_utc_timestamp wholestage on                   1115           1119           3          9.0         111.5       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_utc_timestamp:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_utc_timestamp wholestage off                    1531           1534           3          6.5         153.1       1.0X
-to_utc_timestamp wholestage on                     1451           1463          14          6.9         145.1       1.1X
+to_utc_timestamp wholestage off                    1524           1525           1          6.6         152.4       1.0X
+to_utc_timestamp wholestage on                     1450           1458          14          6.9         145.0       1.1X
 
 
 ================================================================================================
@@ -233,29 +233,29 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 cast interval:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-cast interval wholestage off                        360            366           8         27.8          36.0       1.0X
-cast interval wholestage on                         286            292           7         35.0          28.6       1.3X
+cast interval wholestage off                        341            342           1         29.3          34.1       1.0X
+cast interval wholestage on                         285            294           7         35.1          28.5       1.2X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 datediff:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-datediff wholestage off                            1809           1814           8          5.5         180.9       1.0X
-datediff wholestage on                             1742           1751           8          5.7         174.2       1.0X
+datediff wholestage off                            1874           1881          10          5.3         187.4       1.0X
+datediff wholestage on                             1785           1791           3          5.6         178.5       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 months_between:                           Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-months_between wholestage off                      5007           5007           1          2.0         500.7       1.0X
-months_between wholestage on                       4957           4980          35          2.0         495.7       1.0X
+months_between wholestage off                      5038           5042           5          2.0         503.8       1.0X
+months_between wholestage on                       4979           4987           8          2.0         497.9       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 window:                                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-window wholestage off                              1945           2027         116          0.5        1945.3       1.0X
-window wholestage on                              45637          45648           8          0.0       45637.2       0.0X
+window wholestage off                              1716           1841         177          0.6        1716.2       1.0X
+window wholestage on                              46024          46063          27          0.0       46024.1       0.0X
 
 
 ================================================================================================
@@ -266,134 +266,134 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc YEAR:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc YEAR wholestage off                     2463           2465           2          4.1         246.3       1.0X
-date_trunc YEAR wholestage on                      2406           2409           3          4.2         240.6       1.0X
+date_trunc YEAR wholestage off                     2428           2429           2          4.1         242.8       1.0X
+date_trunc YEAR wholestage on                      2451           2469          12          4.1         245.1       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc YYYY:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc YYYY wholestage off                     2462           2463           1          4.1         246.2       1.0X
-date_trunc YYYY wholestage on                      2407           2411           6          4.2         240.7       1.0X
+date_trunc YYYY wholestage off                     2423           2426           3          4.1         242.3       1.0X
+date_trunc YYYY wholestage on                      2454           2462           8          4.1         245.4       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc YY:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc YY wholestage off                       2462           2466           6          4.1         246.2       1.0X
-date_trunc YY wholestage on                        2401           2406           4          4.2         240.1       1.0X
+date_trunc YY wholestage off                       2421           2441          28          4.1         242.1       1.0X
+date_trunc YY wholestage on                        2453           2461           9          4.1         245.3       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MON:                           Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MON wholestage off                      2437           2437           0          4.1         243.7       1.0X
-date_trunc MON wholestage on                       2416           2421           6          4.1         241.6       1.0X
+date_trunc MON wholestage off                      2425           2427           3          4.1         242.5       1.0X
+date_trunc MON wholestage on                       2431           2438           9          4.1         243.1       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MONTH:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MONTH wholestage off                    2430           2437           9          4.1         243.0       1.0X
-date_trunc MONTH wholestage on                     2417           2423           5          4.1         241.7       1.0X
+date_trunc MONTH wholestage off                    2427           2433           8          4.1         242.7       1.0X
+date_trunc MONTH wholestage on                     2429           2435           4          4.1         242.9       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MM:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MM wholestage off                       2429           2431           3          4.1         242.9       1.0X
-date_trunc MM wholestage on                        2417           2421           4          4.1         241.7       1.0X
+date_trunc MM wholestage off                       2425           2431           9          4.1         242.5       1.0X
+date_trunc MM wholestage on                        2430           2435           4          4.1         243.0       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc DAY:                           Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc DAY wholestage off                      2074           2075           2          4.8         207.4       1.0X
-date_trunc DAY wholestage on                       2001           2010          16          5.0         200.1       1.0X
+date_trunc DAY wholestage off                      2117           2119           4          4.7         211.7       1.0X
+date_trunc DAY wholestage on                       2036           2118         174          4.9         203.6       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc DD:                            Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc DD wholestage off                       2067           2067           0          4.8         206.7       1.0X
-date_trunc DD wholestage on                        2000           2003           3          5.0         200.0       1.0X
+date_trunc DD wholestage off                       2116           2119           5          4.7         211.6       1.0X
+date_trunc DD wholestage on                        2035           2043          10          4.9         203.5       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc HOUR:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc HOUR wholestage off                     2074           2084          14          4.8         207.4       1.0X
-date_trunc HOUR wholestage on                      2057           2067          10          4.9         205.7       1.0X
+date_trunc HOUR wholestage off                     2013           2014           2          5.0         201.3       1.0X
+date_trunc HOUR wholestage on                      2077           2088          13          4.8         207.7       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc MINUTE:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc MINUTE wholestage off                    362            364           3         27.6          36.2       1.0X
-date_trunc MINUTE wholestage on                     319            333          14         31.3          31.9       1.1X
+date_trunc MINUTE wholestage off                    363            368           8         27.6          36.3       1.0X
+date_trunc MINUTE wholestage on                     321            326           7         31.2          32.1       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc SECOND:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc SECOND wholestage off                    361            366           7         27.7          36.1       1.0X
-date_trunc SECOND wholestage on                     324            341          23         30.9          32.4       1.1X
+date_trunc SECOND wholestage off                    365            366           0         27.4          36.5       1.0X
+date_trunc SECOND wholestage on                     319            332          16         31.4          31.9       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc WEEK:                          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc WEEK wholestage off                     2385           2393          11          4.2         238.5       1.0X
-date_trunc WEEK wholestage on                      2313           2322           6          4.3         231.3       1.0X
+date_trunc WEEK wholestage off                     2371           2376           7          4.2         237.1       1.0X
+date_trunc WEEK wholestage on                      2314           2322           8          4.3         231.4       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 date_trunc QUARTER:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-date_trunc QUARTER wholestage off                  3278           3280           2          3.1         327.8       1.0X
-date_trunc QUARTER wholestage on                   3228           3234           8          3.1         322.8       1.0X
+date_trunc QUARTER wholestage off                  3334           3335           1          3.0         333.4       1.0X
+date_trunc QUARTER wholestage on                   3286           3291           7          3.0         328.6       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc year:                               Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc year wholestage off                           328            331           4         30.5          32.8       1.0X
-trunc year wholestage on                            286            295           9         35.0          28.6       1.1X
+trunc year wholestage off                           303            304           2         33.0          30.3       1.0X
+trunc year wholestage on                            283            291           5         35.3          28.3       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc yyyy:                               Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc yyyy wholestage off                           317            319           3         31.5          31.7       1.0X
-trunc yyyy wholestage on                            283            287           6         35.3          28.3       1.1X
+trunc yyyy wholestage off                           324            330           8         30.9          32.4       1.0X
+trunc yyyy wholestage on                            283            291           9         35.3          28.3       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc yy:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc yy wholestage off                             321            321           0         31.1          32.1       1.0X
-trunc yy wholestage on                              284            293          11         35.2          28.4       1.1X
+trunc yy wholestage off                             304            305           3         32.9          30.4       1.0X
+trunc yy wholestage on                              283            302          28         35.3          28.3       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc mon:                                Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc mon wholestage off                            318            319           1         31.4          31.8       1.0X
-trunc mon wholestage on                             283            287           4         35.4          28.3       1.1X
+trunc mon wholestage off                            315            319           6         31.7          31.5       1.0X
+trunc mon wholestage on                             284            287           5         35.3          28.4       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc month:                              Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc month wholestage off                          319            321           3         31.3          31.9       1.0X
-trunc month wholestage on                           286            293           7         35.0          28.6       1.1X
+trunc month wholestage off                          305            314          13         32.8          30.5       1.0X
+trunc month wholestage on                           283            292          14         35.3          28.3       1.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 trunc mm:                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-trunc mm wholestage off                             317            319           2         31.5          31.7       1.0X
-trunc mm wholestage on                              282            285           3         35.4          28.2       1.1X
+trunc mm wholestage off                             301            301           0         33.2          30.1       1.0X
+trunc mm wholestage on                              285            290           7         35.1          28.5       1.1X
 
 
 ================================================================================================
@@ -404,36 +404,36 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to timestamp str:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to timestamp str wholestage off                     219            220           0          4.6         219.4       1.0X
-to timestamp str wholestage on                      214            218           6          4.7         214.1       1.0X
+to timestamp str wholestage off                     218            220           3          4.6         218.4       1.0X
+to timestamp str wholestage on                      213            216           6          4.7         212.5       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_timestamp:                             Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_timestamp wholestage off                        1912           1913           2          0.5        1912.0       1.0X
-to_timestamp wholestage on                         1671           1675           7          0.6        1670.8       1.1X
+to_timestamp wholestage off                        1838           1842           5          0.5        1838.1       1.0X
+to_timestamp wholestage on                         1952           1971          11          0.5        1952.2       0.9X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_unix_timestamp:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_unix_timestamp wholestage off                   1761           1763           3          0.6        1761.1       1.0X
-to_unix_timestamp wholestage on                    1695           1697           2          0.6        1695.4       1.0X
+to_unix_timestamp wholestage off                   1987           1988           1          0.5        1986.9       1.0X
+to_unix_timestamp wholestage on                    1944           1948           3          0.5        1944.2       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to date str:                              Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to date str wholestage off                          267            272           7          3.7         266.9       1.0X
-to date str wholestage on                           266            267           2          3.8         265.8       1.0X
+to date str wholestage off                          263            264           0          3.8         263.5       1.0X
+to date str wholestage on                           263            265           2          3.8         262.6       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 to_date:                                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-to_date wholestage off                             3705           3743          55          0.3        3704.6       1.0X
-to_date wholestage on                              3736           3746          11          0.3        3736.4       1.0X
+to_date wholestage off                             3560           3567          11          0.3        3559.7       1.0X
+to_date wholestage on                              3525           3534          10          0.3        3524.8       1.0X
 
 
 ================================================================================================
@@ -444,14 +444,14 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 To/from Java's date-time:                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-From java.sql.Date                                  400            406           6         12.5          80.1       1.0X
-From java.time.LocalDate                            343            349           7         14.6          68.6       1.2X
-Collect java.sql.Date                              1904           2739        1170          2.6         380.9       0.2X
-Collect java.time.LocalDate                        1477           1495          19          3.4         295.3       0.3X
-From java.sql.Timestamp                             376            388          10         13.3          75.2       1.1X
-From java.time.Instant                              237            239           3         21.1          47.4       1.7X
-Collect longs                                      1258           1356         111          4.0         251.7       0.3X
-Collect java.sql.Timestamp                         1878           1937          64          2.7         375.6       0.2X
-Collect java.time.Instant                          1667           1904         238          3.0         333.4       0.2X
+From java.sql.Date                                  405            416          16         12.3          81.0       1.0X
+From java.time.LocalDate                            344            352          14         14.5          68.8       1.2X
+Collect java.sql.Date                              1622           2553        1372          3.1         324.4       0.2X
+Collect java.time.LocalDate                        1464           1482          20          3.4         292.8       0.3X
+From java.sql.Timestamp                             248            258          15         20.2          49.6       1.6X
+From java.time.Instant                              237            243           7         21.1          47.4       1.7X
+Collect longs                                      1252           1341         109          4.0         250.5       0.3X
+Collect java.sql.Timestamp                         1515           1516           2          3.3         302.9       0.3X
+Collect java.time.Instant                          1379           1490          96          3.6         275.8       0.3X
 
 
diff --git a/sql/core/benchmarks/DateTimeRebaseBenchmark-jdk11-results.txt b/sql/core/benchmarks/DateTimeRebaseBenchmark-jdk11-results.txt
index 8c07bdb..5d107c1 100644
--- a/sql/core/benchmarks/DateTimeRebaseBenchmark-jdk11-results.txt
+++ b/sql/core/benchmarks/DateTimeRebaseBenchmark-jdk11-results.txt
@@ -6,97 +6,97 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save DATE to parquet:                     Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, noop                                  19806          19806           0          5.0         198.1       1.0X
-before 1582, noop                                 10689          10689           0          9.4         106.9       1.9X
-after 1582, rebase off                            31053          31053           0          3.2         310.5       0.6X
-after 1582, rebase on                             32316          32316           0          3.1         323.2       0.6X
-before 1582, rebase off                           21765          21765           0          4.6         217.6       0.9X
-before 1582, rebase on                            23011          23011           0          4.3         230.1       0.9X
+after 1582, noop                                  20802          20802           0          4.8         208.0       1.0X
+before 1582, noop                                 10728          10728           0          9.3         107.3       1.9X
+after 1582, rebase off                            32924          32924           0          3.0         329.2       0.6X
+after 1582, rebase on                             32627          32627           0          3.1         326.3       0.6X
+before 1582, rebase off                           21576          21576           0          4.6         215.8       1.0X
+before 1582, rebase on                            23115          23115           0          4.3         231.2       0.9X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load DATE from parquet:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, vec off, rebase off                   12834          12921         140          7.8         128.3       1.0X
-after 1582, vec off, rebase on                    13031          13071          38          7.7         130.3       1.0X
-after 1582, vec on, rebase off                     3642           3679          60         27.5          36.4       3.5X
-after 1582, vec on, rebase on                      3747           3789          49         26.7          37.5       3.4X
-before 1582, vec off, rebase off                  13009          13061          72          7.7         130.1       1.0X
-before 1582, vec off, rebase on                   13928          13945          16          7.2         139.3       0.9X
-before 1582, vec on, rebase off                    3656           3665          13         27.4          36.6       3.5X
-before 1582, vec on, rebase on                     4361           4392          48         22.9          43.6       2.9X
+after 1582, vec off, rebase off                   12880          12984         178          7.8         128.8       1.0X
+after 1582, vec off, rebase on                    13118          13255         174          7.6         131.2       1.0X
+after 1582, vec on, rebase off                     3645           3698          76         27.4          36.4       3.5X
+after 1582, vec on, rebase on                      3709           3727          15         27.0          37.1       3.5X
+before 1582, vec off, rebase off                  13014          13051          36          7.7         130.1       1.0X
+before 1582, vec off, rebase on                   14195          14242          48          7.0         142.0       0.9X
+before 1582, vec on, rebase off                    3680           3773          92         27.2          36.8       3.5X
+before 1582, vec on, rebase on                     4310           4381          87         23.2          43.1       3.0X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP_INT96 to parquet:          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2986           2986           0         33.5          29.9       1.0X
+after 1900, noop                                   3026           3026           0         33.1          30.3       1.0X
 before 1900, noop                                  2995           2995           0         33.4          30.0       1.0X
-after 1900, rebase off                            31493          31493           0          3.2         314.9       0.1X
-after 1900, rebase on                             31052          31052           0          3.2         310.5       0.1X
-before 1900, rebase off                           32102          32102           0          3.1         321.0       0.1X
-before 1900, rebase on                            32094          32094           0          3.1         320.9       0.1X
+after 1900, rebase off                            24294          24294           0          4.1         242.9       0.1X
+after 1900, rebase on                             24480          24480           0          4.1         244.8       0.1X
+before 1900, rebase off                           31120          31120           0          3.2         311.2       0.1X
+before 1900, rebase on                            31201          31201           0          3.2         312.0       0.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP_INT96 from parquet:        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off, rebase off                   20404          20422          29          4.9         204.0       1.0X
-after 1900, vec off, rebase on                    20198          20325         116          5.0         202.0       1.0X
-after 1900, vec on, rebase off                    12022          12051          39          8.3         120.2       1.7X
-after 1900, vec on, rebase on                     12019          12042          40          8.3         120.2       1.7X
-before 1900, vec off, rebase off                  21220          21263          38          4.7         212.2       1.0X
-before 1900, vec off, rebase on                   21172          21236          91          4.7         211.7       1.0X
-before 1900, vec on, rebase off                   12743          12792          46          7.8         127.4       1.6X
-before 1900, vec on, rebase on                    12665          12761          83          7.9         126.6       1.6X
+after 1900, vec off, rebase off                   18283          18309          39          5.5         182.8       1.0X
+after 1900, vec off, rebase on                    18235          18269          53          5.5         182.4       1.0X
+after 1900, vec on, rebase off                     9563           9589          27         10.5          95.6       1.9X
+after 1900, vec on, rebase on                      9463           9554          81         10.6          94.6       1.9X
+before 1900, vec off, rebase off                  21377          21469         118          4.7         213.8       0.9X
+before 1900, vec off, rebase on                   21265          21422         156          4.7         212.7       0.9X
+before 1900, vec on, rebase off                   12481          12524          46          8.0         124.8       1.5X
+before 1900, vec on, rebase on                    12360          12482         105          8.1         123.6       1.5X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP_MICROS to parquet:         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   3047           3047           0         32.8          30.5       1.0X
-before 1900, noop                                  2973           2973           0         33.6          29.7       1.0X
-after 1900, rebase off                            16269          16269           0          6.1         162.7       0.2X
-after 1900, rebase on                             18375          18375           0          5.4         183.7       0.2X
-before 1900, rebase off                           16875          16875           0          5.9         168.7       0.2X
-before 1900, rebase on                            19574          19574           0          5.1         195.7       0.2X
+after 1900, noop                                   2984           2984           0         33.5          29.8       1.0X
+before 1900, noop                                  3003           3003           0         33.3          30.0       1.0X
+after 1900, rebase off                            15814          15814           0          6.3         158.1       0.2X
+after 1900, rebase on                             16250          16250           0          6.2         162.5       0.2X
+before 1900, rebase off                           16026          16026           0          6.2         160.3       0.2X
+before 1900, rebase on                            19735          19735           0          5.1         197.3       0.2X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP_MICROS from parquet:       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off, rebase off                   15571          15671          95          6.4         155.7       1.0X
-after 1900, vec off, rebase on                    18076          18139          92          5.5         180.8       0.9X
-after 1900, vec on, rebase off                     4853           4888          38         20.6          48.5       3.2X
-after 1900, vec on, rebase on                      4924           4977          45         20.3          49.2       3.2X
-before 1900, vec off, rebase off                  15446          15485          34          6.5         154.5       1.0X
-before 1900, vec off, rebase on                   18743          18871         192          5.3         187.4       0.8X
-before 1900, vec on, rebase off                    4931           4944          20         20.3          49.3       3.2X
-before 1900, vec on, rebase on                     8217           8238          19         12.2          82.2       1.9X
+after 1900, vec off, rebase off                   15292          15351          57          6.5         152.9       1.0X
+after 1900, vec off, rebase on                    15753          15886         173          6.3         157.5       1.0X
+after 1900, vec on, rebase off                     4879           4923          52         20.5          48.8       3.1X
+after 1900, vec on, rebase on                      5018           5038          18         19.9          50.2       3.0X
+before 1900, vec off, rebase off                  15257          15311          53          6.6         152.6       1.0X
+before 1900, vec off, rebase on                   18459          18537          90          5.4         184.6       0.8X
+before 1900, vec on, rebase off                    4929           4946          15         20.3          49.3       3.1X
+before 1900, vec on, rebase on                     8254           8339          93         12.1          82.5       1.9X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP_MILLIS to parquet:         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2977           2977           0         33.6          29.8       1.0X
-before 1900, noop                                  2981           2981           0         33.5          29.8       1.0X
-after 1900, rebase off                            15336          15336           0          6.5         153.4       0.2X
-after 1900, rebase on                             17932          17932           0          5.6         179.3       0.2X
-before 1900, rebase off                           15507          15507           0          6.4         155.1       0.2X
-before 1900, rebase on                            19280          19280           0          5.2         192.8       0.2X
+after 1900, noop                                   2987           2987           0         33.5          29.9       1.0X
+before 1900, noop                                  3002           3002           0         33.3          30.0       1.0X
+after 1900, rebase off                            15215          15215           0          6.6         152.1       0.2X
+after 1900, rebase on                             15577          15577           0          6.4         155.8       0.2X
+before 1900, rebase off                           15505          15505           0          6.4         155.1       0.2X
+before 1900, rebase on                            19143          19143           0          5.2         191.4       0.2X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP_MILLIS from parquet:       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off, rebase off                   15690          15838         159          6.4         156.9       1.0X
-after 1900, vec off, rebase on                    18019          18185         194          5.5         180.2       0.9X
-after 1900, vec on, rebase off                     6021           6038          16         16.6          60.2       2.6X
-after 1900, vec on, rebase on                      8351           8383          38         12.0          83.5       1.9X
-before 1900, vec off, rebase off                  15863          15909          46          6.3         158.6       1.0X
-before 1900, vec off, rebase on                   18810          18955         179          5.3         188.1       0.8X
-before 1900, vec on, rebase off                    6055           6095          41         16.5          60.5       2.6X
-before 1900, vec on, rebase on                     8955           9007          50         11.2          89.5       1.8X
+after 1900, vec off, rebase off                   15330          15436         113          6.5         153.3       1.0X
+after 1900, vec off, rebase on                    15515          15549          30          6.4         155.1       1.0X
+after 1900, vec on, rebase off                     6056           6074          19         16.5          60.6       2.5X
+after 1900, vec on, rebase on                      6376           6390          14         15.7          63.8       2.4X
+before 1900, vec off, rebase off                  15490          15523          36          6.5         154.9       1.0X
+before 1900, vec off, rebase on                   18613          18685         118          5.4         186.1       0.8X
+before 1900, vec on, rebase off                    6065           6109          41         16.5          60.6       2.5X
+before 1900, vec on, rebase on                     9052           9082          32         11.0          90.5       1.7X
 
 
 ================================================================================================
@@ -107,36 +107,36 @@ OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-106
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save DATE to ORC:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, noop                                  19561          19561           0          5.1         195.6       1.0X
-before 1582, noop                                 10676          10676           0          9.4         106.8       1.8X
-after 1582                                        27414          27414           0          3.6         274.1       0.7X
-before 1582                                       19257          19257           0          5.2         192.6       1.0X
+after 1582, noop                                  20653          20653           0          4.8         206.5       1.0X
+before 1582, noop                                 10707          10707           0          9.3         107.1       1.9X
+after 1582                                        28288          28288           0          3.5         282.9       0.7X
+before 1582                                       19196          19196           0          5.2         192.0       1.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load DATE from ORC:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, vec off                               11016          11051          42          9.1         110.2       1.0X
-after 1582, vec on                                 3960           3971          16         25.3          39.6       2.8X
-before 1582, vec off                              11442          11466          23          8.7         114.4       1.0X
-before 1582, vec on                                4269           4288          20         23.4          42.7       2.6X
+after 1582, vec off                               10596          10621          37          9.4         106.0       1.0X
+after 1582, vec on                                 3886           3938          61         25.7          38.9       2.7X
+before 1582, vec off                              10955          10984          26          9.1         109.6       1.0X
+before 1582, vec on                                4236           4258          24         23.6          42.4       2.5X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP to ORC:                    Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2980           2980           0         33.6          29.8       1.0X
-before 1900, noop                                  2972           2972           0         33.6          29.7       1.0X
-after 1900                                        20638          20638           0          4.8         206.4       0.1X
-before 1900                                       22420          22420           0          4.5         224.2       0.1X
+after 1900, noop                                   2988           2988           0         33.5          29.9       1.0X
+before 1900, noop                                  3007           3007           0         33.3          30.1       1.0X
+after 1900                                        18082          18082           0          5.5         180.8       0.2X
+before 1900                                       22669          22669           0          4.4         226.7       0.1X
 
 OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP from ORC:                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off                               14368          14449         137          7.0         143.7       1.0X
-after 1900, vec on                                 7233           7324         146         13.8          72.3       2.0X
-before 1900, vec off                              14936          14951          17          6.7         149.4       1.0X
-before 1900, vec on                                7767           7770           3         12.9          77.7       1.8X
+after 1900, vec off                               12029          12035           9          8.3         120.3       1.0X
+after 1900, vec on                                 5194           5197           3         19.3          51.9       2.3X
+before 1900, vec off                              14853          14875          23          6.7         148.5       0.8X
+before 1900, vec on                                7797           7836          60         12.8          78.0       1.5X
 
 
diff --git a/sql/core/benchmarks/DateTimeRebaseBenchmark-results.txt b/sql/core/benchmarks/DateTimeRebaseBenchmark-results.txt
index 3ce5b36..f2af3cc 100644
--- a/sql/core/benchmarks/DateTimeRebaseBenchmark-results.txt
+++ b/sql/core/benchmarks/DateTimeRebaseBenchmark-results.txt
@@ -6,97 +6,97 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save DATE to parquet:                     Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, noop                                  23101          23101           0          4.3         231.0       1.0X
-before 1582, noop                                 10164          10164           0          9.8         101.6       2.3X
-after 1582, rebase off                            37390          37390           0          2.7         373.9       0.6X
-after 1582, rebase on                             36108          36108           0          2.8         361.1       0.6X
-before 1582, rebase off                           22982          22982           0          4.4         229.8       1.0X
-before 1582, rebase on                            23899          23899           0          4.2         239.0       1.0X
+after 1582, noop                                  23567          23567           0          4.2         235.7       1.0X
+before 1582, noop                                 10570          10570           0          9.5         105.7       2.2X
+after 1582, rebase off                            35335          35335           0          2.8         353.3       0.7X
+after 1582, rebase on                             35645          35645           0          2.8         356.5       0.7X
+before 1582, rebase off                           21824          21824           0          4.6         218.2       1.1X
+before 1582, rebase on                            22532          22532           0          4.4         225.3       1.0X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load DATE from parquet:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, vec off, rebase off                   12544          12579          41          8.0         125.4       1.0X
-after 1582, vec off, rebase on                    13127          13238          97          7.6         131.3       1.0X
-after 1582, vec on, rebase off                     3705           3715           8         27.0          37.1       3.4X
-after 1582, vec on, rebase on                      3866           3884          17         25.9          38.7       3.2X
-before 1582, vec off, rebase off                  12855          12862          11          7.8         128.6       1.0X
-before 1582, vec off, rebase on                   13723          13758          31          7.3         137.2       0.9X
-before 1582, vec on, rebase off                    3706           3724          25         27.0          37.1       3.4X
-before 1582, vec on, rebase on                     4872           4932          71         20.5          48.7       2.6X
+after 1582, vec off, rebase off                   13194          13266          81          7.6         131.9       1.0X
+after 1582, vec off, rebase on                    13402          13466          89          7.5         134.0       1.0X
+after 1582, vec on, rebase off                     3627           3657          29         27.6          36.3       3.6X
+after 1582, vec on, rebase on                      3818           3839          26         26.2          38.2       3.5X
+before 1582, vec off, rebase off                  13075          13146         115          7.6         130.7       1.0X
+before 1582, vec off, rebase on                   13794          13804          13          7.2         137.9       1.0X
+before 1582, vec on, rebase off                    3655           3675          21         27.4          36.6       3.6X
+before 1582, vec on, rebase on                     4579           4634          72         21.8          45.8       2.9X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP_INT96 to parquet:          Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2862           2862           0         34.9          28.6       1.0X
-before 1900, noop                                  2838           2838           0         35.2          28.4       1.0X
-after 1900, rebase off                            33249          33249           0          3.0         332.5       0.1X
-after 1900, rebase on                             33912          33912           0          2.9         339.1       0.1X
-before 1900, rebase off                           36083          36083           0          2.8         360.8       0.1X
-before 1900, rebase on                            35901          35901           0          2.8         359.0       0.1X
+after 1900, noop                                   2671           2671           0         37.4          26.7       1.0X
+before 1900, noop                                  2685           2685           0         37.2          26.8       1.0X
+after 1900, rebase off                            23899          23899           0          4.2         239.0       0.1X
+after 1900, rebase on                             24030          24030           0          4.2         240.3       0.1X
+before 1900, rebase off                           30178          30178           0          3.3         301.8       0.1X
+before 1900, rebase on                            30127          30127           0          3.3         301.3       0.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP_INT96 from parquet:        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off, rebase off                   19452          19496          38          5.1         194.5       1.0X
-after 1900, vec off, rebase on                    19505          19579          65          5.1         195.0       1.0X
-after 1900, vec on, rebase off                    11612          11703          86          8.6         116.1       1.7X
-after 1900, vec on, rebase on                     11533          11642          96          8.7         115.3       1.7X
-before 1900, vec off, rebase off                  20312          20368          88          4.9         203.1       1.0X
-before 1900, vec off, rebase on                   20217          20284          63          4.9         202.2       1.0X
-before 1900, vec on, rebase off                   12301          12372          64          8.1         123.0       1.6X
-before 1900, vec on, rebase on                    12253          12354          88          8.2         122.5       1.6X
+after 1900, vec off, rebase off                   16613          16685          75          6.0         166.1       1.0X
+after 1900, vec off, rebase on                    16487          16541          47          6.1         164.9       1.0X
+after 1900, vec on, rebase off                     8840           8870          49         11.3          88.4       1.9X
+after 1900, vec on, rebase on                      8795           8813          20         11.4          87.9       1.9X
+before 1900, vec off, rebase off                  20400          20441          62          4.9         204.0       0.8X
+before 1900, vec off, rebase on                   20430          20481          60          4.9         204.3       0.8X
+before 1900, vec on, rebase off                   12211          12290          73          8.2         122.1       1.4X
+before 1900, vec on, rebase on                    12231          12321          95          8.2         122.3       1.4X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP_MICROS to parquet:         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2924           2924           0         34.2          29.2       1.0X
-before 1900, noop                                  2942           2942           0         34.0          29.4       1.0X
-after 1900, rebase off                            17323          17323           0          5.8         173.2       0.2X
-after 1900, rebase on                             20229          20229           0          4.9         202.3       0.1X
-before 1900, rebase off                           17166          17166           0          5.8         171.7       0.2X
-before 1900, rebase on                            21740          21740           0          4.6         217.4       0.1X
+after 1900, noop                                   2836           2836           0         35.3          28.4       1.0X
+before 1900, noop                                  2812           2812           0         35.6          28.1       1.0X
+after 1900, rebase off                            15976          15976           0          6.3         159.8       0.2X
+after 1900, rebase on                             16197          16197           0          6.2         162.0       0.2X
+before 1900, rebase off                           16140          16140           0          6.2         161.4       0.2X
+before 1900, rebase on                            20410          20410           0          4.9         204.1       0.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP_MICROS from parquet:       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off, rebase off                   15031          15079          74          6.7         150.3       1.0X
-after 1900, vec off, rebase on                    18414          18429          18          5.4         184.1       0.8X
-after 1900, vec on, rebase off                     5020           5031          10         19.9          50.2       3.0X
-after 1900, vec on, rebase on                      5489           5527          35         18.2          54.9       2.7X
-before 1900, vec off, rebase off                  15062          15096          39          6.6         150.6       1.0X
-before 1900, vec off, rebase on                   19088          19137          64          5.2         190.9       0.8X
-before 1900, vec on, rebase off                    5021           5025           4         19.9          50.2       3.0X
-before 1900, vec on, rebase on                     9880           9913          47         10.1          98.8       1.5X
+after 1900, vec off, rebase off                   15297          15324          40          6.5         153.0       1.0X
+after 1900, vec off, rebase on                    15771          15832          59          6.3         157.7       1.0X
+after 1900, vec on, rebase off                     4922           4949          32         20.3          49.2       3.1X
+after 1900, vec on, rebase on                      5392           5411          17         18.5          53.9       2.8X
+before 1900, vec off, rebase off                  15227          15385         141          6.6         152.3       1.0X
+before 1900, vec off, rebase on                   19611          19658          41          5.1         196.1       0.8X
+before 1900, vec on, rebase off                    4965           5013          54         20.1          49.6       3.1X
+before 1900, vec on, rebase on                     9847           9873          43         10.2          98.5       1.6X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP_MILLIS to parquet:         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2951           2951           0         33.9          29.5       1.0X
-before 1900, noop                                  2999           2999           0         33.3          30.0       1.0X
-after 1900, rebase off                            16457          16457           0          6.1         164.6       0.2X
-after 1900, rebase on                             19587          19587           0          5.1         195.9       0.2X
-before 1900, rebase off                           16509          16509           0          6.1         165.1       0.2X
-before 1900, rebase on                            21375          21375           0          4.7         213.8       0.1X
+after 1900, noop                                   2818           2818           0         35.5          28.2       1.0X
+before 1900, noop                                  2805           2805           0         35.6          28.1       1.0X
+after 1900, rebase off                            15182          15182           0          6.6         151.8       0.2X
+after 1900, rebase on                             15614          15614           0          6.4         156.1       0.2X
+before 1900, rebase off                           15404          15404           0          6.5         154.0       0.2X
+before 1900, rebase on                            19747          19747           0          5.1         197.5       0.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP_MILLIS from parquet:       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off, rebase off                   15121          15250         127          6.6         151.2       1.0X
-after 1900, vec off, rebase on                    18436          18501          56          5.4         184.4       0.8X
-after 1900, vec on, rebase off                     6440           6464          21         15.5          64.4       2.3X
-after 1900, vec on, rebase on                      9547           9605          85         10.5          95.5       1.6X
-before 1900, vec off, rebase off                  15432          15467          59          6.5         154.3       1.0X
-before 1900, vec off, rebase on                   19236          19278          45          5.2         192.4       0.8X
-before 1900, vec on, rebase off                    6424           6436          15         15.6          64.2       2.4X
-before 1900, vec on, rebase on                    10297          10373          75          9.7         103.0       1.5X
+after 1900, vec off, rebase off                   15622          15649          24          6.4         156.2       1.0X
+after 1900, vec off, rebase on                    15572          15677         119          6.4         155.7       1.0X
+after 1900, vec on, rebase off                     6345           6358          15         15.8          63.5       2.5X
+after 1900, vec on, rebase on                      6780           6834          92         14.8          67.8       2.3X
+before 1900, vec off, rebase off                  15540          15584          38          6.4         155.4       1.0X
+before 1900, vec off, rebase on                   19590          19653          55          5.1         195.9       0.8X
+before 1900, vec on, rebase off                    6374           6381          10         15.7          63.7       2.5X
+before 1900, vec on, rebase on                    10530          10544          25          9.5         105.3       1.5X
 
 
 ================================================================================================
@@ -107,36 +107,36 @@ OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aw
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save DATE to ORC:                         Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, noop                                  23323          23323           0          4.3         233.2       1.0X
-before 1582, noop                                 10178          10178           0          9.8         101.8       2.3X
-after 1582                                        31568          31568           0          3.2         315.7       0.7X
-before 1582                                       19918          19918           0          5.0         199.2       1.2X
+after 1582, noop                                  23825          23825           0          4.2         238.2       1.0X
+before 1582, noop                                 10501          10501           0          9.5         105.0       2.3X
+after 1582                                        32134          32134           0          3.1         321.3       0.7X
+before 1582                                       19947          19947           0          5.0         199.5       1.2X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load DATE from ORC:                       Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1582, vec off                               10580          10610          39          9.5         105.8       1.0X
-after 1582, vec on                                 3746           3765          19         26.7          37.5       2.8X
-before 1582, vec off                              11052          11143         124          9.0         110.5       1.0X
-before 1582, vec on                                4170           4187          16         24.0          41.7       2.5X
+after 1582, vec off                               10034          10056          22         10.0         100.3       1.0X
+after 1582, vec on                                 3664           3698          30         27.3          36.6       2.7X
+before 1582, vec off                              10472          10502          30          9.5         104.7       1.0X
+before 1582, vec on                                4052           4098          42         24.7          40.5       2.5X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Save TIMESTAMP to ORC:                    Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, noop                                   2994           2994           0         33.4          29.9       1.0X
-before 1900, noop                                  2986           2986           0         33.5          29.9       1.0X
-after 1900                                        22517          22517           0          4.4         225.2       0.1X
-before 1900                                       23253          23253           0          4.3         232.5       0.1X
+after 1900, noop                                   2812           2812           0         35.6          28.1       1.0X
+before 1900, noop                                  2801           2801           0         35.7          28.0       1.0X
+after 1900                                        18290          18290           0          5.5         182.9       0.2X
+before 1900                                       22344          22344           0          4.5         223.4       0.1X
 
 OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~18.04-b09 on Linux 4.15.0-1063-aws
 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
 Load TIMESTAMP from ORC:                  Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 ------------------------------------------------------------------------------------------------------------------------
-after 1900, vec off                               14042          14199         152          7.1         140.4       1.0X
-after 1900, vec on                                 7873           7901          25         12.7          78.7       1.8X
-before 1900, vec off                              14716          14768          48          6.8         147.2       1.0X
-before 1900, vec on                                8491           8503          10         11.8          84.9       1.7X
+after 1900, vec off                               11257          11279          32          8.9         112.6       1.0X
+after 1900, vec on                                 5296           5310          15         18.9          53.0       2.1X
+before 1900, vec off                              14700          14758          72          6.8         147.0       0.8X
+before 1900, vec on                                8576           8665         150         11.7          85.8       1.3X
 
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org