drop table if exists smallt; NOTICE: table "smallt" does not exist, skipping create table smallt (i int, t text, d date) distributed by (i); insert into smallt select i%10, 'text ' || (i%15), '2011-01-01'::date + ((i%20) || ' days')::interval from generate_series(0, 99) i; drop table if exists bigt; NOTICE: table "bigt" does not exist, skipping create table bigt (i int, t text, d date) distributed by (i); insert into bigt select i/10, 'text ' || (i/15), '2011-01-01'::date + ((i/20) || ' days')::interval from generate_series(0, 999999) i; drop table if exists smallt2; NOTICE: table "smallt2" does not exist, skipping create table smallt2 (i int, t text, d date) distributed by (i); insert into smallt2 select i%5, 'text ' || (i%10), '2011-01-01'::date + ((i%15) || ' days')::interval from generate_series(0, 49) i; set optimizer_segments = 3; -- HashAgg, Agg select d, count(*) from smallt group by d; d | count ------------+------- 01-16-2011 | 5 01-14-2011 | 5 01-07-2011 | 5 01-10-2011 | 5 01-15-2011 | 5 01-09-2011 | 5 01-19-2011 | 5 01-05-2011 | 5 01-06-2011 | 5 01-03-2011 | 5 01-13-2011 | 5 01-02-2011 | 5 01-17-2011 | 5 01-11-2011 | 5 01-18-2011 | 5 01-12-2011 | 5 01-08-2011 | 5 01-01-2011 | 5 01-04-2011 | 5 01-20-2011 | 5 (20 rows) explain analyze select d, count(*) from smallt group by d; QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------- Gather Motion 3:1 (slice2; segments: 3) (cost=5.20..5.40 rows=20 width=12) (actual time=0.982..1.014 rows=20 loops=1) -> HashAggregate (cost=5.20..5.40 rows=7 width=12) (actual time=0.583..0.617 rows=9 loops=1) Group Key: smallt.d (seg2) Hash chain length 1.3 avg, 2 max, using 7 of 32 buckets; total 0 expansions. -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=4.50..4.90 rows=7 width=12) (actual time=0.327..0.542 rows=9 loops=1) Hash Key: smallt.d -> HashAggregate (cost=4.50..4.50 rows=7 width=12) (actual time=0.130..0.182 rows=10 loops=1) Group Key: smallt.d (seg1) Hash chain length 1.1 avg, 2 max, using 9 of 32 buckets; total 0 expansions. -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) (actual time=0.020..0.055 rows=50 loops=1) (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice2) Executor memory: 138K bytes avg x 3 workers, 138K bytes max (seg0). Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 2.162 ms (16 rows) set statement_mem=2560; select count(*) from (select i, t, d, count(*) from bigt group by i, t, d) tmp; count -------- 133333 (1 row) explain analyze select count(*) from (select i, t, d, count(*) from bigt group by i, t, d) tmp; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------- Aggregate (cost=23896.20..23896.21 rows=1 width=8) (actual time=491.631..491.631 rows=1 loops=1) -> Gather Motion 3:1 (slice1; segments: 3) (cost=23896.14..23896.19 rows=1 width=8) (actual time=474.563..491.612 rows=3 loops=1) -> Aggregate (cost=23896.14..23896.15 rows=1 width=8) (actual time=474.293..474.293 rows=1 loops=1) -> Subquery Scan on tmp (cost=21640.56..23645.52 rows=33416 width=0) (actual time=416.937..464.573 rows=44568 loops=1) -> HashAggregate (cost=21640.56..22643.04 rows=33416 width=48) (actual time=416.936..451.297 rows=44568 loops=1) Group Key: bigt.i, bigt.t, bigt.d (seg0) 44568 groups total in 32 batches; 1 overflows; 44568 spill groups. (seg0) Hash chain length 3.3 avg, 14 max, using 23361 of 24576 buckets; total 1 expansions. -> Seq Scan on bigt (cost=0.00..11615.78 rows=334160 width=18) (actual time=0.042..59.788 rows=333490 loops=1) (slice0) Executor memory: 386K bytes. (slice1) * Executor memory: 3004K bytes avg x 3 workers, 3004K bytes max (seg0). Work_mem: 2361K bytes max, 4738K bytes wanted. Memory used: 2560kB Memory wanted: 5237kB Optimizer: Postgres query optimizer Total runtime: 492.921 ms (15 rows) set statement_mem=128000; -- DQA set gp_enable_agg_distinct=off; set gp_eager_one_phase_agg=on; select count(distinct d) from smallt; count ------- 20 (1 row) explain analyze select count(distinct d) from smallt; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------- Aggregate (cost=8.25..8.26 rows=1 width=8) (actual time=0.782..0.783 rows=1 loops=1) -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..8.00 rows=100 width=4) (actual time=0.338..0.651 rows=100 loops=1) -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) (actual time=0.012..0.033 rows=50 loops=1) (slice0) Executor memory: 322K bytes. Work_mem: 33K bytes max. (slice1) Executor memory: 46K bytes avg x 3 workers, 46K bytes max (seg0). Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 1.348 ms (8 rows) set statement_mem=2560; select count(distinct d) from bigt; count ------- 50000 (1 row) explain analyze select count(distinct d) from bigt; QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------- Aggregate (cost=54221.10..54221.11 rows=1 width=8) (actual time=4936.204..4936.205 rows=1 loops=1) -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..51714.90 rows=1002478 width=4) (actual time=1.474..1249.805 rows=1000000 loops=1) -> Seq Scan on bigt (cost=0.00..11615.78 rows=334160 width=4) (actual time=0.037..141.126 rows=333490 loops=1) (slice0) * Executor memory: 2966K bytes. Work_mem: 2649K bytes max, 23514K bytes wanted. (slice1) Executor memory: 70K bytes avg x 3 workers, 70K bytes max (seg0). Memory used: 2560kB Memory wanted: 23713kB Optimizer: Postgres query optimizer Total runtime: 4936.653 ms (9 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 (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; d | count | d | sum ------------+-------+------------+----- 01-15-2011 | 5 | 01-15-2011 | 20 01-09-2011 | 5 | 01-09-2011 | 40 01-19-2011 | 5 | 01-19-2011 | 40 01-05-2011 | 5 | 01-05-2011 | 20 01-06-2011 | 5 | 01-06-2011 | 25 01-03-2011 | 5 | 01-03-2011 | 10 01-13-2011 | 5 | 01-13-2011 | 10 01-02-2011 | 5 | 01-02-2011 | 5 01-17-2011 | 5 | 01-17-2011 | 30 01-11-2011 | 5 | 01-11-2011 | 0 01-18-2011 | 5 | 01-18-2011 | 35 01-12-2011 | 5 | 01-12-2011 | 5 01-08-2011 | 5 | 01-08-2011 | 35 01-01-2011 | 5 | 01-01-2011 | 0 01-04-2011 | 5 | 01-04-2011 | 15 01-20-2011 | 5 | 01-20-2011 | 45 01-16-2011 | 5 | 01-16-2011 | 25 01-14-2011 | 5 | 01-14-2011 | 15 01-07-2011 | 5 | 01-07-2011 | 30 01-10-2011 | 5 | 01-10-2011 | 45 (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 3:1 (slice3; segments: 3) (cost=10.40..17.25 rows=20 width=24) (actual time=1.963..2.031 rows=20 loops=1) -> Nested Loop (cost=10.40..17.25 rows=7 width=24) (actual time=1.532..1.654 rows=9 loops=1) Join Filter: public.smallt.d = public.smallt.d -> HashAggregate (cost=5.20..5.40 rows=7 width=12) (actual time=0.054..0.070 rows=9 loops=1) Group Key: public.smallt.d (seg2) Hash chain length 1.3 avg, 2 max, using 7 of 32 buckets; total 0 expansions. -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=4.50..4.90 rows=7 width=12) (actual time=0.008..0.017 rows=9 loops=1) Hash Key: public.smallt.d -> HashAggregate (cost=4.50..4.50 rows=7 width=12) (actual time=0.079..0.121 rows=10 loops=1) Group Key: public.smallt.d (seg1) Hash chain length 1.1 avg, 2 max, using 9 of 32 buckets; total 0 expansions. -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) (actual time=0.017..0.034 rows=50 loops=1) -> Materialize (cost=5.20..5.70 rows=7 width=12) (actual time=0.147..0.148 rows=8 loops=10) -> HashAggregate (cost=5.20..5.40 rows=7 width=12) (actual time=1.342..1.379 rows=9 loops=1) Group Key: public.smallt.d (seg2) Hash chain length 1.3 avg, 2 max, using 7 of 32 buckets; total 0 expansions. -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=4.50..4.90 rows=7 width=12) (actual time=0.178..1.292 rows=9 loops=1) Hash Key: public.smallt.d -> HashAggregate (cost=4.50..4.50 rows=7 width=12) (actual time=0.088..0.126 rows=10 loops=1) Group Key: public.smallt.d (seg1) Hash chain length 1.1 avg, 2 max, using 9 of 32 buckets; total 0 expansions. -> Seq Scan on smallt smallt_1 (cost=0.00..4.00 rows=34 width=8) (actual time=0.017..0.043 rows=50 loops=1) (slice0) Executor memory: 514K bytes. (slice1) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice2) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice3) Executor memory: 218K bytes avg x 3 workers, 218K bytes max (seg0). Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 3.272 ms (29 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 (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; i | count | i | sum ---+-------+---+----- 1 | 10 | 1 | 10 0 | 10 | 0 | 0 2 | 10 | 2 | 20 8 | 10 | 8 | 80 9 | 10 | 9 | 90 5 | 10 | 5 | 50 6 | 10 | 6 | 60 7 | 10 | 7 | 70 4 | 10 | 4 | 40 3 | 10 | 3 | 30 (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 3:1 (slice1; segments: 3) (cost=9.00..10.92 rows=10 width=24) (actual time=0.691..0.711 rows=10 loops=1) -> Nested Loop (cost=9.00..10.92 rows=4 width=24) (actual time=0.263..0.341 rows=5 loops=1) Join Filter: public.smallt.i = public.smallt.i -> HashAggregate (cost=4.50..4.60 rows=4 width=12) (actual time=0.062..0.076 rows=5 loops=1) Group Key: public.smallt.i (seg1) Hash chain length 1.0 avg, 1 max, using 5 of 32 buckets; total 0 expansions. -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) (actual time=0.006..0.024 rows=50 loops=1) -> Materialize (cost=4.50..4.75 rows=4 width=12) (actual time=0.033..0.034 rows=4 loops=6) -> HashAggregate (cost=4.50..4.60 rows=4 width=12) (actual time=0.080..0.102 rows=5 loops=1) Group Key: public.smallt.i (seg1) Hash chain length 1.0 avg, 1 max, using 5 of 32 buckets; total 0 expansions. -> Seq Scan on smallt smallt_1 (cost=0.00..4.00 rows=34 width=4) (actual time=0.012..0.030 rows=50 loops=1) (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 278K bytes avg x 3 workers, 278K bytes max (seg0). Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 1.614 ms (17 rows) set enable_nestloop=off; set enable_hashjoin=on; -- Limit on Agg select d, count(*) from smallt group by d limit 5; --ignore d | count ------------+------- 01-02-2011 | 5 01-11-2011 | 5 01-17-2011 | 5 01-12-2011 | 5 01-18-2011 | 5 (5 rows) explain analyze select d, count(*) from smallt group by d limit 5; QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=5.20..5.35 rows=5 width=12) (actual time=1.918..1.928 rows=5 loops=1) -> Gather Motion 3:1 (slice2; segments: 3) (cost=5.20..5.35 rows=5 width=12) (actual time=1.916..1.925 rows=5 loops=1) -> Limit (cost=5.20..5.25 rows=2 width=12) (actual time=1.617..1.623 rows=5 loops=1) -> HashAggregate (cost=5.20..5.40 rows=7 width=12) (actual time=1.616..1.620 rows=5 loops=1) Group Key: smallt.d -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=4.50..4.90 rows=7 width=12) (actual time=0.539..1.496 rows=9 loops=1) Hash Key: smallt.d -> HashAggregate (cost=4.50..4.50 rows=7 width=12) (actual time=0.087..0.117 rows=10 loops=1) Group Key: smallt.d (seg1) Hash chain length 1.1 avg, 2 max, using 9 of 32 buckets; total 0 expansions. -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) (actual time=0.018..0.044 rows=50 loops=1) (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice2) Executor memory: 170K bytes avg x 3 workers, 170K bytes max (seg0). Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 3.057 ms (17 rows) -- HashJoin select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i order by 1,2,3; 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 01-05-2011 4 | text 14 | 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 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 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 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 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 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 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 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 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-2011 4 | text 9 | 01-15-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 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 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 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 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 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 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 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 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 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 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 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 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 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 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-2011 6 | text 11 | 01-17-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 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 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 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 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 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 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 12 | 01-18-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 01-08-2011 7 | text 2 | 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 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 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 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 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 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 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 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 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-2011 8 | text 13 | 01-19-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 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 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 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 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 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 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 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 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 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-2011 9 | text 14 | 01-20-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 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 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 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 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 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 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 (1000 rows) explain analyze select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) (cost=5.25..20.75 rows=1001 width=15) (actual time=4.408..7.406 rows=1000 loops=1) -> Hash Join (cost=5.25..20.75 rows=334 width=15) (actual time=3.519..6.673 rows=500 loops=1) Hash Cond: t1.i = t2.i (seg1) Hash chain length 10.0 avg, 10 max, using 5 of 524288 buckets. -> Seq Scan on smallt t1 (cost=0.00..4.00 rows=34 width=15) (actual time=0.010..0.023 rows=50 loops=1) -> Hash (cost=4.00..4.00 rows=34 width=4) (actual time=0.054..0.054 rows=50 loops=1) -> Seq Scan on smallt t2 (cost=0.00..4.00 rows=34 width=4) (actual time=0.008..0.029 rows=50 loops=1) (slice0) Executor memory: 322K bytes. (slice1) Executor memory: 4202K bytes avg x 3 workers, 4206K bytes max (seg0). Work_mem: 2K bytes max. Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 7.932 ms (12 rows) -- Rescan on HashJoin --select t1.* from (select t11.* from smallt as t11, smallt as t22 where t11.i = t22.i and t11.i < 2) as t1, -- (select t11.* from smallt as t11, smallt as t22 where t11.d = t22.d and t11.i < 5) as t2; -- Material in SubPlan select smallt2.* from smallt2 where i < (select count(*) from smallt where smallt.i = smallt2.i) order by 1,2,3; i | t | d ---+--------+------------ 0 | text 0 | 01-01-2011 0 | text 0 | 01-01-2011 0 | text 0 | 01-06-2011 0 | text 0 | 01-11-2011 0 | text 0 | 01-11-2011 0 | text 5 | 01-01-2011 0 | text 5 | 01-01-2011 0 | text 5 | 01-06-2011 0 | text 5 | 01-06-2011 0 | text 5 | 01-11-2011 1 | text 1 | 01-02-2011 1 | text 1 | 01-02-2011 1 | text 1 | 01-07-2011 1 | text 1 | 01-12-2011 1 | text 1 | 01-12-2011 1 | text 6 | 01-02-2011 1 | text 6 | 01-02-2011 1 | text 6 | 01-07-2011 1 | text 6 | 01-07-2011 1 | text 6 | 01-12-2011 2 | text 2 | 01-03-2011 2 | text 2 | 01-03-2011 2 | text 2 | 01-08-2011 2 | text 2 | 01-13-2011 2 | text 2 | 01-13-2011 2 | text 7 | 01-03-2011 2 | text 7 | 01-03-2011 2 | text 7 | 01-08-2011 2 | text 7 | 01-08-2011 2 | text 7 | 01-13-2011 3 | text 3 | 01-04-2011 3 | text 3 | 01-04-2011 3 | text 3 | 01-09-2011 3 | text 3 | 01-14-2011 3 | text 3 | 01-14-2011 3 | text 8 | 01-04-2011 3 | text 8 | 01-04-2011 3 | text 8 | 01-09-2011 3 | text 8 | 01-09-2011 3 | text 8 | 01-14-2011 4 | text 4 | 01-05-2011 4 | text 4 | 01-05-2011 4 | text 4 | 01-10-2011 4 | text 4 | 01-15-2011 4 | text 4 | 01-15-2011 4 | text 9 | 01-05-2011 4 | text 9 | 01-05-2011 4 | text 9 | 01-10-2011 4 | text 9 | 01-10-2011 4 | text 9 | 01-15-2011 (50 rows) explain select smallt2.* from smallt2 where i < (select count(*) from smallt where smallt.i = smallt2.i); QUERY PLAN --------------------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=5.10..8.08 rows=17 width=15) -> Hash Join (cost=5.10..8.08 rows=6 width=15) Hash Cond: smallt2.i = "Expr_SUBQUERY".csq_c0 Join Filter: smallt2.i < "Expr_SUBQUERY".csq_c1 -> Seq Scan on smallt2 (cost=0.00..2.50 rows=17 width=15) -> Hash (cost=4.97..4.97 rows=4 width=12) -> Subquery Scan on "Expr_SUBQUERY" (cost=4.75..4.97 rows=4 width=12) -> HashAggregate (cost=4.75..4.88 rows=4 width=12) Filter: smallt.i < count(*) Group Key: smallt.i -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) Optimizer: Postgres query optimizer (12 rows) -- Sort in MergeJoin -- start_ignore -- Known_opt_diff: OPT-3417. Missing feature: Sort Merge Join -- end_ignore set enable_hashjoin=off; set enable_mergejoin=on; select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i and t1.i < 2; 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (200 rows) explain analyze select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i and t1.i < 2; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=9.36..10.06 rows=41 width=15) (actual time=0.888..0.954 rows=200 loops=1) -> Merge Join (cost=9.36..10.06 rows=14 width=15) (actual time=0.117..0.255 rows=200 loops=1) Merge Cond: t1.i = t2.i -> Sort (cost=4.68..4.73 rows=7 width=15) (actual time=0.066..0.073 rows=20 loops=1) Sort Key: t1.i Sort Method: quicksort Memory: 99kB -> Seq Scan on smallt t1 (cost=0.00..4.25 rows=7 width=15) (actual time=0.012..0.026 rows=20 loops=1) Filter: i < 2 -> Sort (cost=4.68..4.73 rows=7 width=4) (actual time=0.049..0.076 rows=191 loops=1) Sort Key: t2.i Sort Method: quicksort Memory: 33kB -> Seq Scan on smallt t2 (cost=0.00..4.25 rows=7 width=4) (actual time=0.007..0.018 rows=20 loops=1) Filter: i < 2 (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 120K bytes avg x 3 workers, 142K bytes max (seg0). Work_mem: 33K bytes max. Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 1.433 ms (18 rows) select t1.* from smallt as t1, smallt as t2 where t1.d = t2.d and t1.i < 2; i | t | d ---+---------+------------ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (100 rows) --start_ignore explain analyze select t1.* from smallt as t1, smallt as t2 where t1.d = t2.d and t1.i < 2; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------- Gather Motion 3:1 (slice2; segments: 3) (cost=14.14..15.94 rows=101 width=15) (actual time=1.341..1.379 rows=100 loops=1) -> Merge Join (cost=14.14..15.94 rows=34 width=15) (actual time=0.793..0.870 rows=100 loops=1) Merge Cond: t1.d = t2.d -> Sort (cost=6.82..6.97 rows=20 width=15) (actual time=0.708..0.715 rows=20 loops=1) Sort Key: t1.d Sort Method: quicksort Memory: 99kB -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..5.05 rows=20 width=15) (actual time=0.654..0.667 rows=20 loops=1) -> Seq Scan on smallt t1 (cost=0.00..4.25 rows=7 width=15) (actual time=0.023..0.036 rows=20 loops=1) Filter: i < 2 -> Sort (cost=7.32..7.57 rows=34 width=4) (actual time=0.079..0.094 rows=106 loops=1) Sort Key: t2.d Sort Method: quicksort Memory: 99kB -> Seq Scan on smallt t2 (cost=0.00..4.00 rows=34 width=4) (actual time=0.012..0.033 rows=50 loops=1) (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 60K bytes avg x 3 workers, 62K bytes max (seg0). (slice2) Executor memory: 158K bytes avg x 3 workers, 158K bytes max (seg0). Work_mem: 33K bytes max. Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 2.362 ms (19 rows) --end_ignore set enable_hashjoin=on; set enable_mergejoin=off; -- ShareInputScan --with my_group_max(i, maximum) as (select i, max(d) from smallt group by i) --select smallt2.* from my_group_max, smallt2 where my_group_max.i = smallt2.i --and smallt2.i < any (select maximum from my_group_max); --explain analyze with my_group_max(i, maximum) as (select i, max(d) from smallt group by i) --select smallt2.* from my_group_max, smallt2 where my_group_max.i = smallt2.i --and smallt2.i < any (select maximum from my_group_max); -- IndexScan create index smallt_d_idx on smallt (d); create index smallt2_d_idx on smallt2 (d); -- 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_hashjoin=off; set enable_nestloop=on; set enable_seqscan=off; set enable_bitmapscan=off; select smallt.* from smallt, smallt2 where smallt.i = smallt2.i and smallt2.d = '2011-01-04'::date and smallt.d = '2011-01-04'::date order by 1,2,3; i | t | d ---+---------+------------ 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 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 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 (20 rows) explain analyze select smallt.* from smallt, smallt2 where smallt.i = smallt2.i and smallt2.d = '2011-01-04'::date and smallt.d = '2011-01-04'::date; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1740.69 rows=4 width=15) (actual time=0.524..0.915 rows=20 loops=1) -> Nested Loop (cost=0.00..1740.69 rows=2 width=15) (actual time=0.107..0.179 rows=20 loops=1) Join Filter: smallt.i = smallt2.i -> Index Scan using smallt_d_idx on smallt (cost=0.00..749.88 rows=2 width=15) (actual time=0.008..0.011 rows=5 loops=1) Index Cond: d = '01-04-2011'::date -> Materialize (cost=0.00..990.53 rows=2 width=4) (actual time=0.019..0.021 rows=4 loops=5) -> Index Scan using smallt2_d_idx on smallt2 (cost=0.00..990.51 rows=2 width=4) (actual time=0.007..0.011 rows=4 loops=1) Index Cond: d = '01-04-2011'::date (slice0) Executor memory: 437K bytes. (slice1) Executor memory: 128K bytes avg x 3 workers, 149K bytes max (seg1). Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 1.672 ms (13 rows) -- IndexOnlyScan explain analyze select *, exists(select 1 from pg_class where oid = c.oid) as dummy from pg_class c; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Seq Scan on pg_class c (cost=10000000000.00..10002979190.50 rows=14872 width=218) (actual time=5.660..10.184 rows=3030 loops=2) SubPlan 1 -> Index Only Scan using pg_class_oid_index on pg_class (cost=0.29..200.30 rows=1 width=0) (never executed) Index Cond: oid = c.oid Heap Fetches: 0 SubPlan 2 -> Materialize (cost=0.29..15397.73 rows=14872 width=4) (actual time=3.828..4.157 rows=3030 loops=2) -> Index Only Scan using pg_class_oid_index on pg_class pg_class_1 (cost=0.29..15323.36 rows=14872 width=4) (actual time=0.024..3.218 rows=3030 loops=2) Heap Fetches: 13752 * (slice0) Executor memory: 1118K bytes. Work_mem: 96K bytes max, 64K bytes wanted. Memory used: 128000kB Memory wanted: 364kB Optimizer: Postgres query optimizer Total runtime: 21.231 ms (14 rows) -- BitmapScan -- 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_indexscan=off; set enable_bitmapscan=on; select smallt.* from smallt, smallt2 where smallt.i = smallt2.i and smallt2.d = '2011-01-04'::date and smallt.d = '2011-01-04'::date order by 1,2,3; i | t | d ---+---------+------------ 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 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 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 (20 rows) explain analyze select smallt.* from smallt, smallt2 where smallt.i = smallt2.i and smallt2.d = '2011-01-04'::date and smallt.d = '2011-01-04'::date; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) (cost=1300.77..1306.19 rows=4 width=15) (actual time=0.621..0.627 rows=20 loops=1) -> Nested Loop (cost=1300.77..1306.19 rows=2 width=15) (actual time=0.138..0.239 rows=20 loops=1) Join Filter: smallt.i = smallt2.i -> Bitmap Heap Scan on smallt (cost=500.39..503.45 rows=2 width=15) (actual time=0.026..0.046 rows=5 loops=1) Recheck Cond: d = '01-04-2011'::date -> Bitmap Index Scan on smallt_d_idx (cost=0.00..500.39 rows=2 width=0) (actual time=0.009..0.009 rows=1 loops=1) Index Cond: d = '01-04-2011'::date -> Materialize (cost=800.38..802.45 rows=2 width=4) (actual time=0.022..0.027 rows=4 loops=5) -> Bitmap Heap Scan on smallt2 (cost=800.38..802.43 rows=2 width=4) (actual time=0.021..0.042 rows=4 loops=1) Recheck Cond: d = '01-04-2011'::date -> Bitmap Index Scan on smallt2_d_idx (cost=0.00..800.38 rows=2 width=0) (actual time=0.006..0.006 rows=1 loops=1) Index Cond: d = '01-04-2011'::date (slice0) Executor memory: 437K bytes. (slice1) Executor memory: 480K bytes avg x 3 workers, 678K bytes max (seg1). Work_mem: 9K bytes max. Memory used: 128000kB Optimizer: Postgres query optimizer Total runtime: 1.456 ms (17 rows) set enable_hashjoin=on; set enable_nestloop=off; set enable_seqscan=on; set enable_indexscan=on; -- SubPlan with my_group_sum(d, total) as (select d, sum(i) from smallt group by d) select smallt2.* from smallt2 where i < all (select total from my_group_sum, smallt, smallt2 as tmp where my_group_sum.d = smallt.d and smallt.d = tmp.d and my_group_sum.d = smallt2.d) and i = 0 order by 1,2,3; --order 1,2,3 i | t | d ---+--------+------------ 0 | text 0 | 01-06-2011 0 | text 5 | 01-06-2011 0 | text 5 | 01-06-2011 (3 rows) select smallt2.* from smallt2 where i < all (select total from (select d, sum(i) as total from smallt group by d) as my_group_sum, smallt, smallt2 as tmp where my_group_sum.d = smallt.d and smallt.d = tmp.d and my_group_sum.d = smallt2.d) and i = 0 order by 1,2,3; --order 1,2,3 i | t | d ---+--------+------------ 0 | text 0 | 01-06-2011 0 | text 5 | 01-06-2011 0 | text 5 | 01-06-2011 (3 rows) -- Nested Subplan drop table if exists eager_free_r; NOTICE: table "eager_free_r" does not exist, skipping drop table if exists eager_free_s; NOTICE: table "eager_free_s" does not exist, skipping drop table if exists eager_free_t; NOTICE: table "eager_free_t" does not exist, skipping create table eager_free_r (r1 int, r2 int, r3 int); NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'r1' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew. create table eager_free_s (s1 int, s2 int, s3 int); NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 's1' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew. create table eager_free_t (t1 int, t2 int, t3 int); NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 't1' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew. insert into eager_free_r select generate_series(1, 20), generate_series(1, 5), generate_series(1, 8); insert into eager_free_s select generate_series(1, 20), generate_series(6, 10), generate_series(1, 4); insert into eager_free_t select generate_series(1, 30), generate_series(1, 6), generate_series(1, 5); select * from eager_free_t where t1 > (select min(r1) from eager_free_r where r2 (Select min(s3) from eager_free_s where s1