You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by en...@apache.org on 2015/12/03 22:54:53 UTC

[1/2] incubator-hawq git commit: HAWQ-148. Add new GUC optimizer_prefer_scalar_dqa_multistage_agg to split scalar DQA into multi-stage aggregates.

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 9b2f04513 -> 74d6057ee


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/74d6057e/src/test/regress/expected/eagerfree_optimizer.out
----------------------------------------------------------------------
diff --git a/src/test/regress/expected/eagerfree_optimizer.out b/src/test/regress/expected/eagerfree_optimizer.out
index c10fa9d..bac2b36 100644
--- a/src/test/regress/expected/eagerfree_optimizer.out
+++ b/src/test/regress/expected/eagerfree_optimizer.out
@@ -17,61 +17,71 @@ from generate_series(0, 49) i;
 select d, count(*) from smallt group by d;
      d      | count 
 ------------+-------
- 01-13-2011 |     5
- 01-11-2011 |     5
- 01-03-2011 |     5
- 01-09-2011 |     5
- 01-15-2011 |     5
- 01-07-2011 |     5
  01-01-2011 |     5
- 01-05-2011 |     5
- 01-19-2011 |     5
+ 01-09-2011 |     5
  01-17-2011 |     5
+ 01-04-2011 |     5
  01-12-2011 |     5
- 01-08-2011 |     5
- 01-10-2011 |     5
- 01-14-2011 |     5
  01-20-2011 |     5
- 01-18-2011 |     5
- 01-04-2011 |     5
+ 01-07-2011 |     5
+ 01-15-2011 |     5
  01-02-2011 |     5
+ 01-10-2011 |     5
+ 01-18-2011 |     5
+ 01-05-2011 |     5
+ 01-13-2011 |     5
+ 01-08-2011 |     5
  01-16-2011 |     5
+ 01-03-2011 |     5
+ 01-11-2011 |     5
+ 01-19-2011 |     5
  01-06-2011 |     5
+ 01-14-2011 |     5
 (20 rows)
 
 explain analyze select d, count(*) from smallt group by d;
-                                                                               QUERY PLAN                                                                               
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Gather Motion 2:1  (slice2; segments: 2)  (cost=0.00..431.01 rows=20 width=12)
-   Rows out:  20 rows at destination with 15 ms to end, start offset by 0.530 ms.
-   ->  HashAggregate  (cost=0.00..431.01 rows=10 width=12)
+                                                                                                                                         QUERY PLAN                                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Gather Motion 8:1  (slice2; segments: 8)  (cost=0.00..431.00 rows=20 width=12)
+   Rows out:  20 rows at destination with 29 ms to first row, 30 ms to end, start offset by 0.626/0.626 ms.
+   ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
          Group By: d
-         Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 11 ms to first row, 14 ms to end, start offset by 1.196 ms.
-         Executor memory:  6233K bytes avg, 6233K bytes max (seg0).
-         ->  Redistribute Motion 2:2  (slice1; segments: 2)  (cost=0.00..431.01 rows=10 width=12)
-               Hash Key: d
-               Rows out:  Avg 10.0 rows x 2 workers at destination.  Max 10 rows (seg0) with 3.252 ms to first row, 6.202 ms to end, start offset by 4.310 ms.
-               ->  Result  (cost=0.00..431.01 rows=10 width=12)
-                     Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 4.266 ms to first row, 4.308 ms to end, start offset by 6.100 ms.
-                     ->  GroupAggregate  (cost=0.00..431.01 rows=10 width=12)
-                           Group By: d
-                           Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 4.254 ms to first row, 4.293 ms to end, start offset by 6.110 ms.
-                           ->  Sort  (cost=0.00..431.01 rows=50 width=4)
-                                 Sort Key: d
-                                 Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 4.234 ms to first row, 4.245 ms to end, start offset by 6.120 ms.
-                                 Executor memory:  29K bytes avg, 29K bytes max (seg0).
-                                 Work_mem used:  29K bytes avg, 29K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-                                 ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=4)
-                                       Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 4.123 ms to first row, 4.148 ms to end, start offset by 6.165 ms.
+         Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 17/26 ms to end, start offset by 13/3.963 ms.
+         ->  Sort  (cost=0.00..431.00 rows=3 width=12)
+               Sort Key: d
+               Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 17/26 ms to end, start offset by 13/3.964 ms.
+               Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+               Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+               ->  Redistribute Motion 8:8  (slice1; segments: 8)  (cost=0.00..431.00 rows=3 width=12)
+                     Hash Key: d
+                     Rows out:  Avg 2.5 rows x 8 workers at destination.  Max/Last(seg0:xzhangmac/seg1:xzhangmac) 3/3 rows with 4.952/13 ms to first row, 16/24 ms to end, start offset by 14/5.650 ms.
+                     ->  Result  (cost=0.00..431.00 rows=3 width=12)
+                           Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 4/2 rows with 12/16 ms to end, start offset by 4.009/6.031 ms.
+                           ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
+                                 Group By: d
+                                 Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 4/2 rows with 12/16 ms to end, start offset by 4.010/6.031 ms.
+                                 ->  Sort  (cost=0.00..431.00 rows=13 width=4)
+                                       Sort Key: d
+                                       Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 20/10 rows with 12/16 ms to end, start offset by 4.010/6.031 ms.
+                                       Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                                       Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                                       ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=4)
+                                             Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 20/10 rows with 11/15 ms to end, start offset by 4.825/6.993 ms.
  Slice statistics:
-   (slice0)    Executor memory: 159K bytes.
-   (slice1)    Executor memory: 195K bytes avg x 2 workers, 195K bytes max (seg0).  Work_mem: 29K bytes max.
-   (slice2)    Executor memory: 6401K bytes avg x 2 workers, 6403K bytes max (seg1).
+   (slice0)    Executor memory: 223K bytes.
+   (slice1)    Executor memory: 367K bytes avg x 8 workers, 379K bytes max (seg2:xzhangmac).  Work_mem: 61K bytes max.
+   (slice2)    Executor memory: 211K bytes avg x 8 workers, 211K bytes max (seg0:xzhangmac).  Work_mem: 61K bytes max.
  Statement statistics:
-   Memory used: 128000K bytes
- Settings:  optimizer=on; optimizer_segments=3
- Total runtime: 16.157 ms
-(29 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (16/16/0); dispatcher time(total/connection/dispatch data): (0.270 ms/0.000 ms/0.133 ms).
+   dispatch data time(max/min/avg): (0.028 ms/0.005 ms/0.008 ms); consume executor data time(max/min/avg): (0.034 ms/0.003 ms/0.011 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (352.000/288/544); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 31.105 ms
+(39 rows)
 
 set statement_mem=2560;
 select count(*) from (select i, t, d, count(*) from bigt group by i, t, d) tmp;
@@ -81,33 +91,34 @@ select count(*) from (select i, t, d, count(*) from bigt group by i, t, d) tmp;
 (1 row)
 
 explain analyze select count(*) from (select i, t, d, count(*) from bigt group by i, t, d) tmp;
-                                                                            QUERY PLAN                                                                            
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Aggregate  (cost=0.00..576.20 rows=1 width=8)
-   Rows out:  1 rows with 1095 ms to end, start offset by 0.505 ms.
-   ->  Gather Motion 2:1  (slice1; segments: 2)  (cost=0.00..576.20 rows=1 width=8)
-         Rows out:  2 rows at destination with 1090 ms to first row, 1095 ms to end, start offset by 0.516 ms.
-         ->  Aggregate  (cost=0.00..576.20 rows=1 width=8)
-               Rows out:  Avg 1.0 rows x 2 workers.  Max 1 rows (seg0) with 1094 ms to end, start offset by 1.056 ms.
-               ->  HashAggregate  (cost=0.00..576.20 rows=500588 width=1)
+                                                                                                                                               QUERY PLAN                                                                                                                                               
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Aggregate  (cost=0.00..482.50 rows=1 width=8)
+   Rows out:  1 rows with 571 ms to end, start offset by 0.617/0.617 ms.
+   ->  Gather Motion 8:1  (slice1; segments: 8)  (cost=0.00..482.50 rows=1 width=8)
+         Rows out:  8 rows at destination with 523 ms to first row, 571 ms to end, start offset by 0.619/0.619 ms.
+         ->  Aggregate  (cost=0.00..482.50 rows=1 width=8)
+               Rows out:  Avg 1.0 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg2:xzhangmac) 1/1 rows with 536/566 ms to end, start offset by 9.635/5.295 ms.
+               ->  HashAggregate  (cost=0.00..482.50 rows=125000 width=1)
                      Group By: i, t, d
-                     Rows out:  Avg 66666.5 rows x 2 workers.  Max 66668 rows (seg1) with 968 ms to first row, 1072 ms to end, start offset by 1.065 ms.
-                     Executor memory:  2954K bytes avg, 2954K bytes max (seg0).
-                     Work_mem used:  2461K bytes avg, 2461K bytes max (seg0). Workfile: (2 spilling, 0 reused)
-                     Work_mem wanted: 6035K bytes avg, 6035K bytes max (seg1) to lessen workfile I/O affecting 2 workers.
-                     (seg1)   66668 groups total in 32 batches; 1 overflows; 66668 spill groups.
-                     (seg1)   Hash chain length 1.2 avg, 8 max, using 86654 of 1081344 buckets.
-                     ->  Table Scan on bigt  (cost=0.00..444.58 rows=500588 width=18)
-                           Rows out:  Avg 500000.0 rows x 2 workers.  Max 500000 rows (seg0) with 0.043 ms to first row, 114 ms to end, start offset by 1.140 ms.
+                     Rows out:  Avg 16666.6 rows x 8 workers.  Max/Last(seg6:xzhangmac/seg2:xzhangmac) 16670/16663 rows with 504/539 ms to first row, 542/562 ms to end, start offset by 5.493/5.296 ms.
+                     Executor memory:  25609K bytes avg, 25609K bytes max (seg0:xzhangmac).
+                     ->  Table Scan on bigt  (cost=0.00..433.20 rows=125000 width=18)
+                           Rows out:  Avg 125000.0 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg1:xzhangmac) 125000/125000 rows with 19/15 ms to first row, 122/154 ms to end, start offset by 25/21 ms.
  Slice statistics:
-   (slice0)    Executor memory: 159K bytes.
-   (slice1)  * Executor memory: 3112K bytes avg x 2 workers, 3112K bytes max (seg0).  Work_mem: 2461K bytes max, 6035K bytes wanted.
+   (slice0)    Executor memory: 223K bytes.
+   (slice1)    Executor memory: 25887K bytes avg x 8 workers, 25887K bytes max (seg0:xzhangmac).
  Statement statistics:
-   Memory used: 2560K bytes
-   Memory wanted: 6434K bytes
- Settings:  optimizer=on; optimizer_segments=3
- Total runtime: 1096.543 ms
-(24 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (8/8/0); dispatcher time(total/connection/dispatch data): (0.235 ms/0.000 ms/0.128 ms).
+   dispatch data time(max/min/avg): (0.032 ms/0.008 ms/0.015 ms); consume executor data time(max/min/avg): (0.020 ms/0.011 ms/0.015 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (4103280.000/4103280/4103280); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 571.627 ms
+(25 rows)
 
 set statement_mem=128000;
 -- DQA
@@ -120,30 +131,48 @@ select count(distinct d) from smallt;
 (1 row)
 
 explain analyze select count(distinct d) from smallt;
-                                                                             QUERY PLAN                                                                              
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
+                                                                                                                                         QUERY PLAN                                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  Aggregate  (cost=0.00..431.00 rows=1 width=8)
-   Rows out:  1 rows with 8.009 ms to end, start offset by 0.685 ms.
-   ->  Gather Motion 2:1  (slice2; segments: 2)  (cost=0.00..431.00 rows=1 width=8)
-         Rows out:  2 rows at destination with 7.824 ms to first row, 7.984 ms to end, start offset by 0.701 ms.
-         ->  Aggregate  (cost=0.00..431.00 rows=1 width=8)
-               Rows out:  Avg 1.0 rows x 2 workers.  Max 1 rows (seg0) with 7.330 ms to end, start offset by 1.263 ms.
-               Executor memory:  29K bytes avg, 29K bytes max (seg0).
-               Work_mem used:  29K bytes avg, 29K bytes max (seg0).
-               ->  Redistribute Motion 2:2  (slice1; segments: 2)  (cost=0.00..431.00 rows=50 width=4)
-                     Hash Key: d
-                     Rows out:  Avg 50.0 rows x 2 workers at destination.  Max 50 rows (seg0) with 7.205 ms to first row, 7.224 ms to end, start offset by 1.274 ms.
-                     ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=4)
-                           Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 3.747 ms to first row, 3.770 ms to end, start offset by 4.187 ms.
+   Rows out:  1 rows with 31 ms to end, start offset by 0.566/0.566 ms.
+   ->  Gather Motion 8:1  (slice2; segments: 8)  (cost=0.00..431.00 rows=20 width=4)
+         Rows out:  20 rows at destination with 31 ms to end, start offset by 0.567/0.567 ms.
+         ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=4)
+               Group By: d
+               Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg7:xzhangmac) 3/2 rows with 22/28 ms to end, start offset by 10/4.188 ms.
+               ->  Sort  (cost=0.00..431.00 rows=3 width=4)
+                     Sort Key: d
+                     Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg7:xzhangmac) 3/2 rows with 22/28 ms to end, start offset by 10/4.189 ms.
+                     Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                     Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                     ->  Redistribute Motion 8:8  (slice1; segments: 8)  (cost=0.00..431.00 rows=3 width=4)
+                           Hash Key: d
+                           Rows out:  Avg 2.5 rows x 8 workers at destination.  Max/Last(seg0:xzhangmac/seg7:xzhangmac) 3/2 rows with 18/22 ms to first row, 21/27 ms to end, start offset by 11/5.183 ms.
+                           ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=4)
+                                 Group By: d
+                                 Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg5:xzhangmac) 4/4 rows with 18/20 ms to end, start offset by 13/11 ms.
+                                 ->  Sort  (cost=0.00..431.00 rows=13 width=4)
+                                       Sort Key: d
+                                       Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg5:xzhangmac) 20/20 rows with 18/20 ms to end, start offset by 13/11 ms.
+                                       Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                                       Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                                       ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=4)
+                                             Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg5:xzhangmac) 20/20 rows with 17/18 ms to end, start offset by 14/12 ms.
  Slice statistics:
-   (slice0)    Executor memory: 159K bytes.
-   (slice1)    Executor memory: 191K bytes avg x 2 workers, 191K bytes max (seg0).
-   (slice2)    Executor memory: 199K bytes avg x 2 workers, 199K bytes max (seg0).  Work_mem: 29K bytes max.
+   (slice0)    Executor memory: 223K bytes.
+   (slice1)    Executor memory: 367K bytes avg x 8 workers, 379K bytes max (seg2:xzhangmac).  Work_mem: 61K bytes max.
+   (slice2)    Executor memory: 211K bytes avg x 8 workers, 211K bytes max (seg0:xzhangmac).  Work_mem: 61K bytes max.
  Statement statistics:
-   Memory used: 128000K bytes
- Settings:  gp_enable_agg_distinct=off; optimizer=on; optimizer_segments=3
- Total runtime: 9.346 ms
-(21 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8; gp_enable_agg_distinct=off
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (16/16/0); dispatcher time(total/connection/dispatch data): (0.264 ms/0.000 ms/0.129 ms).
+   dispatch data time(max/min/avg): (0.021 ms/0.005 ms/0.008 ms); consume executor data time(max/min/avg): (0.021 ms/0.005 ms/0.013 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (352.000/288/544); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 32.795 ms
+(39 rows)
 
 set statement_mem=2560;
 select count(distinct d) from bigt;
@@ -153,40 +182,45 @@ select count(distinct d) from bigt;
 (1 row)
 
 explain analyze select count(distinct d) from bigt;
-                                                                                 QUERY PLAN                                                                                 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Aggregate  (cost=0.00..451.39 rows=1 width=8)
-   Rows out:  1 rows with 3480 ms to end, start offset by 0.455 ms.
-   ->  Gather Motion 2:1  (slice2; segments: 2)  (cost=0.00..451.39 rows=1 width=8)
-         Rows out:  2 rows at destination with 3431 ms to first row, 3480 ms to end, start offset by 0.466 ms.
-         ->  Aggregate  (cost=0.00..451.39 rows=1 width=8)
-               Rows out:  Avg 1.0 rows x 2 workers.  Max 1 rows (seg0) with 3430 ms to end, start offset by 1.152 ms.
-               Executor memory:  2585K bytes avg, 2585K bytes max (seg0).
-               Work_mem used:  2585K bytes avg, 2585K bytes max (seg0).
-               Work_mem wanted: 9799K bytes avg, 9799K bytes max (seg0) to lessen workfile I/O affecting 2 workers.
-               ->  Redistribute Motion 2:2  (slice1; segments: 2)  (cost=0.00..451.24 rows=500588 width=4)
+                                                                                                                                               QUERY PLAN                                                                                                                                               
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Aggregate  (cost=0.00..450.75 rows=1 width=8)
+   Rows out:  1 rows with 497 ms to end, start offset by 0.668/0.668 ms.
+   ->  Gather Motion 8:1  (slice2; segments: 8)  (cost=0.00..450.72 rows=49674 width=4)
+         Rows out:  50000 rows at destination with 416 ms to first row, 481 ms to end, start offset by 0.669/0.669 ms.
+         ->  HashAggregate  (cost=0.00..450.17 rows=6210 width=4)
+               Group By: d
+               Rows out:  Avg 6250.0 rows x 8 workers.  Max/Last(seg1:xzhangmac/seg1:xzhangmac) 6251/6251 rows with 425/425 ms to first row, 435/435 ms to end, start offset by 4.375/4.375 ms.
+               Executor memory:  12489K bytes avg, 12489K bytes max (seg0:xzhangmac).
+               ->  Redistribute Motion 8:8  (slice1; segments: 8)  (cost=0.00..449.41 rows=6210 width=4)
                      Hash Key: d
-                     Rows out:  Avg 500000.0 rows x 2 workers at destination.  Max 500000 rows (seg0) with 8.472 ms to first row, 1049 ms to end, start offset by 1.157 ms.
-                     ->  Table Scan on bigt  (cost=0.00..444.58 rows=500588 width=4)
-                           Rows out:  Avg 500000.0 rows x 2 workers.  Max 500000 rows (seg0) with 2.335 ms to first row, 356 ms to end, start offset by 3.593 ms.
+                     Rows out:  Avg 12500.0 rows x 8 workers at destination.  Max/Last(seg1:xzhangmac/seg1:xzhangmac) 12502/12502 rows with 246/246 ms to first row, 400/400 ms to end, start offset by 12/12 ms.
+                     ->  HashAggregate  (cost=0.00..449.33 rows=6210 width=4)
+                           Group By: d
+                           Rows out:  Avg 12500.0 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg2:xzhangmac) 12500/12500 rows with 243/356 ms to first row, 269/376 ms to end, start offset by 4.374/18 ms.
+                           Executor memory:  12681K bytes avg, 12681K bytes max (seg0:xzhangmac).
+                           ->  Table Scan on bigt  (cost=0.00..433.20 rows=125000 width=4)
+                                 Rows out:  Avg 125000.0 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg2:xzhangmac) 125000/125000 rows with 11/24 ms to first row, 127/212 ms to end, start offset by 11/27 ms.
  Slice statistics:
-   (slice0)    Executor memory: 159K bytes.
-   (slice1)    Executor memory: 199K bytes avg x 2 workers, 199K bytes max (seg0).
-   (slice2)  * Executor memory: 2859K bytes avg x 2 workers, 2859K bytes max (seg0).  Work_mem: 2585K bytes max, 9799K bytes wanted.
+   (slice0)    Executor memory: 331K bytes.
+   (slice1)    Executor memory: 13015K bytes avg x 8 workers, 13015K bytes max (seg0:xzhangmac).
+   (slice2)    Executor memory: 12771K bytes avg x 8 workers, 12771K bytes max (seg0:xzhangmac).
  Statement statistics:
-   Memory used: 2560K bytes
-   Memory wanted: 10198K bytes
- Settings:  gp_enable_agg_distinct=off; optimizer=on; optimizer_segments=3
- Total runtime: 3480.749 ms
-(23 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8; gp_enable_agg_distinct=off
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (16/16/0); dispatcher time(total/connection/dispatch data): (0.279 ms/0.000 ms/0.142 ms).
+   dispatch data time(max/min/avg): (0.018 ms/0.005 ms/0.009 ms); consume executor data time(max/min/avg): (0.049 ms/0.008 ms/0.018 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (4103280.000/4103280/4103280); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 497.994 ms
+(31 rows)
 
 set statement_mem=128000;
 set gp_enable_agg_distinct=on;
 set gp_eager_one_phase_agg=off;
 -- Rescan on Agg (with Material in the inner side of nestloop)
--- start_ignore
--- Known_opt_diff: This test is only here for the planner. It doesn't exercise eagerfree in ORCA plans
--- end_ignore
 set enable_nestloop=on;
 set enable_hashjoin=off;
 select t1.*, t2.* from
@@ -194,94 +228,105 @@ select t1.*, t2.* from
 where t1.d = t2.d;
      d      | count |     d      | sum 
 ------------+-------+------------+-----
- 01-13-2011 |     5 | 01-13-2011 |  10
- 01-11-2011 |     5 | 01-11-2011 |   0
- 01-15-2011 |     5 | 01-15-2011 |  20
- 01-07-2011 |     5 | 01-07-2011 |  30
  01-01-2011 |     5 | 01-01-2011 |   0
- 01-03-2011 |     5 | 01-03-2011 |  10
- 01-05-2011 |     5 | 01-05-2011 |  20
  01-09-2011 |     5 | 01-09-2011 |  40
- 01-19-2011 |     5 | 01-19-2011 |  40
  01-17-2011 |     5 | 01-17-2011 |  30
- 01-18-2011 |     5 | 01-18-2011 |  35
- 01-12-2011 |     5 | 01-12-2011 |   5
  01-04-2011 |     5 | 01-04-2011 |  15
- 01-08-2011 |     5 | 01-08-2011 |  35
+ 01-12-2011 |     5 | 01-12-2011 |   5
+ 01-20-2011 |     5 | 01-20-2011 |  45
  01-02-2011 |     5 | 01-02-2011 |   5
  01-10-2011 |     5 | 01-10-2011 |  45
- 01-14-2011 |     5 | 01-14-2011 |  15
+ 01-18-2011 |     5 | 01-18-2011 |  35
+ 01-07-2011 |     5 | 01-07-2011 |  30
+ 01-15-2011 |     5 | 01-15-2011 |  20
+ 01-08-2011 |     5 | 01-08-2011 |  35
  01-16-2011 |     5 | 01-16-2011 |  25
- 01-20-2011 |     5 | 01-20-2011 |  45
+ 01-05-2011 |     5 | 01-05-2011 |  20
+ 01-13-2011 |     5 | 01-13-2011 |  10
+ 01-03-2011 |     5 | 01-03-2011 |  10
+ 01-11-2011 |     5 | 01-11-2011 |   0
+ 01-19-2011 |     5 | 01-19-2011 |  40
  01-06-2011 |     5 | 01-06-2011 |  25
+ 01-14-2011 |     5 | 01-14-2011 |  15
 (20 rows)
 
 explain analyze select t1.*, t2.* from
 (select d, count(*) from smallt group by d) as t1, (select d, sum(i) from smallt group by d) as t2
 where t1.d = t2.d;
-                                                                                QUERY PLAN                                                                                 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Gather Motion 2:1  (slice3; segments: 2)  (cost=0.00..862.02 rows=20 width=24)
-   Rows out:  20 rows at destination with 32 ms to first row, 33 ms to end, start offset by 1.248 ms.
-   ->  Hash Join  (cost=0.00..862.02 rows=10 width=24)
+                                                                                                                                         QUERY PLAN                                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Gather Motion 8:1  (slice3; segments: 8)  (cost=0.00..862.01 rows=20 width=24)
+   Rows out:  20 rows at destination with 49 ms to end, start offset by 0.955/0.955 ms.
+   ->  Hash Join  (cost=0.00..862.01 rows=3 width=24)
          Hash Cond: public.smallt.d = public.smallt.d
-         Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 28 ms to first row, 30 ms to end, start offset by 2.633 ms.
-         Executor memory:  1K bytes avg, 1K bytes max (seg0).
-         Work_mem used:  1K bytes avg, 1K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-         (seg0)   Hash chain length 1.0 avg, 1 max, using 10 of 131111 buckets.
-         ->  HashAggregate  (cost=0.00..431.01 rows=10 width=12)
+         Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 38/42 ms to first row, 39/43 ms to end, start offset by 10/7.087 ms.
+         Executor memory:  1K bytes avg, 1K bytes max (seg0:xzhangmac).
+         Work_mem used:  1K bytes avg, 1K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+         (seg0)   Hash chain length 1.0 avg, 1 max, using 3 of 131111 buckets.
+         ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
                Group By: public.smallt.d
-               Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 1.442 ms to first row, 3.036 ms to end, start offset by 29 ms.
-               Executor memory:  3161K bytes avg, 3161K bytes max (seg0).
-               ->  Redistribute Motion 2:2  (slice1; segments: 2)  (cost=0.00..431.01 rows=10 width=12)
-                     Hash Key: public.smallt.d
-                     Rows out:  Avg 10.0 rows x 2 workers at destination.  Max 10 rows (seg0) with 0.050 ms to first row, 0.057 ms to end, start offset by 30 ms.
-                     ->  Result  (cost=0.00..431.01 rows=10 width=12)
-                           Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 5.577 ms to first row, 5.650 ms to end, start offset by 19 ms.
-                           ->  GroupAggregate  (cost=0.00..431.01 rows=10 width=12)
-                                 Group By: public.smallt.d
-                                 Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 5.567 ms to first row, 5.634 ms to end, start offset by 19 ms.
-                                 ->  Sort  (cost=0.00..431.01 rows=50 width=4)
-                                       Sort Key: public.smallt.d
-                                       Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 5.540 ms to first row, 5.562 ms to end, start offset by 19 ms.
-                                       Executor memory:  29K bytes avg, 29K bytes max (seg0).
-                                       Work_mem used:  29K bytes avg, 29K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-                                       ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=4)
-                                             Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 5.346 ms to first row, 5.383 ms to end, start offset by 19 ms.
-         ->  Hash  (cost=431.01..431.01 rows=10 width=12)
-               Rows in:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 26 ms to end, start offset by 2.983 ms.
-               ->  HashAggregate  (cost=0.00..431.01 rows=10 width=12)
-                     Group By: public.smallt.d
-                     Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 24 ms to first row, 26 ms to end, start offset by 2.984 ms.
-                     Executor memory:  3161K bytes avg, 3161K bytes max (seg0).
-                     ->  Redistribute Motion 2:2  (slice2; segments: 2)  (cost=0.00..431.01 rows=10 width=12)
+               Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg0:xzhangmac) 3/3 rows with 1.511/1.511 ms to first row, 1.515/1.515 ms to end, start offset by 47/47 ms.
+               ->  Sort  (cost=0.00..431.00 rows=3 width=12)
+                     Sort Key: public.smallt.d
+                     Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg0:xzhangmac) 3/3 rows with 1.505/1.505 ms to first row, 1.506/1.506 ms to end, start offset by 47/47 ms.
+                     Executor memory:  29K bytes avg, 29K bytes max (seg0:xzhangmac).
+                     Work_mem used:  29K bytes avg, 29K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                     ->  Redistribute Motion 8:8  (slice1; segments: 8)  (cost=0.00..431.00 rows=3 width=12)
                            Hash Key: public.smallt.d
-                           Rows out:  Avg 10.0 rows x 2 workers at destination.  Max 10 rows (seg0) with 21 ms to first row, 23 ms to end, start offset by 3.624 ms.
-                           ->  Result  (cost=0.00..431.01 rows=10 width=12)
-                                 Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 6.176 ms to first row, 7.762 ms to end, start offset by 18 ms.
-                                 ->  HashAggregate  (cost=0.00..431.01 rows=10 width=12)
+                           Rows out:  Avg 2.5 rows x 8 workers at destination.  Max/Last(seg0:xzhangmac/seg7:xzhangmac) 3/2 rows with 0.015/0.009 ms to first row, 1.469/1.470 ms to end, start offset by 47/48 ms.
+                           ->  Result  (cost=0.00..431.00 rows=3 width=12)
+                                 Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg4:xzhangmac) 4/2 rows with 12/16 ms to end, start offset by 32/29 ms.
+                                 ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
                                        Group By: public.smallt.d
-                                       Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 6.163 ms to first row, 7.745 ms to end, start offset by 18 ms.
-                                       Executor memory:  3161K bytes avg, 3161K bytes max (seg0).
-                                       ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=8)
-                                             Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 4.436 ms to first row, 4.472 ms to end, start offset by 19 ms.
+                                       Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg4:xzhangmac) 4/2 rows with 12/16 ms to end, start offset by 32/29 ms.
+                                       ->  Sort  (cost=0.00..431.00 rows=13 width=4)
+                                             Sort Key: public.smallt.d
+                                             Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg4:xzhangmac) 20/10 rows with 12/16 ms to end, start offset by 32/29 ms.
+                                             Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                                             Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                                             ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=4)
+                                                   Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg4:xzhangmac) 20/10 rows with 12/16 ms to end, start offset by 32/29 ms.
+         ->  Hash  (cost=431.00..431.00 rows=3 width=12)
+               Rows in:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 37/40 ms to end, start offset by 10/7.264 ms.
+               ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
+                     Group By: public.smallt.d
+                     Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 37/40 ms to end, start offset by 10/7.265 ms.
+                     ->  Sort  (cost=0.00..431.00 rows=3 width=12)
+                           Sort Key: public.smallt.d
+                           Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 36/40 ms to end, start offset by 10/7.265 ms.
+                           Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                           Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                           ->  Redistribute Motion 8:8  (slice2; segments: 8)  (cost=0.00..431.00 rows=3 width=12)
+                                 Hash Key: public.smallt.d
+                                 Rows out:  Avg 2.5 rows x 8 workers at destination.  Max/Last(seg0:xzhangmac/seg6:xzhangmac) 3/3 rows with 13/19 ms to first row, 36/40 ms to end, start offset by 11/7.339 ms.
+                                 ->  Result  (cost=0.00..431.00 rows=3 width=12)
+                                       Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg2:xzhangmac) 4/4 rows with 13/13 ms to first row, 14/14 ms to end, start offset by 9.763/9.763 ms.
+                                       ->  HashAggregate  (cost=0.00..431.00 rows=3 width=12)
+                                             Group By: public.smallt.d
+                                             Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg2:xzhangmac) 4/4 rows with 13/13 ms to first row, 14/14 ms to end, start offset by 9.763/9.763 ms.
+                                             Executor memory:  3161K bytes avg, 3161K bytes max (seg0:xzhangmac).
+                                             ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=8)
+                                                   Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg2:xzhangmac) 20/20 rows with 11/11 ms to end, start offset by 10/10 ms.
  Slice statistics:
-   (slice0)    Executor memory: 227K bytes.
-   (slice1)    Executor memory: 263K bytes avg x 2 workers, 263K bytes max (seg0).  Work_mem: 29K bytes max.
-   (slice2)    Executor memory: 3395K bytes avg x 2 workers, 3395K bytes max (seg0).
-   (slice3)    Executor memory: 4963K bytes avg x 2 workers, 4963K bytes max (seg0).  Work_mem: 1K bytes max.
+   (slice0)    Executor memory: 364K bytes.
+   (slice1)    Executor memory: 431K bytes avg x 8 workers, 431K bytes max (seg0:xzhangmac).  Work_mem: 61K bytes max.
+   (slice2)    Executor memory: 3563K bytes avg x 8 workers, 3563K bytes max (seg0:xzhangmac).
+   (slice3)    Executor memory: 1843K bytes avg x 8 workers, 1843K bytes max (seg0:xzhangmac).  Work_mem: 61K bytes max.
  Statement statistics:
-   Memory used: 128000K bytes
- Settings:  enable_hashjoin=off; enable_nestloop=on; gp_enable_agg_distinct=on; optimizer=on; optimizer_segments=3
- Total runtime: 34.720 ms
-(53 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8; enable_hashjoin=off; enable_nestloop=on; gp_enable_agg_distinct=on
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (24/24/0); dispatcher time(total/connection/dispatch data): (0.374 ms/0.000 ms/0.205 ms).
+   dispatch data time(max/min/avg): (0.024 ms/0.005 ms/0.008 ms); consume executor data time(max/min/avg): (0.019 ms/0.004 ms/0.010 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (352.000/288/544); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 51.323 ms
+(67 rows)
 
 set enable_nestloop=off;
 set enable_hashjoin=on;
 -- Rescan on Agg (with Material in the inner side of nestloop)
--- start_ignore
--- Known_opt_diff: This test is only here for the planner. It doesn't exercise eagerfree in ORCA plans
--- end_ignore
 set enable_nestloop=on;
 set enable_hashjoin=off;
 select t1.*, t2.* from
@@ -289,61 +334,67 @@ select t1.*, t2.* from
 where t1.i = t2.i;
  i | count | i | sum 
 ---+-------+---+-----
- 1 |    10 | 1 |  10
- 3 |    10 | 3 |  30
  5 |    10 | 5 |  50
+ 6 |    10 | 6 |  60
+ 0 |    10 | 0 |   0
+ 8 |    10 | 8 |  80
  7 |    10 | 7 |  70
+ 1 |    10 | 1 |  10
  9 |    10 | 9 |  90
- 0 |    10 | 0 |   0
- 2 |    10 | 2 |  20
+ 3 |    10 | 3 |  30
  4 |    10 | 4 |  40
- 6 |    10 | 6 |  60
- 8 |    10 | 8 |  80
+ 2 |    10 | 2 |  20
 (10 rows)
 
 explain analyze select t1.*, t2.* from
 (select i, count(*) from smallt group by i) as t1, (select i, sum(i) from smallt group by i) as t2
 where t1.i = t2.i;
-                                                                            QUERY PLAN                                                                            
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Gather Motion 2:1  (slice1; segments: 2)  (cost=0.00..862.01 rows=10 width=24)
-   Rows out:  10 rows at destination with 2.561 ms to first row, 3.151 ms to end, start offset by 0.619 ms.
-   ->  Hash Join  (cost=0.00..862.01 rows=5 width=24)
+                                                                                                                                         QUERY PLAN                                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Gather Motion 8:1  (slice1; segments: 8)  (cost=0.00..862.00 rows=10 width=24)
+   Rows out:  10 rows at destination with 37 ms to first row, 45 ms to end, start offset by 0.587/0.587 ms.
+   ->  Hash Join  (cost=0.00..862.00 rows=2 width=24)
          Hash Cond: public.smallt.i = public.smallt.i
-         Rows out:  Avg 5.0 rows x 2 workers.  Max 5 rows (seg0) with 0.901 ms to first row, 1.808 ms to end, start offset by 1.206 ms.
-         Executor memory:  1K bytes avg, 1K bytes max (seg0).
-         Work_mem used:  1K bytes avg, 1K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-         (seg0)   Hash chain length 1.0 avg, 1 max, using 5 of 262151 buckets.
-         ->  GroupAggregate  (cost=0.00..431.01 rows=5 width=12)
+         Rows out:  Avg 1.2 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 2/1 rows with 35/40 ms to first row, 37/41 ms to end, start offset by 4.501/4.616 ms.
+         Executor memory:  1K bytes avg, 1K bytes max (seg2:xzhangmac).
+         Work_mem used:  1K bytes avg, 1K bytes max (seg2:xzhangmac). Workfile: (0 spilling, 0 reused)
+         (seg2)   Hash chain length 1.0 avg, 1 max, using 2 of 262151 buckets.
+         ->  GroupAggregate  (cost=0.00..431.00 rows=2 width=12)
                Group By: public.smallt.i
-               Rows out:  Avg 5.0 rows x 2 workers.  Max 5 rows (seg0) with 0.144 ms to first row, 0.174 ms to end, start offset by 1.960 ms.
-               ->  Sort  (cost=0.00..431.01 rows=50 width=4)
+               Rows out:  Avg 1.2 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg0:xzhangmac) 2/1 rows with 19/19 ms to end, start offset by 21/21 ms.
+               ->  Sort  (cost=0.00..431.00 rows=13 width=4)
                      Sort Key: public.smallt.i
-                     Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 0.094 ms to first row, 0.107 ms to end, start offset by 2.001 ms.
-                     Executor memory:  29K bytes avg, 29K bytes max (seg0).
-                     Work_mem used:  29K bytes avg, 29K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-                     ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=4)
-                           Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 0.020 ms to first row, 0.037 ms to end, start offset by 2.028 ms.
-         ->  Hash  (cost=431.01..431.01 rows=5 width=12)
-               Rows in:  Avg 5.0 rows x 2 workers.  Max 5 rows (seg0) with 0.254 ms to end, start offset by 1.706 ms.
-               ->  GroupAggregate  (cost=0.00..431.01 rows=5 width=12)
+                     Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg0:xzhangmac) 20/10 rows with 19/19 ms to end, start offset by 21/21 ms.
+                     Executor memory:  29K bytes avg, 29K bytes max (seg0:xzhangmac).
+                     Work_mem used:  29K bytes avg, 29K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                     ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=4)
+                           Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg0:xzhangmac) 20/10 rows with 19/19 ms to end, start offset by 21/21 ms.
+         ->  Hash  (cost=431.00..431.00 rows=2 width=12)
+               Rows in:  Avg 1.2 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 2/1 rows with 15/28 ms to end, start offset by 6.485/6.521 ms.
+               ->  GroupAggregate  (cost=0.00..431.00 rows=2 width=12)
                      Group By: public.smallt.i
-                     Rows out:  Avg 5.0 rows x 2 workers.  Max 5 rows (seg0) with 0.202 ms to first row, 0.236 ms to end, start offset by 1.707 ms.
-                     ->  Sort  (cost=0.00..431.01 rows=50 width=4)
+                     Rows out:  Avg 1.2 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 2/1 rows with 15/28 ms to end, start offset by 6.486/6.522 ms.
+                     ->  Sort  (cost=0.00..431.00 rows=13 width=4)
                            Sort Key: public.smallt.i
-                           Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 0.157 ms to first row, 0.170 ms to end, start offset by 1.737 ms.
-                           Executor memory:  29K bytes avg, 29K bytes max (seg0).
-                           Work_mem used:  29K bytes avg, 29K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-                           ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=4)
-                                 Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 0.054 ms to first row, 0.072 ms to end, start offset by 1.782 ms.
+                           Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 20/10 rows with 15/28 ms to end, start offset by 6.487/6.523 ms.
+                           Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                           Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                           ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=4)
+                                 Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg3:xzhangmac) 20/10 rows with 14/27 ms to first row, 15/27 ms to end, start offset by 6.625/6.708 ms.
  Slice statistics:
-   (slice0)    Executor memory: 159K bytes.
-   (slice1)    Executor memory: 3275K bytes avg x 2 workers, 3275K bytes max (seg0).  Work_mem: 29K bytes max.
+   (slice0)    Executor memory: 223K bytes.
+   (slice1)    Executor memory: 3459K bytes avg x 8 workers, 3459K bytes max (seg0:xzhangmac).  Work_mem: 61K bytes max.
  Statement statistics:
-   Memory used: 128000K bytes
- Settings:  enable_hashjoin=off; enable_nestloop=on; gp_enable_agg_distinct=on; optimizer=on; optimizer_segments=3
- Total runtime: 4.283 ms
-(37 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8; enable_hashjoin=off; enable_nestloop=on; gp_enable_agg_distinct=on
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (8/8/0); dispatcher time(total/connection/dispatch data): (0.171 ms/0.000 ms/0.065 ms).
+   dispatch data time(max/min/avg): (0.025 ms/0.005 ms/0.008 ms); consume executor data time(max/min/avg): (0.042 ms/0.010 ms/0.018 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (352.000/288/544); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 46.381 ms
+(43 rows)
 
 set enable_nestloop=off;
 set enable_hashjoin=on;
@@ -351,75 +402,165 @@ set enable_hashjoin=on;
 select d, count(*) from smallt group by d limit 5; --ignore
      d      | count 
 ------------+-------
- 01-12-2011 |     5
+ 01-05-2011 |     5
+ 01-13-2011 |     5
  01-08-2011 |     5
- 01-10-2011 |     5
- 01-14-2011 |     5
- 01-20-2011 |     5
+ 01-16-2011 |     5
+ 01-06-2011 |     5
 (5 rows)
 
 explain analyze select d, count(*) from smallt group by d limit 5;
-                                                                                   QUERY PLAN                                                                                    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Limit  (cost=0.00..431.01 rows=3 width=12)
-   Rows out:  5 rows with 22 ms to end, start offset by 0.596 ms.
-   ->  Gather Motion 2:1  (slice2; segments: 2)  (cost=0.00..431.01 rows=5 width=12)
-         Rows out:  5 rows at destination with 22 ms to end, start offset by 0.607 ms.
-         ->  Limit  (cost=0.00..431.01 rows=3 width=12)
-               Rows out:  Avg 5.0 rows x 2 workers.  Max 5 rows (seg0) with 20 ms to first row, 22 ms to end, start offset by 1.369 ms.
-               ->  HashAggregate  (cost=0.00..431.01 rows=10 width=12)
+                                                                                                                                         QUERY PLAN                                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Limit  (cost=0.00..431.00 rows=1 width=12)
+   Rows out:  5 rows with 32 ms to end, start offset by 0.594/0.594 ms.
+   ->  Gather Motion 8:1  (slice2; segments: 8)  (cost=0.00..431.00 rows=5 width=12)
+         Rows out:  5 rows at destination with 32 ms to end, start offset by 0.595/0.595 ms.
+         ->  Limit  (cost=0.00..431.00 rows=1 width=12)
+               Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg4:xzhangmac) 3/2 rows with 25/28 ms to end, start offset by 7.166/4.647 ms.
+               ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
                      Group By: d
-                     Rows out:  Avg 5.0 rows x 2 workers.  Max 5 rows (seg0) with 20 ms to first row, 22 ms to end, start offset by 1.377 ms.
-                     Executor memory:  6233K bytes avg, 6233K bytes max (seg0).
-                     ->  Redistribute Motion 2:2  (slice1; segments: 2)  (cost=0.00..431.01 rows=10 width=12)
-                           Hash Key: d
-                           Rows out:  Avg 10.0 rows x 2 workers at destination.  Max 10 rows (seg0) with 7.371 ms to first row, 16 ms to end, start offset by 4.297 ms.
-                           ->  Result  (cost=0.00..431.01 rows=10 width=12)
-                                 Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 2.994 ms to first row, 3.039 ms to end, start offset by 17 ms.
-                                 ->  GroupAggregate  (cost=0.00..431.01 rows=10 width=12)
-                                       Group By: d
-                                       Rows out:  Avg 10.0 rows x 2 workers.  Max 10 rows (seg0) with 2.986 ms to first row, 3.026 ms to end, start offset by 17 ms.
-                                       ->  Sort  (cost=0.00..431.01 rows=50 width=4)
-                                             Sort Key: d
-                                             Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 2.969 ms to first row, 2.983 ms to end, start offset by 17 ms.
-                                             Executor memory:  29K bytes avg, 29K bytes max (seg0).
-                                             Work_mem used:  29K bytes avg, 29K bytes max (seg0). Workfile: (0 spilling, 0 reused)
-                                             ->  Table Scan on smallt  (cost=0.00..431.00 rows=50 width=4)
-                                                   Rows out:  Avg 50.0 rows x 2 workers.  Max 50 rows (seg0) with 2.862 ms to first row, 2.883 ms to end, start offset by 17 ms.
+                     Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg4:xzhangmac) 3/2 rows with 25/28 ms to end, start offset by 7.167/4.648 ms.
+                     ->  Sort  (cost=0.00..431.00 rows=3 width=12)
+                           Sort Key: d
+                           Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg0:xzhangmac/seg4:xzhangmac) 3/2 rows with 25/28 ms to end, start offset by 7.167/4.649 ms.
+                           Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                           Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                           ->  Redistribute Motion 8:8  (slice1; segments: 8)  (cost=0.00..431.00 rows=3 width=12)
+                                 Hash Key: d
+                                 Rows out:  Avg 2.5 rows x 8 workers at destination.  Max/Last(seg0:xzhangmac/seg4:xzhangmac) 3/2 rows with 16/20 ms to first row, 23/27 ms to end, start offset by 9.175/5.755 ms.
+                                 ->  Result  (cost=0.00..431.00 rows=3 width=12)
+                                       Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg0:xzhangmac) 4/2 rows with 18/21 ms to end, start offset by 14/11 ms.
+                                       ->  GroupAggregate  (cost=0.00..431.00 rows=3 width=12)
+                                             Group By: d
+                                             Rows out:  Avg 2.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg0:xzhangmac) 4/2 rows with 18/21 ms to end, start offset by 14/11 ms.
+                                             ->  Sort  (cost=0.00..431.00 rows=13 width=4)
+                                                   Sort Key: d
+                                                   Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg0:xzhangmac) 20/10 rows with 18/21 ms to end, start offset by 14/11 ms.
+                                                   Executor memory:  61K bytes avg, 61K bytes max (seg0:xzhangmac).
+                                                   Work_mem used:  61K bytes avg, 61K bytes max (seg0:xzhangmac). Workfile: (0 spilling, 0 reused)
+                                                   ->  Table Scan on smallt  (cost=0.00..431.00 rows=13 width=4)
+                                                         Rows out:  Avg 12.5 rows x 8 workers.  Max/Last(seg2:xzhangmac/seg1:xzhangmac) 20/10 rows with 17/19 ms to end, start offset by 15/6.208 ms.
  Slice statistics:
-   (slice0)    Executor memory: 159K bytes.
-   (slice1)    Executor memory: 195K bytes avg x 2 workers, 195K bytes max (seg0).  Work_mem: 29K bytes max.
-   (slice2)    Executor memory: 6401K bytes avg x 2 workers, 6403K bytes max (seg1).
+   (slice0)    Executor memory: 223K bytes.
+   (slice1)    Executor memory: 431K bytes avg x 8 workers, 443K bytes max (seg2:xzhangmac).  Work_mem: 61K bytes max.
+   (slice2)    Executor memory: 275K bytes avg x 8 workers, 275K bytes max (seg0:xzhangmac).  Work_mem: 61K bytes max.
  Statement statistics:
-   Memory used: 128000K bytes
- Settings:  enable_hashjoin=on; enable_nestloop=off; gp_enable_agg_distinct=on; optimizer=on; optimizer_segments=3
- Total runtime: 25.585 ms
-(33 rows)
+   Memory used: 131072K bytes
+ Settings:  default_segment_num=8; enable_hashjoin=on; enable_nestloop=off; gp_enable_agg_distinct=on
+ Optimizer status: PQO version 1.611
+ Dispatcher statistics:
+   executors used(total/cached/new connection): (16/16/0); dispatcher time(total/connection/dispatch data): (0.269 ms/0.000 ms/0.136 ms).
+   dispatch data time(max/min/avg): (0.030 ms/0.004 ms/0.008 ms); consume executor data time(max/min/avg): (0.023 ms/0.004 ms/0.011 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms).
+ Data locality statistics:
+   data locality ratio: 1.000; virtual segment number: 8; different host number: 1; virtual segment number per host(avg/min/max): (8/8/8); segment size(avg/min/max): (352.000/288/544); segment size with penalty(avg/min/max): (0.000/0/0); continuity(avg/min/max): (1.000/1.000/1.000).
+ Total runtime: 33.648 ms
+(43 rows)
 
 -- HashJoin
 select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  i |    t    |     d      
 ---+---------+------------
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 0 | text 0  | 01-01-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 13 | 01-04-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 8  | 01-14-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 3  | 01-04-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 13 | 01-14-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 8  | 01-04-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
+ 3 | text 3  | 01-14-2011
  4 | text 4  | 01-05-2011
  4 | text 4  | 01-05-2011
  4 | text 4  | 01-05-2011
@@ -430,46 +571,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  4 | text 4  | 01-05-2011
  4 | text 4  | 01-05-2011
  4 | text 4  | 01-05-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 8 | text 8  | 01-09-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 0 | text 10 | 01-11-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
  4 | text 14 | 01-15-2011
  4 | text 14 | 01-15-2011
  4 | text 14 | 01-15-2011
@@ -480,46 +581,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  4 | text 14 | 01-15-2011
  4 | text 14 | 01-15-2011
  4 | text 14 | 01-15-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 8 | text 3  | 01-19-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 0 | text 5  | 01-01-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
  4 | text 9  | 01-05-2011
  4 | text 9  | 01-05-2011
  4 | text 9  | 01-05-2011
@@ -530,46 +591,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  4 | text 9  | 01-05-2011
  4 | text 9  | 01-05-2011
  4 | text 9  | 01-05-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 8 | text 13 | 01-09-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 0 | text 0  | 01-11-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
- 2 | text 2  | 01-13-2011
  4 | text 4  | 01-15-2011
  4 | text 4  | 01-15-2011
  4 | text 4  | 01-15-2011
@@ -580,46 +601,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  4 | text 4  | 01-15-2011
  4 | text 4  | 01-15-2011
  4 | text 4  | 01-15-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 6 | text 6  | 01-17-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 8 | text 8  | 01-19-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 0 | text 10 | 01-01-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
- 2 | text 12 | 01-03-2011
  4 | text 14 | 01-05-2011
  4 | text 14 | 01-05-2011
  4 | text 14 | 01-05-2011
@@ -630,46 +611,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  4 | text 14 | 01-05-2011
  4 | text 14 | 01-05-2011
  4 | text 14 | 01-05-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 6 | text 1  | 01-07-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 8 | text 3  | 01-09-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 0 | text 5  | 01-11-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
- 2 | text 7  | 01-13-2011
  4 | text 9  | 01-15-2011
  4 | text 9  | 01-15-2011
  4 | text 9  | 01-15-2011
@@ -680,6 +621,96 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  4 | text 9  | 01-15-2011
  4 | text 9  | 01-15-2011
  4 | text 9  | 01-15-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 4  | 01-05-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 14 | 01-15-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 9  | 01-05-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 4 | text 4  | 01-15-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
+ 6 | text 1  | 01-07-2011
  6 | text 11 | 01-17-2011
  6 | text 11 | 01-17-2011
  6 | text 11 | 01-17-2011
@@ -690,36 +721,46 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  6 | text 11 | 01-17-2011
  6 | text 11 | 01-17-2011
  6 | text 11 | 01-17-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 1 | text 1  | 01-02-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 3 | text 3  | 01-04-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
- 5 | text 5  | 01-06-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 6  | 01-07-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 1  | 01-17-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 11 | 01-07-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
+ 6 | text 6  | 01-17-2011
  7 | text 7  | 01-08-2011
  7 | text 7  | 01-08-2011
  7 | text 7  | 01-08-2011
@@ -730,46 +771,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  7 | text 7  | 01-08-2011
  7 | text 7  | 01-08-2011
  7 | text 7  | 01-08-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 9 | text 9  | 01-10-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 1 | text 11 | 01-12-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 3 | text 13 | 01-14-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
- 5 | text 0  | 01-16-2011
  7 | text 2  | 01-18-2011
  7 | text 2  | 01-18-2011
  7 | text 2  | 01-18-2011
@@ -780,46 +781,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  7 | text 2  | 01-18-2011
  7 | text 2  | 01-18-2011
  7 | text 2  | 01-18-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 9 | text 4  | 01-20-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 1 | text 6  | 01-02-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 3 | text 8  | 01-04-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
- 5 | text 10 | 01-06-2011
  7 | text 12 | 01-08-2011
  7 | text 12 | 01-08-2011
  7 | text 12 | 01-08-2011
@@ -830,46 +791,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  7 | text 12 | 01-08-2011
  7 | text 12 | 01-08-2011
  7 | text 12 | 01-08-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 9 | text 14 | 01-10-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 1 | text 1  | 01-12-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 3 | text 3  | 01-14-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
- 5 | text 5  | 01-16-2011
  7 | text 7  | 01-18-2011
  7 | text 7  | 01-18-2011
  7 | text 7  | 01-18-2011
@@ -880,46 +801,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  7 | text 7  | 01-18-2011
  7 | text 7  | 01-18-2011
  7 | text 7  | 01-18-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 9 | text 9  | 01-20-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 1 | text 11 | 01-02-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 3 | text 13 | 01-04-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
- 5 | text 0  | 01-06-2011
  7 | text 2  | 01-08-2011
  7 | text 2  | 01-08-2011
  7 | text 2  | 01-08-2011
@@ -930,46 +811,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  7 | text 2  | 01-08-2011
  7 | text 2  | 01-08-2011
  7 | text 2  | 01-08-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 9 | text 4  | 01-10-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 1 | text 6  | 01-12-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 3 | text 8  | 01-14-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
- 5 | text 10 | 01-16-2011
  7 | text 12 | 01-18-2011
  7 | text 12 | 01-18-2011
  7 | text 12 | 01-18-2011
@@ -980,6 +821,256 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  7 | text 12 | 01-18-2011
  7 | text 12 | 01-18-2011
  7 | text 12 | 01-18-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 7  | 01-08-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 2  | 01-18-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 12 | 01-08-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 7 | text 7  | 01-18-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 12 | 01-03-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 7  | 01-13-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 2  | 01-03-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 12 | 01-13-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 7  | 01-03-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 2 | text 2  | 01-13-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 0 | text 0  | 01-01-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 8 | text 8  | 01-09-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 0 | text 10 | 01-11-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 8 | text 3  | 01-19-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 0 | text 5  | 01-01-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 8 | text 13 | 01-09-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 0 | text 0  | 01-11-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 8 | text 8  | 01-19-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 0 | text 10 | 01-01-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 8 | text 3  | 01-09-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
+ 0 | text 5  | 01-11-2011
  8 | text 13 | 01-19-2011
  8 | text 13 | 01-19-2011
  8 | text 13 | 01-19-2011
@@ -1000,36 +1091,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  0 | text 0  | 01-01-2011
  0 | text 0  | 01-01-2011
  0 | text 0  | 01-01-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 2 | text 2  | 01-03-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 4 | text 4  | 01-05-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
- 6 | text 6  | 01-07-2011
  8 | text 8  | 01-09-2011
  8 | text 8  | 01-09-2011
  8 | text 8  | 01-09-2011
@@ -1050,36 +1111,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  0 | text 10 | 01-11-2011
  0 | text 10 | 01-11-2011
  0 | text 10 | 01-11-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 2 | text 12 | 01-13-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 4 | text 14 | 01-15-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
- 6 | text 1  | 01-17-2011
  8 | text 3  | 01-19-2011
  8 | text 3  | 01-19-2011
  8 | text 3  | 01-19-2011
@@ -1100,36 +1131,6 @@ select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i;
  0 | text 5  | 01-01-2011
  0 | text 5  | 01-01-2011
  0 | text 5  | 01-01-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 2 | text 7  | 01-03-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 4 | text 9  | 01-05-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-2011
- 6 | text 11 | 01-07-

<TRUNCATED>


[2/2] incubator-hawq git commit: HAWQ-148. Add new GUC optimizer_prefer_scalar_dqa_multistage_agg to split scalar DQA into multi-stage aggregates.

Posted by en...@apache.org.
HAWQ-148. Add new GUC optimizer_prefer_scalar_dqa_multistage_agg to split scalar DQA into multi-stage aggregates.

Closes #158


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/74d6057e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/74d6057e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/74d6057e

Branch: refs/heads/master
Commit: 74d6057ee84edd40b3816f40c2db671810b9cfd6
Parents: 9b2f045
Author: Xin Zhang <xz...@pivotal.io>
Authored: Wed Nov 25 16:53:32 2015 -0800
Committer: Entong Shen <sh...@gmail.com>
Committed: Thu Dec 3 13:53:59 2015 -0800

----------------------------------------------------------------------
 .../gpopt/config/CConfigParamMapping.cpp        |    7 +
 src/backend/utils/misc/guc.c                    |   11 +
 src/include/utils/guc.h                         |    1 +
 .../regress/expected/eagerfree_optimizer.out    | 2820 ++++++++++--------
 4 files changed, 1536 insertions(+), 1303 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/74d6057e/src/backend/gpopt/config/CConfigParamMapping.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/config/CConfigParamMapping.cpp b/src/backend/gpopt/config/CConfigParamMapping.cpp
index d36687f..827ae86 100644
--- a/src/backend/gpopt/config/CConfigParamMapping.cpp
+++ b/src/backend/gpopt/config/CConfigParamMapping.cpp
@@ -371,6 +371,13 @@ CConfigParamMapping::SConfigMappingElem CConfigParamMapping::m_elem[] =
 		&optimizer_prune_computed_columns,
 		true,  // m_fNegate
 		GPOS_WSZ_LIT("Prune unused computed columns when pre-processing query")
+		},
+
+		{
+		EopttracePreferScalarDQAMultiStageAgg,
+		&optimizer_prefer_scalar_dqa_multistage_agg,
+		false, // m_fNegate
+		GPOS_WSZ_LIT("Prefer multistage aggregates for scalar distinct qualified aggregate in the optimizer.")
 		}
 };
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/74d6057e/src/backend/utils/misc/guc.c
----------------------------------------------------------------------
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index df56ae3..b82b3cb 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -762,6 +762,7 @@ bool sort_segments_enable;
 bool 		optimizer_multilevel_partitioning;
 bool        optimizer_enable_derive_stats_all_groups;
 bool		optimizer_explain_show_status;
+bool		optimizer_prefer_scalar_dqa_multistage_agg;
 
 /* Security */
 bool		gp_reject_internal_tcp_conn = true;
@@ -4466,6 +4467,16 @@ static struct config_bool ConfigureNamesBool[] =
 		true, NULL, NULL
 	},
 
+	{
+		{"optimizer_prefer_scalar_dqa_multistage_agg", PGC_USERSET, DEVELOPER_OPTIONS,
+		 gettext_noop("Prefer multistage aggregates for scalar distinct qualified aggregate in the optimizer."),
+		 NULL,
+		 GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
+		},
+		&optimizer_prefer_scalar_dqa_multistage_agg,
+		true, NULL, NULL
+	},
+
 	/* End-of-list marker */
 	{
 		{NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/74d6057e/src/include/utils/guc.h
----------------------------------------------------------------------
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 1623ce8..59bd208 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -418,6 +418,7 @@ extern bool sort_segments_enable;
 extern bool optimizer_multilevel_partitioning;
 extern bool optimizer_enable_derive_stats_all_groups;
 extern bool optimizer_explain_show_status;
+extern bool optimizer_prefer_scalar_dqa_multistage_agg;
 
 /**
  * Enable logging of DPE match in optimizer.