gengliangwang commented on a change in pull request #24783: 
[SPARK-27105][SQL][test-hadoop3.2] Optimize away exponential complexity in ORC 
predicate conversion
URL: https://github.com/apache/spark/pull/24783#discussion_r291471197
 
 

 ##########
 File path: sql/core/benchmarks/FilterPushdownBenchmark-results.txt
 ##########
 @@ -2,669 +2,698 @@
 Pushdown for many distinct value case
 
================================================================================================
 
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 0 string row (value IS NULL):     Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11405 / 11485          1.4         
725.1       1.0X
-Parquet Vectorized (Pushdown)                  675 /  690         23.3         
 42.9      16.9X
-Native ORC Vectorized                         7127 / 7170          2.2         
453.1       1.6X
-Native ORC Vectorized (Pushdown)               519 /  541         30.3         
 33.0      22.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 0 string row ('7864320' < value < '7864320'): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11457 / 11473          1.4         
728.4       1.0X
-Parquet Vectorized (Pushdown)                  656 /  686         24.0         
 41.7      17.5X
-Native ORC Vectorized                         7328 / 7342          2.1         
465.9       1.6X
-Native ORC Vectorized (Pushdown)               539 /  565         29.2         
 34.2      21.3X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 string row (value = '7864320'): Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11878 / 11888          1.3         
755.2       1.0X
-Parquet Vectorized (Pushdown)                  630 /  654         25.0         
 40.1      18.9X
-Native ORC Vectorized                         7342 / 7362          2.1         
466.8       1.6X
-Native ORC Vectorized (Pushdown)               519 /  537         30.3         
 33.0      22.9X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 string row (value <=> '7864320'): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11423 / 11440          1.4         
726.2       1.0X
-Parquet Vectorized (Pushdown)                  625 /  643         25.2         
 39.7      18.3X
-Native ORC Vectorized                         7315 / 7335          2.2         
465.1       1.6X
-Native ORC Vectorized (Pushdown)               507 /  520         31.0         
 32.2      22.5X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 string row ('7864320' <= value <= '7864320'): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11440 / 11478          1.4         
727.3       1.0X
-Parquet Vectorized (Pushdown)                  634 /  652         24.8         
 40.3      18.0X
-Native ORC Vectorized                         7311 / 7324          2.2         
464.8       1.6X
-Native ORC Vectorized (Pushdown)               517 /  548         30.4         
 32.8      22.1X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select all string rows (value IS NOT NULL): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          20750 / 20872          0.8        
1319.3       1.0X
-Parquet Vectorized (Pushdown)               21002 / 21032          0.7        
1335.3       1.0X
-Native ORC Vectorized                       16714 / 16742          0.9        
1062.6       1.2X
-Native ORC Vectorized (Pushdown)            16926 / 16965          0.9        
1076.1       1.2X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 0 int row (value IS NULL):        Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10510 / 10532          1.5         
668.2       1.0X
-Parquet Vectorized (Pushdown)                  642 /  665         24.5         
 40.8      16.4X
-Native ORC Vectorized                         6609 / 6618          2.4         
420.2       1.6X
-Native ORC Vectorized (Pushdown)               502 /  512         31.4         
 31.9      21.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 0 int row (7864320 < value < 7864320): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10505 / 10514          1.5         
667.9       1.0X
-Parquet Vectorized (Pushdown)                  659 /  673         23.9         
 41.9      15.9X
-Native ORC Vectorized                         6634 / 6641          2.4         
421.8       1.6X
-Native ORC Vectorized (Pushdown)               513 /  526         30.7         
 32.6      20.5X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 int row (value = 7864320):      Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10555 / 10570          1.5         
671.1       1.0X
-Parquet Vectorized (Pushdown)                  651 /  668         24.2         
 41.4      16.2X
-Native ORC Vectorized                         6721 / 6728          2.3         
427.3       1.6X
-Native ORC Vectorized (Pushdown)               508 /  519         31.0         
 32.3      20.8X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 int row (value <=> 7864320):    Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10556 / 10566          1.5         
671.1       1.0X
-Parquet Vectorized (Pushdown)                  647 /  654         24.3         
 41.1      16.3X
-Native ORC Vectorized                         6716 / 6728          2.3         
427.0       1.6X
-Native ORC Vectorized (Pushdown)               510 /  521         30.9         
 32.4      20.7X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 int row (7864320 <= value <= 7864320): Best/Avg Time(ms)    Rate(M/s) 
  Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10556 / 10565          1.5         
671.1       1.0X
-Parquet Vectorized (Pushdown)                  649 /  654         24.2         
 41.3      16.3X
-Native ORC Vectorized                         6700 / 6712          2.3         
426.0       1.6X
-Native ORC Vectorized (Pushdown)               509 /  520         30.9         
 32.3      20.8X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 int row (7864319 < value < 7864321): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10547 / 10566          1.5         
670.5       1.0X
-Parquet Vectorized (Pushdown)                  649 /  653         24.2         
 41.3      16.3X
-Native ORC Vectorized                         6703 / 6713          2.3         
426.2       1.6X
-Native ORC Vectorized (Pushdown)               510 /  520         30.8         
 32.5      20.7X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 10% int rows (value < 1572864):   Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11478 / 11525          1.4         
729.7       1.0X
-Parquet Vectorized (Pushdown)                 2576 / 2587          6.1         
163.8       4.5X
-Native ORC Vectorized                         7633 / 7657          2.1         
485.3       1.5X
-Native ORC Vectorized (Pushdown)              2076 / 2096          7.6         
132.0       5.5X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 50% int rows (value < 7864320):   Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          14785 / 14802          1.1         
940.0       1.0X
-Parquet Vectorized (Pushdown)                 9971 / 9977          1.6         
633.9       1.5X
-Native ORC Vectorized                       11082 / 11107          1.4         
704.6       1.3X
-Native ORC Vectorized (Pushdown)              8061 / 8073          2.0         
512.5       1.8X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 90% int rows (value < 14155776):  Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          18174 / 18214          0.9        
1155.5       1.0X
-Parquet Vectorized (Pushdown)               17387 / 17403          0.9        
1105.5       1.0X
-Native ORC Vectorized                       14465 / 14492          1.1         
919.7       1.3X
-Native ORC Vectorized (Pushdown)            14024 / 14041          1.1         
891.6       1.3X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select all int rows (value IS NOT NULL): Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          19004 / 19014          0.8        
1208.2       1.0X
-Parquet Vectorized (Pushdown)               19219 / 19232          0.8        
1221.9       1.0X
-Native ORC Vectorized                       15266 / 15290          1.0         
970.6       1.2X
-Native ORC Vectorized (Pushdown)            15469 / 15482          1.0         
983.5       1.2X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select all int rows (value > -1):        Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          19036 / 19052          0.8        
1210.3       1.0X
-Parquet Vectorized (Pushdown)               19287 / 19306          0.8        
1226.2       1.0X
-Native ORC Vectorized                       15311 / 15371          1.0         
973.5       1.2X
-Native ORC Vectorized (Pushdown)            15517 / 15590          1.0         
986.5       1.2X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select all int rows (value != -1):       Best/Avg Time(ms)    Rate(M/s)   Per 
Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          19072 / 19102          0.8        
1212.6       1.0X
-Parquet Vectorized (Pushdown)               19288 / 19318          0.8        
1226.3       1.0X
-Native ORC Vectorized                       15277 / 15293          1.0         
971.3       1.2X
-Native ORC Vectorized (Pushdown)            15479 / 15499          1.0         
984.1       1.2X
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 0 string row (value IS NULL):      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8100           8441         
338          1.9         515.0       1.0X
+Parquet Vectorized (Pushdown)                       508            554         
 30         31.0          32.3      16.0X
+Native ORC Vectorized                              5747           5950         
195          2.7         365.4       1.4X
+Native ORC Vectorized (Pushdown)                    585            699         
 76         26.9          37.2      13.8X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 0 string row ('7864320' < value < '7864320'):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8001           8183         
142          2.0         508.7       1.0X
+Parquet Vectorized (Pushdown)                       498            536         
 37         31.6          31.7      16.1X
+Native ORC Vectorized                              5907           6064         
160          2.7         375.6       1.4X
+Native ORC Vectorized (Pushdown)                    542            593         
 34         29.0          34.5      14.8X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 string row (value = '7864320'):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7999           8356         
247          2.0         508.6       1.0X
+Parquet Vectorized (Pushdown)                       471            484         
 11         33.4          30.0      17.0X
+Native ORC Vectorized                              5856           5921         
 45          2.7         372.3       1.4X
+Native ORC Vectorized (Pushdown)                    531            541         
 17         29.6          33.7      15.1X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 string row (value <=> '7864320'):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8061           8398         
451          2.0         512.5       1.0X
+Parquet Vectorized (Pushdown)                       462            479         
 17         34.1          29.4      17.5X
+Native ORC Vectorized                              5778           5843         
 86          2.7         367.4       1.4X
+Native ORC Vectorized (Pushdown)                    620            684         
 39         25.4          39.4      13.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 string row ('7864320' <= value <= '7864320'):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8056           8216         
163          2.0         512.2       1.0X
+Parquet Vectorized (Pushdown)                       465            488         
 19         33.8          29.6      17.3X
+Native ORC Vectorized                              5793           5844         
 68          2.7         368.3       1.4X
+Native ORC Vectorized (Pushdown)                    538            579         
 26         29.2          34.2      15.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select all string rows (value IS NOT NULL):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                14531          14600         
 52          1.1         923.8       1.0X
+Parquet Vectorized (Pushdown)                     15076          15285         
189          1.0         958.5       1.0X
+Native ORC Vectorized                             12828          13009         
233          1.2         815.6       1.1X
+Native ORC Vectorized (Pushdown)                  13072          13253         
201          1.2         831.1       1.1X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 0 int row (value IS NULL):         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7431           7880         
418          2.1         472.4       1.0X
+Parquet Vectorized (Pushdown)                       453            456         
  2         34.7          28.8      16.4X
+Native ORC Vectorized                              5157           5669         
447          3.0         327.9       1.4X
+Native ORC Vectorized (Pushdown)                    559            572         
 14         28.1          35.5      13.3X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 0 int row (7864320 < value < 7864320):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7441           7552         
143          2.1         473.1       1.0X
+Parquet Vectorized (Pushdown)                       466            470         
  5         33.8          29.6      16.0X
+Native ORC Vectorized                              5238           5307         
 51          3.0         333.0       1.4X
+Native ORC Vectorized (Pushdown)                    557            571         
 15         28.3          35.4      13.4X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 int row (value = 7864320):       Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7447           7502         
 33          2.1         473.5       1.0X
+Parquet Vectorized (Pushdown)                       460            465         
  6         34.2          29.2      16.2X
+Native ORC Vectorized                              5212           5320         
 88          3.0         331.4       1.4X
+Native ORC Vectorized (Pushdown)                    647            764         
120         24.3          41.1      11.5X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 int row (value <=> 7864320):     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7573           7877         
429          2.1         481.5       1.0X
+Parquet Vectorized (Pushdown)                       468            474         
  4         33.6          29.8      16.2X
+Native ORC Vectorized                              5338           5471         
122          2.9         339.4       1.4X
+Native ORC Vectorized (Pushdown)                    560            595         
 25         28.1          35.6      13.5X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 int row (7864320 <= value <= 7864320):  Best Time(ms)   Avg Time(ms)  
 Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7589           7680         
102          2.1         482.5       1.0X
+Parquet Vectorized (Pushdown)                       471            472         
  2         33.4          29.9      16.1X
+Native ORC Vectorized                              5380           5764         
344          2.9         342.0       1.4X
+Native ORC Vectorized (Pushdown)                    576            594         
 16         27.3          36.6      13.2X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 int row (7864319 < value < 7864321):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7540           7585         
 32          2.1         479.4       1.0X
+Parquet Vectorized (Pushdown)                       469            471         
  2         33.5          29.8      16.1X
+Native ORC Vectorized                              5437           5499         
 73          2.9         345.7       1.4X
+Native ORC Vectorized (Pushdown)                    653            705         
 34         24.1          41.5      11.6X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 10% int rows (value < 1572864):    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8989           9867         
981          1.7         571.5       1.0X
+Parquet Vectorized (Pushdown)                      2197           2224         
 17          7.2         139.7       4.1X
+Native ORC Vectorized                              6612           7005         
454          2.4         420.4       1.4X
+Native ORC Vectorized (Pushdown)                   2060           2136         
 66          7.6         131.0       4.4X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 50% int rows (value < 7864320):    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                11024          11815         
959          1.4         700.9       1.0X
+Parquet Vectorized (Pushdown)                      7368           7556         
325          2.1         468.4       1.5X
+Native ORC Vectorized                              9328           9436         
120          1.7         593.0       1.2X
+Native ORC Vectorized (Pushdown)                   6613           6662         
 35          2.4         420.4       1.7X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 90% int rows (value < 14155776):   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                13358          13383         
 16          1.2         849.3       1.0X
+Parquet Vectorized (Pushdown)                     12788          13091         
336          1.2         813.0       1.0X
+Native ORC Vectorized                             11443          12081         
574          1.4         727.5       1.2X
+Native ORC Vectorized (Pushdown)                  11158          11180         
 16          1.4         709.4       1.2X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select all int rows (value IS NOT NULL):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                14090          14979         
693          1.1         895.8       1.0X
+Parquet Vectorized (Pushdown)                     14540          15283         
474          1.1         924.5       1.0X
+Native ORC Vectorized                             12602          12754         
280          1.2         801.2       1.1X
+Native ORC Vectorized (Pushdown)                  12633          13019         
367          1.2         803.2       1.1X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select all int rows (value > -1):         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                14068          14383         
217          1.1         894.4       1.0X
+Parquet Vectorized (Pushdown)                     14228          15038         
781          1.1         904.6       1.0X
+Native ORC Vectorized                             12845          13208         
413          1.2         816.7       1.1X
+Native ORC Vectorized (Pushdown)                  12985          13223         
190          1.2         825.6       1.1X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select all int rows (value != -1):        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                14607          15004         
284          1.1         928.7       1.0X
+Parquet Vectorized (Pushdown)                     15216          15625         
670          1.0         967.4       1.0X
+Native ORC Vectorized                             12779          13432         
814          1.2         812.5       1.1X
+Native ORC Vectorized (Pushdown)                  13001          13294         
232          1.2         826.6       1.1X
 
 
 
================================================================================================
 Pushdown for few distinct value case (use dictionary encoding)
 
================================================================================================
 
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 0 distinct string row (value IS NULL): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10250 / 10274          1.5         
651.7       1.0X
-Parquet Vectorized (Pushdown)                  571 /  576         27.5         
 36.3      17.9X
-Native ORC Vectorized                         8651 / 8660          1.8         
550.0       1.2X
-Native ORC Vectorized (Pushdown)               909 /  933         17.3         
 57.8      11.3X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 0 distinct string row ('100' < value < '100'): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10420 / 10426          1.5         
662.5       1.0X
-Parquet Vectorized (Pushdown)                  574 /  579         27.4         
 36.5      18.2X
-Native ORC Vectorized                         8973 / 8982          1.8         
570.5       1.2X
-Native ORC Vectorized (Pushdown)               916 /  955         17.2         
 58.2      11.4X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 distinct string row (value = '100'): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10428 / 10441          1.5         
663.0       1.0X
-Parquet Vectorized (Pushdown)                  789 /  809         19.9         
 50.2      13.2X
-Native ORC Vectorized                         9042 / 9055          1.7         
574.9       1.2X
-Native ORC Vectorized (Pushdown)              1130 / 1145         13.9         
 71.8       9.2X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 distinct string row (value <=> '100'): Best/Avg Time(ms)    Rate(M/s) 
  Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10402 / 10416          1.5         
661.3       1.0X
-Parquet Vectorized (Pushdown)                  791 /  806         19.9         
 50.3      13.2X
-Native ORC Vectorized                         9042 / 9055          1.7         
574.9       1.2X
-Native ORC Vectorized (Pushdown)              1112 / 1145         14.1         
 70.7       9.4X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 distinct string row ('100' <= value <= '100'): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10548 / 10563          1.5         
670.6       1.0X
-Parquet Vectorized (Pushdown)                  790 /  796         19.9         
 50.2      13.4X
-Native ORC Vectorized                         9144 / 9153          1.7         
581.3       1.2X
-Native ORC Vectorized (Pushdown)              1117 / 1148         14.1         
 71.0       9.4X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select all distinct string rows (value IS NOT NULL): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          20445 / 20469          0.8        
1299.8       1.0X
-Parquet Vectorized (Pushdown)               20686 / 20699          0.8        
1315.2       1.0X
-Native ORC Vectorized                       18851 / 18953          0.8        
1198.5       1.1X
-Native ORC Vectorized (Pushdown)            19255 / 19268          0.8        
1224.2       1.1X
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 0 distinct string row (value IS NULL):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7446           7615         
210          2.1         473.4       1.0X
+Parquet Vectorized (Pushdown)                       422            458         
 73         37.3          26.8      17.7X
+Native ORC Vectorized                              6842           7387         
585          2.3         435.0       1.1X
+Native ORC Vectorized (Pushdown)                   1313           1437         
145         12.0          83.5       5.7X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 0 distinct string row ('100' < value < '100'):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7669           8303         
494          2.1         487.6       1.0X
+Parquet Vectorized (Pushdown)                       426            434         
  9         36.9          27.1      18.0X
+Native ORC Vectorized                              7791           8283         
318          2.0         495.3       1.0X
+Native ORC Vectorized (Pushdown)                   1368           1389         
 21         11.5          87.0       5.6X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 distinct string row (value = '100'):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7680           7743         
 97          2.0         488.3       1.0X
+Parquet Vectorized (Pushdown)                       595            605         
 10         26.4          37.8      12.9X
+Native ORC Vectorized                              7314           7785         
320          2.2         465.0       1.1X
+Native ORC Vectorized (Pushdown)                   1646           1847         
161          9.6         104.6       4.7X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 distinct string row (value <=> '100'):  Best Time(ms)   Avg Time(ms)  
 Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8254           8356         
111          1.9         524.7       1.0X
+Parquet Vectorized (Pushdown)                       640            649         
  9         24.6          40.7      12.9X
+Native ORC Vectorized                              7206           7780         
473          2.2         458.2       1.1X
+Native ORC Vectorized (Pushdown)                   1706           1795         
 57          9.2         108.5       4.8X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 distinct string row ('100' <= value <= '100'):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8482           9206         
752          1.9         539.3       1.0X
+Parquet Vectorized (Pushdown)                       623            669         
 31         25.2          39.6      13.6X
+Native ORC Vectorized                              7762           7962         
272          2.0         493.5       1.1X
+Native ORC Vectorized (Pushdown)                   1523           1578         
 36         10.3          96.8       5.6X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select all distinct string rows (value IS NOT NULL):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                16069          16332         
214          1.0        1021.7       1.0X
+Parquet Vectorized (Pushdown)                     16387          16448         
 57          1.0        1041.8       1.0X
+Native ORC Vectorized                             15257          15783         
813          1.0         970.0       1.1X
+Native ORC Vectorized (Pushdown)                  17282          18955         
NaN          0.9        1098.7       0.9X
 
 
 
================================================================================================
 Pushdown benchmark for StringStartsWith
 
================================================================================================
 
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-StringStartsWith filter: (value like '10%'): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          14265 / 15213          1.1         
907.0       1.0X
-Parquet Vectorized (Pushdown)                 4228 / 4870          3.7         
268.8       3.4X
-Native ORC Vectorized                       10116 / 10977          1.6         
643.2       1.4X
-Native ORC Vectorized (Pushdown)            10653 / 11376          1.5         
677.3       1.3X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-StringStartsWith filter: (value like '1000%'): Best/Avg Time(ms)    Rate(M/s)  
 Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11499 / 11539          1.4         
731.1       1.0X
-Parquet Vectorized (Pushdown)                  669 /  672         23.5         
 42.5      17.2X
-Native ORC Vectorized                         7343 / 7363          2.1         
466.8       1.6X
-Native ORC Vectorized (Pushdown)              7559 / 7568          2.1         
480.6       1.5X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-StringStartsWith filter: (value like '786432%'): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11463 / 11468          1.4         
728.8       1.0X
-Parquet Vectorized (Pushdown)                  647 /  651         24.3         
 41.1      17.7X
-Native ORC Vectorized                         7322 / 7338          2.1         
465.5       1.6X
-Native ORC Vectorized (Pushdown)              7533 / 7544          2.1         
478.9       1.5X
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+StringStartsWith filter: (value like '10%'):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                10929          11386         
525          1.4         694.8       1.0X
+Parquet Vectorized (Pushdown)                      3649           3934         
254          4.3         232.0       3.0X
+Native ORC Vectorized                              8790           9574        
1093          1.8         558.8       1.2X
+Native ORC Vectorized (Pushdown)                   8094           9051        
1366          1.9         514.6       1.4X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+StringStartsWith filter: (value like '1000%'):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8090           8297         
283          1.9         514.4       1.0X
+Parquet Vectorized (Pushdown)                       472            475         
  4         33.3          30.0      17.1X
+Native ORC Vectorized                              6023           6123         
 78          2.6         383.0       1.3X
+Native ORC Vectorized (Pushdown)                   6291           6696         
352          2.5         400.0       1.3X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+StringStartsWith filter: (value like '786432%'):  Best Time(ms)   Avg Time(ms) 
  Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 8210           8447         
245          1.9         522.0       1.0X
+Parquet Vectorized (Pushdown)                       463            466         
  4         34.0          29.4      17.7X
+Native ORC Vectorized                              5822           5867         
 28          2.7         370.1       1.4X
+Native ORC Vectorized (Pushdown)                   6122           6146         
 15          2.6         389.2       1.3X
 
 
 
================================================================================================
 Pushdown benchmark for decimal
 
================================================================================================
 
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 decimal(9, 2) row (value = 7864320): Best/Avg Time(ms)    Rate(M/s)   
Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                            5543 / 5564          2.8         
352.4       1.0X
-Parquet Vectorized (Pushdown)                  168 /  174         93.7         
 10.7      33.0X
-Native ORC Vectorized                         4992 / 5052          3.2         
317.4       1.1X
-Native ORC Vectorized (Pushdown)               840 /  850         18.7         
 53.4       6.6X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 10% decimal(9, 2) rows (value < 1572864): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                            7312 / 7358          2.2         
464.9       1.0X
-Parquet Vectorized (Pushdown)                 3008 / 3078          5.2         
191.2       2.4X
-Native ORC Vectorized                         6775 / 6798          2.3         
430.7       1.1X
-Native ORC Vectorized (Pushdown)              6819 / 6832          2.3         
433.5       1.1X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 50% decimal(9, 2) rows (value < 7864320): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          13232 / 13241          1.2         
841.3       1.0X
-Parquet Vectorized (Pushdown)               12555 / 12569          1.3         
798.2       1.1X
-Native ORC Vectorized                       12597 / 12627          1.2         
800.9       1.1X
-Native ORC Vectorized (Pushdown)            12677 / 12711          1.2         
806.0       1.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 90% decimal(9, 2) rows (value < 14155776): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          14725 / 14729          1.1         
936.2       1.0X
-Parquet Vectorized (Pushdown)               14781 / 14800          1.1         
939.7       1.0X
-Native ORC Vectorized                       15360 / 15453          1.0         
976.5       1.0X
-Native ORC Vectorized (Pushdown)            15444 / 15466          1.0         
981.9       1.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 decimal(18, 2) row (value = 7864320): Best/Avg Time(ms)    Rate(M/s)  
 Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                            5746 / 5763          2.7         
365.3       1.0X
-Parquet Vectorized (Pushdown)                  166 /  169         94.8         
 10.6      34.6X
-Native ORC Vectorized                         5007 / 5023          3.1         
318.3       1.1X
-Native ORC Vectorized (Pushdown)              2629 / 2640          6.0         
167.1       2.2X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 10% decimal(18, 2) rows (value < 1572864): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                            6827 / 6864          2.3         
434.0       1.0X
-Parquet Vectorized (Pushdown)                 1809 / 1827          8.7         
115.0       3.8X
-Native ORC Vectorized                         6287 / 6296          2.5         
399.7       1.1X
-Native ORC Vectorized (Pushdown)              6364 / 6377          2.5         
404.6       1.1X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 50% decimal(18, 2) rows (value < 7864320): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          11315 / 11342          1.4         
719.4       1.0X
-Parquet Vectorized (Pushdown)                 8431 / 8450          1.9         
536.0       1.3X
-Native ORC Vectorized                       11591 / 11611          1.4         
736.9       1.0X
-Native ORC Vectorized (Pushdown)            11424 / 11475          1.4         
726.3       1.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 90% decimal(18, 2) rows (value < 14155776): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          15703 / 15712          1.0         
998.4       1.0X
-Parquet Vectorized (Pushdown)               14982 / 15009          1.0         
952.5       1.0X
-Native ORC Vectorized                       16887 / 16955          0.9        
1073.7       0.9X
-Native ORC Vectorized (Pushdown)            16518 / 16530          1.0        
1050.2       1.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 1 decimal(38, 2) row (value = 7864320): Best/Avg Time(ms)    Rate(M/s)  
 Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                            8101 / 8130          1.9         
515.1       1.0X
-Parquet Vectorized (Pushdown)                  184 /  187         85.6         
 11.7      44.1X
-Native ORC Vectorized                         4998 / 5027          3.1         
317.8       1.6X
-Native ORC Vectorized (Pushdown)               165 /  168         95.6         
 10.5      49.2X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 10% decimal(38, 2) rows (value < 1572864): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                            9405 / 9447          1.7         
597.9       1.0X
-Parquet Vectorized (Pushdown)                 2269 / 2275          6.9         
144.2       4.1X
-Native ORC Vectorized                         6167 / 6203          2.6         
392.1       1.5X
-Native ORC Vectorized (Pushdown)              1783 / 1787          8.8         
113.3       5.3X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 50% decimal(38, 2) rows (value < 7864320): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          14700 / 14707          1.1         
934.6       1.0X
-Parquet Vectorized (Pushdown)               10699 / 10712          1.5         
680.2       1.4X
-Native ORC Vectorized                       10687 / 10703          1.5         
679.5       1.4X
-Native ORC Vectorized (Pushdown)              8364 / 8415          1.9         
531.8       1.8X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-Select 90% decimal(38, 2) rows (value < 14155776): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          19780 / 19894          0.8        
1257.6       1.0X
-Parquet Vectorized (Pushdown)               19003 / 19025          0.8        
1208.1       1.0X
-Native ORC Vectorized                       15385 / 15404          1.0         
978.2       1.3X
-Native ORC Vectorized (Pushdown)            15032 / 15060          1.0         
955.7       1.3X
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 decimal(9, 2) row (value = 7864320):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 3863           4034         
224          4.1         245.6       1.0X
+Parquet Vectorized (Pushdown)                       127            139         
 12        123.4           8.1      30.3X
+Native ORC Vectorized                              3905           4028         
 83          4.0         248.3       1.0X
+Native ORC Vectorized (Pushdown)                    742            776         
 27         21.2          47.2       5.2X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 10% decimal(9, 2) rows (value < 1572864):  Best Time(ms)   Avg Time(ms) 
  Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 5416           5640         
149          2.9         344.3       1.0X
+Parquet Vectorized (Pushdown)                      2444           2492         
 50          6.4         155.4       2.2X
+Native ORC Vectorized                              5364           5392         
 40          2.9         341.1       1.0X
+Native ORC Vectorized (Pushdown)                   5442           5487         
 56          2.9         346.0       1.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 50% decimal(9, 2) rows (value < 7864320):  Best Time(ms)   Avg Time(ms) 
  Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                10072          10157         
 76          1.6         640.4       1.0X
+Parquet Vectorized (Pushdown)                      9638           9889         
184          1.6         612.7       1.0X
+Native ORC Vectorized                             10192          10224         
 33          1.5         648.0       1.0X
+Native ORC Vectorized (Pushdown)                  10287          10381         
173          1.5         654.1       1.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 90% decimal(9, 2) rows (value < 14155776):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                11307          11681         
311          1.4         718.9       1.0X
+Parquet Vectorized (Pushdown)                     11409          11509         
 94          1.4         725.4       1.0X
+Native ORC Vectorized                             11613          12703         
NaN          1.4         738.3       1.0X
+Native ORC Vectorized (Pushdown)                  11938          12334         
525          1.3         759.0       0.9X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 decimal(18, 2) row (value = 7864320):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 4109           4344         
168          3.8         261.2       1.0X
+Parquet Vectorized (Pushdown)                       134            150         
 13        117.7           8.5      30.7X
+Native ORC Vectorized                              3927           4163         
192          4.0         249.7       1.0X
+Native ORC Vectorized (Pushdown)                   2159           2337         
120          7.3         137.3       1.9X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 10% decimal(18, 2) rows (value < 1572864):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 5049           5301         
183          3.1         321.0       1.0X
+Parquet Vectorized (Pushdown)                      1379           1467         
 89         11.4          87.7       3.7X
+Native ORC Vectorized                              4727           5344         
637          3.3         300.5       1.1X
+Native ORC Vectorized (Pushdown)                   4862           5101         
216          3.2         309.1       1.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 50% decimal(18, 2) rows (value < 7864320):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 7877           8107         
216          2.0         500.8       1.0X
+Parquet Vectorized (Pushdown)                      5771           5836         
 88          2.7         366.9       1.4X
+Native ORC Vectorized                              7684           7704         
 18          2.0         488.5       1.0X
+Native ORC Vectorized (Pushdown)                   7976           8248         
262          2.0         507.1       1.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 90% decimal(18, 2) rows (value < 14155776):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                10875          11744         
792          1.4         691.4       1.0X
+Parquet Vectorized (Pushdown)                     10535          11057         
418          1.5         669.8       1.0X
+Native ORC Vectorized                             10825          11382         
760          1.5         688.2       1.0X
+Native ORC Vectorized (Pushdown)                  11319          11950         
701          1.4         719.6       1.0X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 1 decimal(38, 2) row (value = 7864320):  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 5764           6018         
262          2.7         366.5       1.0X
+Parquet Vectorized (Pushdown)                       138            148         
  8        114.0           8.8      41.8X
+Native ORC Vectorized                              4030           4068         
 42          3.9         256.2       1.4X
+Native ORC Vectorized (Pushdown)                    174            191         
 24         90.5          11.0      33.2X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 10% decimal(38, 2) rows (value < 1572864):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                 6790           7280         
466          2.3         431.7       1.0X
+Parquet Vectorized (Pushdown)                      1677           1802         
197          9.4         106.6       4.0X
+Native ORC Vectorized                              5077           5429         
333          3.1         322.8       1.3X
+Native ORC Vectorized (Pushdown)                   1510           1645         
213         10.4          96.0       4.5X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 50% decimal(38, 2) rows (value < 7864320):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                10372          11031         
543          1.5         659.4       1.0X
+Parquet Vectorized (Pushdown)                      7581           7959         
330          2.1         482.0       1.4X
+Native ORC Vectorized                              8409           9048         
680          1.9         534.6       1.2X
+Native ORC Vectorized (Pushdown)                   6551           6564         
 16          2.4         416.5       1.6X
+
+Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 on Mac OS X 10.14.5
+Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
+Select 90% decimal(38, 2) rows (value < 14155776):  Best Time(ms)   Avg 
Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
+------------------------------------------------------------------------------------------------------------------------
+Parquet Vectorized                                13819          14830         
924          1.1         878.6       1.0X
+Parquet Vectorized (Pushdown)                     14227          14856         
440          1.1         904.5       1.0X
+Native ORC Vectorized                             12257          12701         
481          1.3         779.3       1.1X
+Native ORC Vectorized (Pushdown)                  12108          12785         
863          1.3         769.8       1.1X
 
 
 
================================================================================================
 Pushdown benchmark for InSet -> InFilters
 
================================================================================================
 
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-InSet -> InFilters (values count: 5, distribution: 10): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10521 / 10534          1.5         
668.9       1.0X
-Parquet Vectorized (Pushdown)                  677 /  691         23.2         
 43.1      15.5X
-Native ORC Vectorized                         6768 / 6776          2.3         
430.3       1.6X
-Native ORC Vectorized (Pushdown)               501 /  512         31.4         
 31.8      21.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-InSet -> InFilters (values count: 5, distribution: 50): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10531 / 10538          1.5         
669.5       1.0X
-Parquet Vectorized (Pushdown)                  677 /  718         23.2         
 43.0      15.6X
-Native ORC Vectorized                         6765 / 6773          2.3         
430.1       1.6X
-Native ORC Vectorized (Pushdown)               499 /  507         31.5         
 31.7      21.1X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-InSet -> InFilters (values count: 5, distribution: 90): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10540 / 10553          1.5         
670.1       1.0X
-Parquet Vectorized (Pushdown)                  678 /  710         23.2         
 43.1      15.5X
-Native ORC Vectorized                         6787 / 6794          2.3         
431.5       1.6X
-Native ORC Vectorized (Pushdown)               501 /  509         31.4         
 31.9      21.0X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-InSet -> InFilters (values count: 10, distribution: 10): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10551 / 10559          1.5         
670.8       1.0X
-Parquet Vectorized (Pushdown)                  703 /  708         22.4         
 44.7      15.0X
-Native ORC Vectorized                         6791 / 6802          2.3         
431.7       1.6X
-Native ORC Vectorized (Pushdown)               519 /  526         30.3         
 33.0      20.3X
-
-OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64
-Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
-InSet -> InFilters (values count: 10, distribution: 50): Best/Avg Time(ms)    
Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------------
-Parquet Vectorized                          10561 / 10565          1.5         
671.4       1.0X
-Parquet Vectorized (Pushdown)                  711 /  716         22.1         
 45.2      14.9X
-Native ORC Vectorized                         6791 / 6806          2.3         
431.8       1.6X
-Native ORC Ve
 
 Review comment:
   All the benchmark results of `FilterPushdownBenchmark` will be in this file, 
unless we move the new benchmarks to another micro benchmark.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to