blob: 9658e9a8dd6df82d89ab63d4deca3f106033d818 [file]
create schema eagerfree;
set search_path=eagerfree;
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;
analyze smallt;
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;
analyze bigt;
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;
analyze smallt2;
set optimizer_segments = 3;
set gp_motion_cost_per_row = 0.1;
-- 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 (slice1; segments: 3) (cost=3.56..5.03 rows=21 width=12) (actual time=1.756..1.764 rows=20 loops=1)
-> Finalize HashAggregate (cost=3.56..3.63 rows=7 width=12) (actual time=1.663..1.666 rows=7 loops=1)
Group Key: d
Peak Memory Usage: 0 kB
-> Redistribute Motion 3:3 (slice2; segments: 3) (cost=1.50..3.47 rows=18 width=12) (actual time=0.395..1.643 rows=7 loops=1)
Hash Key: d
-> Streaming Partial HashAggregate (cost=1.50..1.68 rows=18 width=12) (actual time=0.000..0.000 rows=10 loops=1)
Group Key: d
Peak Memory Usage: 0 kB
-> Seq Scan on smallt (cost=0.00..1.33 rows=33 width=4) (actual time=0.017..0.024 rows=50 loops=1)
Planning Time: 0.306 ms
(slice0) Executor memory: 40K bytes.
(slice1) Executor memory: 19K bytes avg x 3 workers, 19K bytes max (seg1). Work_mem: 24K bytes max.
(slice2) Executor memory: 38K bytes avg x 3 workers, 38K bytes max (seg0). Work_mem: 24K bytes max.
Memory used: 128000kB
Optimizer: Postgres query optimizer
Execution Time: 2.695 ms
(17 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
----------------------------------------------------------------------------------------------------------------------------------------
Finalize Aggregate (cost=21460.17..21460.18 rows=1 width=8) (actual time=931.342..931.342 rows=1 loops=1)
-> Gather Motion 3:1 (slice1; segments: 3) (cost=21460.14..21460.17 rows=1 width=8) (actual time=668.252..931.329 rows=3 loops=1)
-> Partial Aggregate (cost=21460.14..21460.15 rows=1 width=8) (actual time=813.044..813.044 rows=1 loops=1)
-> HashAggregate (cost=19192.52..20200.35 rows=33595 width=26) (actual time=594.976..656.124 rows=44538 loops=1)
Group Key: bigt.i, bigt.t, bigt.d
Extra Text: (seg0) 44473 groups total in 32 batches; 1 overflows; 44473 spill groups.
(seg0) Hash chain length 2.8 avg, 10 max, using 30386 of 32768 buckets; total 3 expansions.
-> Seq Scan on bigt (cost=0.00..11590.00 rows=333334 width=18) (actual time=0.042..267.687 rows=334620 loops=1)
Planning time: 0.864 ms
(slice0) Executor memory: 123K bytes.
* (slice1) Executor memory: 3605K bytes avg x 3 workers, 3605K bytes max (seg0). Work_mem: 2461K bytes max, 4865K bytes wanted.
Memory used: 2560kB
Memory wanted: 5264kB
Optimizer: Postgres query optimizer
Execution time: 931.980 ms
(16 rows)
set statement_mem=128000;
-- DQA
set gp_enable_agg_distinct=off;
set gp_enable_multiphase_agg=off;
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_enable_multiphase_agg=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 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 (slice1; segments: 3) (cost=7.13..9.56 rows=21 width=24) (actual time=1.607..2.287 rows=20 loops=1)
-> Nested Loop (cost=7.13..8.16 rows=7 width=24) (actual time=1.790..1.809 rows=7 loops=1)
Join Filter: (smallt.d = smallt_1.d)
Rows Removed by Join Filter: 21
-> Finalize HashAggregate (cost=3.56..3.63 rows=7 width=12) (actual time=1.302..1.306 rows=7 loops=1)
Group Key: smallt.d
Peak Memory Usage: 0 kB
-> Redistribute Motion 3:3 (slice2; segments: 3) (cost=1.50..3.47 rows=18 width=12) (actual time=0.659..1.284 rows=7 loops=1)
Hash Key: smallt.d
-> Streaming Partial HashAggregate (cost=1.50..1.68 rows=18 width=12) (actual time=0.000..0.000 rows=10 loops=1)
Group Key: smallt.d
Peak Memory Usage: 0 kB
-> Seq Scan on smallt (cost=0.00..1.33 rows=33 width=4) (actual time=0.015..0.022 rows=50 loops=1)
-> Materialize (cost=3.56..3.74 rows=7 width=12) (actual time=0.069..0.070 rows=4 loops=7)
-> Finalize HashAggregate (cost=3.56..3.63 rows=7 width=12) (actual time=0.480..0.482 rows=7 loops=1)
Group Key: smallt_1.d
Peak Memory Usage: 0 kB
-> Redistribute Motion 3:3 (slice3; segments: 3) (cost=1.50..3.47 rows=18 width=12) (actual time=0.003..0.470 rows=7 loops=1)
Hash Key: smallt_1.d
-> Streaming Partial HashAggregate (cost=1.50..1.68 rows=18 width=12) (actual time=0.000..0.000 rows=10 loops=1)
Group Key: smallt_1.d
Peak Memory Usage: 0 kB
-> Seq Scan on smallt smallt_1 (cost=0.00..1.33 rows=33 width=8) (actual time=0.022..0.033 rows=50 loops=1)
Planning Time: 0.645 ms
(slice0) Executor memory: 80K bytes.
(slice1) Executor memory: 56K bytes avg x 3 workers, 56K bytes max (seg1). Work_mem: 24K bytes max.
(slice2) Executor memory: 38K bytes avg x 3 workers, 38K bytes max (seg0). Work_mem: 24K bytes max.
(slice3) Executor memory: 38K bytes avg x 3 workers, 38K bytes max (seg0). Work_mem: 24K bytes max.
Memory used: 128000kB
Optimizer: Postgres query optimizer
Execution Time: 3.142 ms
(31 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=3.00..3.98 rows=10 width=24) (actual time=0.448..0.454 rows=10 loops=1)
-> Nested Loop (cost=3.00..3.31 rows=3 width=24) (actual time=0.108..0.120 rows=5 loops=1)
Join Filter: (smallt.i = smallt_1.i)
Rows Removed by Join Filter: 10
-> HashAggregate (cost=1.50..1.53 rows=3 width=12) (actual time=0.066..0.068 rows=5 loops=1)
Group Key: smallt.i
Peak Memory Usage: 0 kB
-> Seq Scan on smallt (cost=0.00..1.33 rows=33 width=4) (actual time=0.025..0.032 rows=50 loops=1)
-> Materialize (cost=1.50..1.58 rows=3 width=12) (actual time=0.008..0.009 rows=3 loops=5)
-> HashAggregate (cost=1.50..1.53 rows=3 width=12) (actual time=0.036..0.038 rows=5 loops=1)
Group Key: smallt_1.i
Peak Memory Usage: 0 kB
-> Seq Scan on smallt smallt_1 (cost=0.00..1.33 rows=33 width=4) (actual time=0.003..0.010 rows=50 loops=1)
Planning Time: 0.591 ms
(slice0) Executor memory: 48K bytes.
(slice1) Executor memory: 61K bytes avg x 3 workers, 61K bytes max (seg0). Work_mem: 24K bytes max.
Memory used: 128000kB
Optimizer: Postgres query optimizer
Execution Time: 1.119 ms
(19 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=2.05..3.03 rows=5 width=12) (actual time=0.630..0.639 rows=5 loops=1)
-> Finalize GroupAggregate (cost=2.05..6.17 rows=21 width=12) (actual time=0.629..0.637 rows=5 loops=1)
Group Key: d
-> Gather Motion 3:1 (slice1; segments: 3) (cost=2.05..5.69 rows=54 width=12) (actual time=0.624..0.626 rows=6 loops=1)
Merge Key: d
-> Sort (cost=2.05..2.10 rows=18 width=12) (actual time=0.173..0.178 rows=10 loops=1)
Sort Key: d
Sort Method: quicksort Memory: 81kB
-> Streaming Partial HashAggregate (cost=1.50..1.68 rows=18 width=12) (actual time=0.000..0.000 rows=10 loops=1)
Group Key: d
Extra Text: (seg0) Hash chain length 1.1 avg, 2 max, using 9 of 32 buckets; total 0 expansions.
-> Seq Scan on smallt (cost=0.00..1.33 rows=33 width=4) (actual time=0.025..0.036 rows=50 loops=1)
Planning time: 0.396 ms
(slice0) Executor memory: 54K bytes.
(slice1) Executor memory: 96K bytes avg x 3 workers, 96K bytes max (seg0). Work_mem: 27K bytes max.
Memory used: 128000kB
Optimizer: Postgres query optimizer
Execution time: 1.363 ms
(18 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..10000005911.15 rows=722 width=849) (actual time=8.502..12.992 rows=712 loops=1)
SubPlan 2
-> Index Only Scan using pg_class_oid_index on pg_class (cost=0.15..25.21 rows=722 width=4) (actual time=0.030..4.309 rows=712 loops=1)
Heap Fetches: 429
Planning Time: 3.139 ms
(slice0) Executor memory: 279K bytes.
Memory used: 128000kB
Optimizer: Postgres query optimizer
Execution Time: 16.678 ms
(9 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)
-- Test Subplan with Agg
with my_group_sum(d, total) as (select d, sum(i) from smallt group by d)
select count(*) from smallt2
where 0 < all (select total from my_group_sum, smallt2 as tmp where my_group_sum.d = smallt2.d);
count
-------
43
(1 row)
--start_ignore
explain with my_group_sum(d, total) as (select d, sum(i) from smallt group by d)
select count(*) from smallt2
where 0 < all (select total from my_group_sum, smallt2 as tmp where my_group_sum.d = smallt2.d);
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------
Finalize Aggregate (cost=1.41..1.42 rows=1 width=8)
-> Gather Motion 3:1 (slice1; segments: 3) (cost=1.19..1.40 rows=3 width=8)
-> Partial Aggregate (cost=1.19..1.20 rows=1 width=8)
-> Seq Scan on smallt2 (cost=0.00..1.17 rows=8 width=0)
Filter: (SubPlan 1)
SubPlan 1
-> Nested Loop (cost=10000000009.00..10000000027.17 rows=1050 width=8)
-> Result (cost=9.00..9.42 rows=21 width=12)
Filter: (smallt.d = smallt2.d)
-> HashAggregate (cost=9.00..9.21 rows=21 width=12)
Group Key: smallt.d
-> Materialize (cost=0.00..8.50 rows=100 width=8)
-> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..8.00 rows=100 width=8)
-> Seq Scan on smallt (cost=0.00..1.33 rows=33 width=8)
-> Materialize (cost=0.00..4.75 rows=50 width=0)
-> Broadcast Motion 3:3 (slice3; segments: 3) (cost=0.00..4.50 rows=50 width=0)
-> Seq Scan on smallt2 tmp (cost=0.00..1.17 rows=17 width=0)
Optimizer: Postgres query optimizer
(18 rows)
--end_ignore
-- Nested Subplan
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 Apache Cloudberry 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 Apache Cloudberry 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 Apache Cloudberry 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 1 + g % 20, 1 + g % 5, 1 + g % 8 from generate_series(0, 39) g;
insert into eager_free_s select 1 + g % 20, 6 + g % 5, 1 + g % 4 from generate_series(0, 19) g;
insert into eager_free_t select 1 + g % 30, 1 + g % 6, 1 + g % 5 from generate_series(0, 29) g;
select * from eager_free_t where t1 > (select min(r1) from eager_free_r where r2<t2 and r3 > (Select min(s3) from eager_free_s where s1<r1));
t1 | t2 | t3
----+----+----
3 | 3 | 3
4 | 4 | 4
5 | 5 | 5
6 | 6 | 1
18 | 6 | 3
20 | 2 | 5
21 | 3 | 1
22 | 4 | 2
8 | 2 | 3
9 | 3 | 4
10 | 4 | 5
11 | 5 | 1
12 | 6 | 2
23 | 5 | 3
24 | 6 | 4
26 | 2 | 1
27 | 3 | 2
14 | 2 | 4
15 | 3 | 5
16 | 4 | 1
17 | 5 | 2
28 | 4 | 3
29 | 5 | 4
30 | 6 | 5
(24 rows)
reset optimizer_segments;
reset search_path;
drop schema eagerfree cascade;
NOTICE: drop cascades to 6 other objects
DETAIL: drop cascades to table eagerfree.smallt
drop cascades to table eagerfree.bigt
drop cascades to table eagerfree.smallt2
drop cascades to table eagerfree.eager_free_r
drop cascades to table eagerfree.eager_free_s
drop cascades to table eagerfree.eager_free_t