diff --git a/pkg/sql/opt/exec/execbuilder/testdata/subquery b/pkg/sql/opt/exec/execbuilder/testdata/subquery index 0f8552920032..95d1acd60a13 100644 --- a/pkg/sql/opt/exec/execbuilder/testdata/subquery +++ b/pkg/sql/opt/exec/execbuilder/testdata/subquery @@ -156,27 +156,25 @@ merge-join · · (x, y) · ├── scan · · (x, y) +x │ table a@primary · · │ spans ALL · · - └── scan · · (x, z) +x + └── scan · · (x) +x · table b@primary · · · spans ALL · · query TTTTT EXPLAIN (VERBOSE) SELECT * FROM a WHERE EXISTS(SELECT * FROM b WHERE b.x-1 = a.x) ---- -hash-join · · (x, y) · - │ type semi · · - │ equality (x) = (column5) · · - │ left cols are key · · · - ├── scan · · (x, y) · - │ table a@primary · · - │ spans ALL · · - └── render · · (column5, x, z) · - │ render 0 x - 1 · · - │ render 1 x · · - │ render 2 z · · - └── scan · · (x, z) · -· table b@primary · · -· spans ALL · · +hash-join · · (x, y) · + │ type semi · · + │ equality (x) = (column5) · · + │ left cols are key · · · + ├── scan · · (x, y) · + │ table a@primary · · + │ spans ALL · · + └── render · · (column5) · + │ render 0 x - 1 · · + └── scan · · (x) · +· table b@primary · · +· spans ALL · · query TTTTT EXPLAIN (VERBOSE) SELECT * FROM a WHERE NOT EXISTS(SELECT * FROM b WHERE b.x = a.x) @@ -188,27 +186,25 @@ merge-join · · (x, y) · ├── scan · · (x, y) +x │ table a@primary · · │ spans ALL · · - └── scan · · (x, z) +x + └── scan · · (x) +x · table b@primary · · · spans ALL · · query TTTTT EXPLAIN (VERBOSE) SELECT * FROM b WHERE NOT EXISTS(SELECT * FROM a WHERE x-1 = b.x) ---- -hash-join · · (x, z) · - │ type anti · · - │ equality (x) = (column5) · · - │ left cols are key · · · - ├── scan · · (x, z) · - │ table b@primary · · - │ spans ALL · · - └── render · · (column5, x, y) · - │ render 0 x - 1 · · - │ render 1 x · · - │ render 2 y · · - └── scan · · (x, y) · -· table a@primary · · -· spans ALL · · +hash-join · · (x, z) · + │ type anti · · + │ equality (x) = (column5) · · + │ left cols are key · · · + ├── scan · · (x, z) · + │ table b@primary · · + │ spans ALL · · + └── render · · (column5) · + │ render 0 x - 1 · · + └── scan · · (x) · +· table a@primary · · +· spans ALL · · query TTTTT EXPLAIN (VERBOSE) SELECT ARRAY(SELECT x FROM b) diff --git a/pkg/sql/opt/memo/testdata/logprops/join b/pkg/sql/opt/memo/testdata/logprops/join index 7c0c3710c491..94b0489f4161 100644 --- a/pkg/sql/opt/memo/testdata/logprops/join +++ b/pkg/sql/opt/memo/testdata/logprops/join @@ -363,8 +363,8 @@ semi-join (hash) │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── scan uv - │ ├── columns: u:5(int) v:6(int!null) - │ └── prune: (5,6) + │ ├── columns: u:5(int) + │ └── prune: (5) └── filters └── eq [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1)==(5), (5)==(1)] ├── variable: x [type=int] @@ -387,18 +387,16 @@ semi-join-apply │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── offset - │ ├── columns: u:5(int) v:6(int!null) + │ ├── columns: v:6(int!null) │ ├── outer: (1) │ ├── fd: ()-->(6) - │ ├── prune: (5) │ ├── select - │ │ ├── columns: u:5(int) v:6(int!null) + │ │ ├── columns: v:6(int!null) │ │ ├── outer: (1) │ │ ├── fd: ()-->(6) - │ │ ├── prune: (5) │ │ ├── scan uv - │ │ │ ├── columns: u:5(int) v:6(int!null) - │ │ │ └── prune: (5,6) + │ │ │ ├── columns: v:6(int!null) + │ │ │ └── prune: (6) │ │ └── filters │ │ └── eq [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] │ │ ├── variable: v [type=int] @@ -423,19 +421,17 @@ semi-join-apply │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── semi-join (hash) - │ ├── columns: u:5(int) v:6(int!null) + │ ├── columns: v:6(int!null) │ ├── outer: (1) │ ├── fd: ()-->(6) - │ ├── prune: (5) │ ├── scan uv - │ │ ├── columns: u:5(int) v:6(int!null) - │ │ └── prune: (5,6) + │ │ ├── columns: v:6(int!null) + │ │ └── prune: (6) │ ├── scan mn - │ │ ├── columns: m:8(int!null) n:9(int) + │ │ ├── columns: m:8(int!null) │ │ ├── key: (8) - │ │ ├── fd: (8)-->(9), (9)~~>(8) - │ │ ├── prune: (8,9) - │ │ └── interesting orderings: (+8) (+9,+8) + │ │ ├── prune: (8) + │ │ └── interesting orderings: (+8) │ └── filters │ ├── eq [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ]), fd=(1)==(8), (8)==(1)] │ │ ├── variable: x [type=int] @@ -462,8 +458,8 @@ anti-join (hash) │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── scan uv - │ ├── columns: u:5(int) v:6(int!null) - │ └── prune: (5,6) + │ ├── columns: u:5(int) + │ └── prune: (5) └── filters └── eq [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1)==(5), (5)==(1)] ├── variable: x [type=int] @@ -486,18 +482,16 @@ anti-join-apply │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── offset - │ ├── columns: u:5(int) v:6(int!null) + │ ├── columns: v:6(int!null) │ ├── outer: (1) │ ├── fd: ()-->(6) - │ ├── prune: (5) │ ├── select - │ │ ├── columns: u:5(int) v:6(int!null) + │ │ ├── columns: v:6(int!null) │ │ ├── outer: (1) │ │ ├── fd: ()-->(6) - │ │ ├── prune: (5) │ │ ├── scan uv - │ │ │ ├── columns: u:5(int) v:6(int!null) - │ │ │ └── prune: (5,6) + │ │ │ ├── columns: v:6(int!null) + │ │ │ └── prune: (6) │ │ └── filters │ │ └── eq [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] │ │ ├── variable: v [type=int] @@ -643,8 +637,6 @@ semi-join (hash) │ ├── variable: count_rows [type=int] │ └── const: 1 [type=int] ├── scan uv - │ ├── columns: u:6(int) v:7(int!null) - │ └── prune: (6,7) └── filters (true) # Calculate semi-join-apply cardinality. @@ -666,19 +658,17 @@ semi-join-apply │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── limit - │ ├── columns: u:5(int!null) v:6(int!null) + │ ├── columns: u:5(int!null) │ ├── outer: (1) │ ├── cardinality: [0 - 5] │ ├── fd: ()-->(5) - │ ├── prune: (6) │ ├── select - │ │ ├── columns: u:5(int!null) v:6(int!null) + │ │ ├── columns: u:5(int!null) │ │ ├── outer: (1) │ │ ├── fd: ()-->(5) - │ │ ├── prune: (6) │ │ ├── scan uv - │ │ │ ├── columns: u:5(int) v:6(int!null) - │ │ │ └── prune: (5,6) + │ │ │ ├── columns: u:5(int) + │ │ │ └── prune: (5) │ │ └── filters │ │ └── eq [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1)==(5), (5)==(1)] │ │ ├── variable: x [type=int] @@ -702,8 +692,8 @@ anti-join (hash) │ └── tuple [type=tuple{int}] │ └── const: 2 [type=int] ├── scan uv - │ ├── columns: u:2(int) v:3(int!null) - │ └── prune: (2,3) + │ ├── columns: u:2(int) + │ └── prune: (2) └── filters └── eq [type=bool, outer=(1,2), constraints=(/1: (/NULL - ]; /2: (/NULL - ]), fd=(1)==(2), (2)==(1)] ├── variable: u [type=int] @@ -728,19 +718,17 @@ anti-join-apply │ ├── prune: (1-4) │ └── interesting orderings: (+1) (-3,+4,+1) ├── limit - │ ├── columns: u:5(int!null) v:6(int!null) + │ ├── columns: u:5(int!null) │ ├── outer: (1) │ ├── cardinality: [0 - 5] │ ├── fd: ()-->(5) - │ ├── prune: (6) │ ├── select - │ │ ├── columns: u:5(int!null) v:6(int!null) + │ │ ├── columns: u:5(int!null) │ │ ├── outer: (1) │ │ ├── fd: ()-->(5) - │ │ ├── prune: (6) │ │ ├── scan uv - │ │ │ ├── columns: u:5(int) v:6(int!null) - │ │ │ └── prune: (5,6) + │ │ │ ├── columns: u:5(int) + │ │ │ └── prune: (5) │ │ └── filters │ │ └── eq [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1)==(5), (5)==(1)] │ │ ├── variable: x [type=int] diff --git a/pkg/sql/opt/memo/testdata/stats/join b/pkg/sql/opt/memo/testdata/stats/join index e7832043900b..091eb5a075b0 100644 --- a/pkg/sql/opt/memo/testdata/stats/join +++ b/pkg/sql/opt/memo/testdata/stats/join @@ -325,8 +325,8 @@ semi-join (hash) │ ├── key: (1) │ └── fd: (1)-->(2-4), (3,4)~~>(1,2) ├── scan uv - │ ├── columns: u:5(int) v:6(int!null) - │ └── stats: [rows=10000, distinct(5)=500, null(5)=0, distinct(6)=100, null(6)=0] + │ ├── columns: u:5(int) + │ └── stats: [rows=10000] └── filters └── x = u [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1)==(5), (5)==(1)] @@ -345,8 +345,8 @@ anti-join (hash) │ ├── key: (1) │ └── fd: (1)-->(2-4), (3,4)~~>(1,2) ├── scan uv - │ ├── columns: u:5(int) v:6(int!null) - │ └── stats: [rows=10000, distinct(5)=500, null(5)=0, distinct(6)=100, null(6)=0] + │ ├── columns: u:5(int) + │ └── stats: [rows=10000] └── filters └── x = u [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1)==(5), (5)==(1)] diff --git a/pkg/sql/opt/memo/testdata/stats_quality/tpch b/pkg/sql/opt/memo/testdata/stats_quality/tpch index 5bd3c072184b..ddaad004b63c 100644 --- a/pkg/sql/opt/memo/testdata/stats_quality/tpch +++ b/pkg/sql/opt/memo/testdata/stats_quality/tpch @@ -6363,11 +6363,9 @@ limit │ │ │ ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_nationkey:4(int!null) l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) n_nationkey:33(int!null) n_name:34(char!null) │ │ │ ├── stats: [rows=80661.4919, distinct(1)=9920, null(1)=0, distinct(2)=9986.88851, null(2)=0, distinct(4)=1, null(4)=0, distinct(8)=78046.2829, null(8)=0, distinct(10)=9920, null(10)=0, distinct(19)=2466, null(19)=0, distinct(20)=2554, null(20)=0, distinct(33)=1, null(33)=0, distinct(34)=1, null(34)=0] │ │ │ ├── fd: ()-->(34), (1)-->(2,4), (1)==(10), (10)==(1), (4)==(33), (33)==(4) - │ │ │ ├── semi-join (merge) - │ │ │ │ ├── save-table-name: q21_merge_join_6 + │ │ │ ├── semi-join (hash) + │ │ │ │ ├── save-table-name: q21_semi_join_6 │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) - │ │ │ │ ├── left ordering: +8 - │ │ │ │ ├── right ordering: +37 │ │ │ │ ├── stats: [rows=2000405, distinct(8)=1216823.04, null(8)=0, distinct(10)=9920, null(10)=0, distinct(19)=2466, null(19)=0, distinct(20)=2554, null(20)=0] │ │ │ │ ├── anti-join (merge) │ │ │ │ │ ├── save-table-name: q21_merge_join_7 @@ -6375,7 +6373,6 @@ limit │ │ │ │ │ ├── left ordering: +8 │ │ │ │ │ ├── right ordering: +53 │ │ │ │ │ ├── stats: [rows=2000405, distinct(8)=1216823.04, null(8)=0, distinct(10)=9920, null(10)=0, distinct(19)=2466, null(19)=0, distinct(20)=2554, null(20)=0] - │ │ │ │ │ ├── ordering: +8 │ │ │ │ │ ├── select │ │ │ │ │ │ ├── save-table-name: q21_select_8 │ │ │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) @@ -6398,54 +6395,36 @@ limit │ │ │ │ │ │ └── l1.l_receiptdate > l1.l_commitdate [type=bool, outer=(19,20), constraints=(/19: (/NULL - ]; /20: (/NULL - ])] │ │ │ │ │ ├── select │ │ │ │ │ │ ├── save-table-name: q21_select_10 - │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_partkey:54(int!null) l3.l_suppkey:55(int!null) l3.l_linenumber:56(int!null) l3.l_quantity:57(float!null) l3.l_extendedprice:58(float!null) l3.l_discount:59(float!null) l3.l_tax:60(float!null) l3.l_returnflag:61(char!null) l3.l_linestatus:62(char!null) l3.l_shipdate:63(date!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) l3.l_shipinstruct:66(char!null) l3.l_shipmode:67(char!null) l3.l_comment:68(varchar!null) - │ │ │ │ │ │ ├── stats: [rows=2000405, distinct(53)=1216823.04, null(53)=0, distinct(54)=199240.01, null(54)=0, distinct(55)=9920, null(55)=0, distinct(56)=7, null(56)=0, distinct(57)=50, null(57)=0, distinct(58)=859070.838, null(58)=0, distinct(59)=11, null(59)=0, distinct(60)=9, null(60)=0, distinct(61)=3, null(61)=0, distinct(62)=2, null(62)=0, distinct(63)=2526, null(63)=0, distinct(64)=2466, null(64)=0, distinct(65)=2554, null(65)=0, distinct(66)=4, null(66)=0, distinct(67)=7, null(67)=0, distinct(68)=1893898.05, null(68)=0] - │ │ │ │ │ │ ├── key: (53,56) - │ │ │ │ │ │ ├── fd: (53,56)-->(54,55,57-68) + │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_suppkey:55(int!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) + │ │ │ │ │ │ ├── stats: [rows=2000405, distinct(53)=1216823.04, null(53)=0, distinct(55)=9920, null(55)=0, distinct(64)=2466, null(64)=0, distinct(65)=2554, null(65)=0] │ │ │ │ │ │ ├── ordering: +53 │ │ │ │ │ │ ├── scan l3 │ │ │ │ │ │ │ ├── save-table-name: q21_scan_11 - │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_partkey:54(int!null) l3.l_suppkey:55(int!null) l3.l_linenumber:56(int!null) l3.l_quantity:57(float!null) l3.l_extendedprice:58(float!null) l3.l_discount:59(float!null) l3.l_tax:60(float!null) l3.l_returnflag:61(char!null) l3.l_linestatus:62(char!null) l3.l_shipdate:63(date!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) l3.l_shipinstruct:66(char!null) l3.l_shipmode:67(char!null) l3.l_comment:68(varchar!null) - │ │ │ │ │ │ │ ├── stats: [rows=6001215, distinct(53)=1527270, null(53)=0, distinct(54)=199241, null(54)=0, distinct(55)=9920, null(55)=0, distinct(56)=7, null(56)=0, distinct(57)=50, null(57)=0, distinct(58)=925955, null(58)=0, distinct(59)=11, null(59)=0, distinct(60)=9, null(60)=0, distinct(61)=3, null(61)=0, distinct(62)=2, null(62)=0, distinct(63)=2526, null(63)=0, distinct(64)=2466, null(64)=0, distinct(65)=2554, null(65)=0, distinct(66)=4, null(66)=0, distinct(67)=7, null(67)=0, distinct(68)=4643303, null(68)=0] + │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_suppkey:55(int!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) + │ │ │ │ │ │ │ ├── stats: [rows=6001215, distinct(53)=1527270, null(53)=0, distinct(55)=9920, null(55)=0, distinct(64)=2466, null(64)=0, distinct(65)=2554, null(65)=0] │ │ │ │ │ │ │ │ histogram(53)= 0 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 │ │ │ │ │ │ │ │ <--- 326 ------- 28929 ------- 50503 ------- 89793 ------- 115938 ------- 146944 ------- 176768 ------- 211201 ------- 237860 ------- 266885 ------- 297604 ------- 330021 ------- 365889 ------- 398951 ------- 426117 ------- 451328 ------- 472134 ------- 499590 ------- 529284 ------- 557254 ------- 589154 ------- 619394 ------- 642951 ------- 670113 ------- 692931 ------- 721157 ------- 751687 ------- 777766 ------- 804582 ------- 836740 ------- 868868 ------- 898912 ------- 922500 ------- 946403 ------- 984870 ------- 1007936 ------- 1030117 ------- 1062275 ------- 1093572 ------- 1120709 ------- 1150981 ------- 1182786 ------- 1206406 ------- 1234116 ------- 1260961 ------- 1290502 ------- 1329510 ------- 1355426 ------- 1381313 ------- 1409796 ------- 1445254 ------- 1479233 ------- 1504935 ------- 1531079 ------- 1559650 ------- 1583616 ------- 1617504 ------- 1655749 ------- 1685185 ------- 1718183 ------- 1747716 ------- 1772131 ------- 1802372 ------- 1833315 ------- 1862403 ------- 1897894 ------- 1922819 ------- 1954405 ------- 1979329 ------- 2009859 ------- 2041670 ------- 2070851 ------- 2093828 ------- 2127973 ------- 2167777 ------- 2194883 ------- 2227814 ------- 2262437 ------- 2296353 ------- 2321024 ------- 2346051 ------- 2376257 ------- 2404932 ------- 2446273 ------- 2474081 ------- 2504515 ------- 2535302 ------- 2561413 ------- 2592737 ------- 2616801 ------- 2646112 ------- 2676546 ------- 2702116 ------- 2732454 ------- 2765382 ------- 2799495 ------- 2828866 ------- 2868737 ------- 2910625 ------- 2938464 ------- 2963140 ------- 3003302 ------- 3043264 ------- 3069123 ------- 3095909 ------- 3126693 ------- 3160485 ------- 3196039 ------- 3229504 ------- 3259712 ------- 3286439 ------- 3318852 ------- 3346821 ------- 3370119 ------- 3395204 ------- 3425888 ------- 3448611 ------- 3476130 ------- 3502372 ------- 3529474 ------- 3556390 ------- 3583553 ------- 3612550 ------- 3647875 ------- 3679140 ------- 3702661 ------- 3738017 ------- 3778050 ------- 3806114 ------- 3839074 ------- 3872805 ------- 3905697 ------- 3926212 ------- 3959841 ------- 3997281 ------- 4033861 ------- 4063591 ------- 4097831 ------- 4124807 ------- 4158656 ------- 4195748 ------- 4234274 ------- 4269952 ------- 4298949 ------- 4332806 ------- 4364705 ------- 4398246 ------- 4430695 ------- 4466403 ------- 4494662 ------- 4524420 ------- 4558561 ------- 4601092 ------- 4632871 ------- 4658694 ------- 4690501 ------- 4728066 ------- 4758657 ------- 4788294 ------- 4818597 ------- 4855874 ------- 4890913 ------- 4915366 ------- 4940709 ------- 4972357 ------- 4995298 ------- 5019523 ------- 5043329 ------- 5077376 ------- 5109920 ------- 5136582 ------- 5161152 ------- 5191846 ------- 5219973 ------- 5251015 ------- 5282021 ------- 5312355 ------- 5343207 ------- 5381318 ------- 5416163 ------- 5445382 ------- 5476933 ------- 5509185 ------- 5539237 ------- 5566818 ------- 5588739 ------- 5620481 ------- 5644001 ------- 5667010 ------- 5689476 ------- 5724709 ------- 5755398 ------- 5790598 ------- 5819425 ------- 5846341 ------- 5874656 ------- 5908067 ------- 5933572 ------- 5962659 ------- 5999971 - │ │ │ │ │ │ │ │ histogram(54)= 0 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 1200 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 - │ │ │ │ │ │ │ │ <--- 29 ------- 959 ------- 1845 ------- 3339 ------- 4395 ------- 5525 ------- 6349 ------- 7298 ------- 8340 ------- 9659 ------- 10756 ------- 11642 ------- 12662 ------- 13609 ------- 14663 ------- 15886 ------- 16905 ------- 17902 ------- 18705 ------- 19722 ------- 20827 ------- 21789 ------- 23026 ------- 24201 ------- 25338 ------- 26224 ------- 27182 ------- 28202 ------- 29058 ------- 29919 ------- 31031 ------- 32058 ------- 33058 ------- 34089 ------- 34972 ------- 35929 ------- 36995 ------- 37901 ------- 38814 ------- 39884 ------- 41044 ------- 42034 ------- 43257 ------- 44224 ------- 45196 ------- 46284 ------- 47373 ------- 48352 ------- 49175 ------- 50212 ------- 51359 ------- 52449 ------- 53225 ------- 54295 ------- 55556 ------- 56736 ------- 57984 ------- 59102 ------- 60117 ------- 61111 ------- 62007 ------- 63054 ------- 63923 ------- 64971 ------- 66018 ------- 67114 ------- 67979 ------- 69163 ------- 70178 ------- 71421 ------- 72412 ------- 73432 ------- 74444 ------- 75421 ------- 76307 ------- 77194 ------- 78249 ------- 79229 ------- 80220 ------- 81103 ------- 81841 ------- 83133 ------- 84398 ------- 85526 ------- 86382 ------- 87333 ------- 88313 ------- 89185 ------- 90240 ------- 91121 ------- 91927 ------- 92840 ------- 93562 ------- 94443 ------- 95372 ------- 96282 ------- 97084 ------- 97969 ------- 99105 ------- 100036 ------- 100911 ------- 101928 ------- 102725 ------- 103625 ------- 104599 ------- 105568 ------- 106366 ------- 107318 ------- 108221 ------- 109084 ------- 110150 ------- 111130 ------- 112290 ------- 113258 ------- 114514 ------- 115361 ------- 116860 ------- 118141 ------- 119083 ------- 120205 ------- 121265 ------- 122280 ------- 123210 ------- 124316 ------- 125393 ------- 126419 ------- 127466 ------- 128467 ------- 129550 ------- 130729 ------- 131956 ------- 133065 ------- 134173 ------- 135106 ------- 136339 ------- 137237 ------- 138221 ------- 139139 ------- 140103 ------- 141250 ------- 142059 ------- 142984 ------- 144048 ------- 145243 ------- 146186 ------- 147153 ------- 148099 ------- 149103 ------- 149945 ------- 150918 ------- 151860 ------- 152830 ------- 153863 ------- 154681 ------- 156041 ------- 156862 ------- 157688 ------- 158743 ------- 159676 ------- 160684 ------- 161325 ------- 162394 ------- 163558 ------- 164576 ------- 165819 ------- 166748 ------- 167734 ------- 168986 ------- 170087 ------- 170931 ------- 171933 ------- 172836 ------- 174038 ------- 175011 ------- 175836 ------- 176680 ------- 177741 ------- 178899 ------- 179745 ------- 180631 ------- 181664 ------- 182624 ------- 183639 ------- 184414 ------- 185145 ------- 186261 ------- 187090 ------- 188033 ------- 189049 ------- 190063 ------- 191040 ------- 192115 ------- 193408 ------- 194360 ------- 195506 ------- 196582 ------- 197367 ------- 198465 ------- 199096 ------- 199970 │ │ │ │ │ │ │ │ histogram(55)= 0 600 28805 3000 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 1200 29405 1200 28805 1200 28805 1800 29405 600 29405 1200 29405 600 29405 600 28805 1200 29405 1200 28805 1200 28205 1800 29405 1200 29405 600 29405 1200 29405 1200 29405 600 29405 1200 29405 1200 28805 1800 29405 600 28805 1800 28805 1200 28805 1200 29405 1200 28805 1800 29405 600 28205 1800 29405 600 29405 600 28805 1200 29405 600 28805 1200 29405 600 29405 600 28805 1200 28805 1800 27605 2400 29405 600 28205 1800 29405 2400 29405 600 28805 1800 28205 1800 28805 1200 29405 3000 29405 1200 29405 1800 29405 600 29405 600 28205 1800 29405 600 29405 1800 29405 1800 29405 600 29405 600 28805 1200 28805 1200 29405 1200 28205 1800 29405 600 28805 1200 27605 2400 29405 600 29405 1200 29405 1200 29405 600 29405 1800 29405 1200 28205 1800 29405 600 29405 1200 29405 1200 28805 1200 28205 1800 29405 1800 28805 1200 29405 600 29405 1800 28205 2400 29405 600 28805 1200 28205 2400 28805 1200 27605 2400 28805 1200 29405 600 28805 1800 29405 1800 28805 600 28205 1800 28805 600 29405 600 29405 1200 28805 600 28805 1200 29405 1800 27605 1800 27605 2400 27605 1800 29405 1200 28805 600 28805 1200 29405 1200 28805 2400 28805 1200 28805 600 28205 1200 28205 1200 29405 600 28805 1200 29405 600 28205 2400 28205 1200 29405 600 29405 1800 28805 1200 28205 1200 27605 2400 27605 1800 28805 1200 29405 600 28805 1200 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 28805 1200 29405 1200 28805 600 29405 1800 28205 1200 27605 1800 29405 600 29405 600 29405 1200 28805 1200 28805 1200 28205 1200 29405 1800 28205 1800 28805 600 28805 1200 28205 1200 29405 600 28805 1800 28205 1800 27605 2400 28805 600 29405 600 28805 1200 29405 600 28805 2400 28805 1200 28805 1200 28805 600 28205 1200 28805 1200 29405 600 29405 600 29405 1800 28805 600 28805 600 28805 2400 28805 600 28805 1800 28805 1200 28805 600 27005 2400 29405 600 28205 1800 29405 1200 27605 1800 28805 1200 28805 1200 29405 600 29405 600 29405 600 29405 1200 28805 600 29405 600 27605 2400 28805 1200 29405 600 28805 1800 28805 1800 28205 1200 28805 1200 28805 600 29405 1200 28205 1200 │ │ │ │ │ │ │ │ <--- 6 ------- 59 ------- 106 ------- 147 ------- 189 ------- 219 ------- 272 ------- 335 ------- 387 ------- 433 ------- 485 ------- 539 ------- 600 ------- 653 ------- 698 ------- 749 ------- 806 ------- 855 ------- 904 ------- 961 ------- 1008 ------- 1065 ------- 1115 ------- 1163 ------- 1212 ------- 1270 ------- 1329 ------- 1373 ------- 1417 ------- 1470 ------- 1514 ------- 1566 ------- 1616 ------- 1668 ------- 1719 ------- 1765 ------- 1819 ------- 1871 ------- 1926 ------- 1978 ------- 2030 ------- 2080 ------- 2128 ------- 2173 ------- 2223 ------- 2270 ------- 2318 ------- 2382 ------- 2444 ------- 2491 ------- 2534 ------- 2584 ------- 2632 ------- 2675 ------- 2736 ------- 2781 ------- 2841 ------- 2905 ------- 2940 ------- 2996 ------- 3045 ------- 3084 ------- 3124 ------- 3181 ------- 3224 ------- 3268 ------- 3318 ------- 3362 ------- 3419 ------- 3466 ------- 3515 ------- 3560 ------- 3615 ------- 3669 ------- 3725 ------- 3777 ------- 3825 ------- 3871 ------- 3923 ------- 3980 ------- 4035 ------- 4078 ------- 4135 ------- 4184 ------- 4244 ------- 4296 ------- 4346 ------- 4396 ------- 4444 ------- 4489 ------- 4540 ------- 4575 ------- 4627 ------- 4683 ------- 4731 ------- 4777 ------- 4831 ------- 4900 ------- 4953 ------- 5006 ------- 5061 ------- 5119 ------- 5161 ------- 5208 ------- 5260 ------- 5315 ------- 5361 ------- 5415 ------- 5474 ------- 5529 ------- 5572 ------- 5635 ------- 5689 ------- 5738 ------- 5792 ------- 5835 ------- 5890 ------- 5935 ------- 5997 ------- 6039 ------- 6094 ------- 6151 ------- 6201 ------- 6245 ------- 6291 ------- 6343 ------- 6387 ------- 6437 ------- 6480 ------- 6540 ------- 6580 ------- 6629 ------- 6673 ------- 6718 ------- 6771 ------- 6823 ------- 6878 ------- 6935 ------- 6974 ------- 7017 ------- 7060 ------- 7112 ------- 7170 ------- 7231 ------- 7279 ------- 7329 ------- 7373 ------- 7427 ------- 7477 ------- 7520 ------- 7564 ------- 7616 ------- 7671 ------- 7716 ------- 7760 ------- 7815 ------- 7861 ------- 7917 ------- 7969 ------- 8018 ------- 8063 ------- 8112 ------- 8180 ------- 8229 ------- 8268 ------- 8320 ------- 8376 ------- 8432 ------- 8474 ------- 8522 ------- 8569 ------- 8616 ------- 8664 ------- 8705 ------- 8765 ------- 8814 ------- 8868 ------- 8906 ------- 8948 ------- 8990 ------- 9035 ------- 9090 ------- 9137 ------- 9188 ------- 9241 ------- 9292 ------- 9354 ------- 9411 ------- 9472 ------- 9526 ------- 9569 ------- 9613 ------- 9658 ------- 9708 ------- 9737 ------- 9792 ------- 9838 ------- 9903 ------- 9952 ------- 10000 - │ │ │ │ │ │ │ │ histogram(63)= 0 600 28805 2400 28205 1800 28805 2400 27605 3000 28805 1800 27605 3000 28805 1800 27605 2400 28205 4200 29405 1800 28205 2400 29405 2400 29405 4200 28205 4800 28805 1800 29405 1200 28805 1800 29405 5401 29405 3000 28805 2400 28205 1800 29405 3000 28205 1200 29405 2400 25205 6601 23404 7201 28205 3600 28205 3000 28205 2400 27605 3600 28205 3000 28805 2400 26405 4200 26405 3000 28805 2400 28205 1800 27605 1800 28805 600 28205 3000 27605 5401 27605 3600 28205 4800 25805 3600 27605 2400 28205 3600 25805 3600 27605 3000 26405 4200 28805 3000 28805 3000 28805 1200 25205 4200 25805 3600 25805 3600 26405 3600 28805 1200 27605 2400 27005 3600 28805 1200 27005 4800 28205 3000 25205 4800 28805 4800 28805 600 28205 1200 24604 6601 24604 4800 28205 3600 27605 3600 27005 4200 28205 2400 28205 4200 28805 1200 28205 1800 28205 1200 28205 3000 27005 4800 28805 600 27005 3600 25805 5401 27005 2400 28205 3000 27605 2400 24004 5401 28805 3600 27005 2400 28205 3000 27005 3600 28805 3600 28205 1800 28805 1800 28805 2400 25205 5401 27605 3600 28205 3000 27005 2400 28805 4800 27005 3000 28205 3600 28805 3000 26405 3000 27605 1800 28205 3600 28205 2400 28205 1200 28205 1200 27005 2400 25805 5401 27005 4800 24004 6001 27005 3000 28205 600 27005 3600 28205 2400 25805 3600 26405 4800 25805 3000 27005 3600 27005 3000 27605 3600 27005 5401 28205 2400 27005 3600 28205 600 24004 5401 28205 1200 27605 1800 26405 5401 28205 3600 26405 3600 28205 1200 27005 1800 27005 4800 28205 1200 26405 2400 26405 6601 26405 3000 27605 4200 26405 2400 28205 3000 27005 3600 27605 1200 26405 3600 25205 4800 27605 4200 25205 3000 27605 3000 26405 2400 24604 3600 26405 4800 26405 3600 24604 4200 26405 1800 27605 3600 27605 1800 27605 1200 26405 1800 26405 3000 25805 3000 25805 3000 24004 4200 27005 1800 27605 3000 25805 4200 26405 3600 25205 4200 25205 5401 26405 3600 27005 2400 26405 3000 24604 3000 26405 1800 25805 2400 24004 3600 25805 3000 25805 4200 25805 2400 24004 3600 25805 1800 26405 1800 27005 4200 26405 2400 26405 2400 25805 1800 26405 2400 25805 2400 25805 3000 26405 2400 25805 1200 23404 4200 25205 4200 25805 2400 24004 3000 25205 1800 26405 1800 25205 5401 25205 1800 23404 1800 24604 600 - │ │ │ │ │ │ │ │ <--- '1992-01-03' ------- '1992-02-23' ------- '1992-03-18' ------- '1992-04-07' ------- '1992-04-22' ------- '1992-05-06' ------- '1992-05-19' ------- '1992-05-31' ------- '1992-06-15' ------- '1992-06-29' ------- '1992-07-11' ------- '1992-07-24' ------- '1992-08-05' ------- '1992-08-17' ------- '1992-08-29' ------- '1992-09-10' ------- '1992-09-24' ------- '1992-10-10' ------- '1992-10-22' ------- '1992-11-05' ------- '1992-11-17' ------- '1992-11-28' ------- '1992-12-10' ------- '1992-12-22' ------- '1993-01-02' ------- '1993-01-10' ------- '1993-01-24' ------- '1993-02-06' ------- '1993-02-20' ------- '1993-03-06' ------- '1993-03-19' ------- '1993-04-02' ------- '1993-04-17' ------- '1993-05-02' ------- '1993-05-13' ------- '1993-05-26' ------- '1993-06-07' ------- '1993-06-21' ------- '1993-07-06' ------- '1993-07-19' ------- '1993-08-02' ------- '1993-08-16' ------- '1993-08-30' ------- '1993-09-11' ------- '1993-09-21' ------- '1993-10-07' ------- '1993-10-19' ------- '1993-10-30' ------- '1993-11-11' ------- '1993-11-24' ------- '1993-12-09' ------- '1993-12-24' ------- '1994-01-02' ------- '1994-01-16' ------- '1994-01-30' ------- '1994-02-08' ------- '1994-02-18' ------- '1994-03-04' ------- '1994-03-15' ------- '1994-03-29' ------- '1994-04-10' ------- '1994-04-24' ------- '1994-05-03' ------- '1994-05-13' ------- '1994-05-24' ------- '1994-06-04' ------- '1994-06-13' ------- '1994-06-22' ------- '1994-07-05' ------- '1994-07-16' ------- '1994-07-29' ------- '1994-08-09' ------- '1994-08-22' ------- '1994-09-04' ------- '1994-09-15' ------- '1994-09-29' ------- '1994-10-10' ------- '1994-10-20' ------- '1994-11-03' ------- '1994-11-16' ------- '1994-11-29' ------- '1994-12-11' ------- '1994-12-25' ------- '1995-01-07' ------- '1995-01-18' ------- '1995-01-31' ------- '1995-02-12' ------- '1995-02-23' ------- '1995-03-04' ------- '1995-03-16' ------- '1995-03-29' ------- '1995-04-09' ------- '1995-04-22' ------- '1995-05-05' ------- '1995-05-20' ------- '1995-05-31' ------- '1995-06-13' ------- '1995-06-25' ------- '1995-07-07' ------- '1995-07-22' ------- '1995-08-04' ------- '1995-08-16' ------- '1995-08-29' ------- '1995-09-09' ------- '1995-09-20' ------- '1995-10-02' ------- '1995-10-16' ------- '1995-10-26' ------- '1995-11-03' ------- '1995-11-16' ------- '1995-11-28' ------- '1995-12-08' ------- '1995-12-19' ------- '1995-12-31' ------- '1996-01-12' ------- '1996-01-22' ------- '1996-02-01' ------- '1996-02-10' ------- '1996-02-21' ------- '1996-03-02' ------- '1996-03-13' ------- '1996-03-25' ------- '1996-04-06' ------- '1996-04-18' ------- '1996-04-29' ------- '1996-05-10' ------- '1996-05-21' ------- '1996-06-03' ------- '1996-06-15' ------- '1996-06-28' ------- '1996-07-08' ------- '1996-07-23' ------- '1996-08-05' ------- '1996-08-17' ------- '1996-08-29' ------- '1996-09-10' ------- '1996-09-20' ------- '1996-10-03' ------- '1996-10-15' ------- '1996-10-28' ------- '1996-11-10' ------- '1996-11-22' ------- '1996-12-02' ------- '1996-12-17' ------- '1996-12-26' ------- '1997-01-07' ------- '1997-01-19' ------- '1997-01-29' ------- '1997-02-11' ------- '1997-02-23' ------- '1997-03-07' ------- '1997-03-18' ------- '1997-03-28' ------- '1997-04-11' ------- '1997-04-24' ------- '1997-05-05' ------- '1997-05-15' ------- '1997-05-31' ------- '1997-06-10' ------- '1997-06-23' ------- '1997-07-07' ------- '1997-07-19' ------- '1997-07-30' ------- '1997-08-13' ------- '1997-08-23' ------- '1997-09-07' ------- '1997-09-15' ------- '1997-09-26' ------- '1997-10-06' ------- '1997-10-19' ------- '1997-10-30' ------- '1997-11-10' ------- '1997-11-22' ------- '1997-12-02' ------- '1997-12-14' ------- '1997-12-27' ------- '1998-01-06' ------- '1998-01-18' ------- '1998-01-29' ------- '1998-02-10' ------- '1998-02-24' ------- '1998-03-08' ------- '1998-03-19' ------- '1998-04-01' ------- '1998-04-14' ------- '1998-04-25' ------- '1998-05-06' ------- '1998-05-17' ------- '1998-05-29' ------- '1998-06-10' ------- '1998-06-22' ------- '1998-07-04' ------- '1998-07-15' ------- '1998-07-25' ------- '1998-08-05' ------- '1998-08-18' ------- '1998-09-01' ------- '1998-09-22' ------- '1998-10-13' ------- '1998-11-26' │ │ │ │ │ │ │ │ histogram(64)= 0 600 28805 1200 29405 3600 29405 1200 29405 1800 28205 1800 28805 4200 28205 3600 27005 4800 29405 3600 29405 1800 26405 3600 29405 600 27005 3000 29405 2400 28805 3000 29405 600 25805 4800 28805 3000 27605 2400 27605 5401 28805 3600 28805 2400 27605 3600 28805 6001 28805 3600 27005 3000 25205 4800 28805 4200 28205 1200 28805 3600 28205 4200 27605 3000 28205 3600 28805 1200 27605 3000 28205 1200 27005 3000 28805 1200 28205 1800 28205 1800 27605 1800 27605 3600 27605 3600 25805 5401 28805 4200 28205 1200 28805 3000 28805 4800 28805 1200 28805 4200 28205 2400 26405 3000 28205 3000 28805 2400 28805 2400 27605 5401 28805 1800 28805 2400 28805 1200 28805 3600 27605 5401 25805 5401 28205 3600 27005 3600 28205 3000 28805 1200 28805 4800 28205 2400 24604 5401 28805 3000 27605 2400 28205 4200 27005 3000 28805 3000 28805 600 26405 5401 27605 4800 27005 2400 26405 4200 28805 2400 27605 3000 28205 3000 27005 2400 26405 3600 28205 1200 27605 4200 27605 3000 28205 1800 25805 3000 28205 2400 28205 1200 27005 2400 27605 1800 25805 3600 27005 6601 27005 1800 24004 6001 27605 1800 28205 3000 27605 2400 27605 2400 27605 3000 27605 2400 28205 3000 26405 2400 26405 2400 26405 2400 26405 3600 28205 1800 28205 2400 27605 1200 27605 3000 27605 4800 24604 4200 28205 3000 24604 6001 25805 4200 25205 4200 26405 3000 28205 3000 27605 3000 28205 600 27605 3600 25805 4200 27005 3600 28205 600 28205 3000 28205 1200 25805 3000 28205 1200 27005 3000 28205 1200 24604 4200 27605 1800 28205 4200 27605 2400 26405 4200 27005 2400 27005 1800 27605 3600 25205 4800 27605 2400 28205 1800 27005 3000 27605 3000 25205 4200 25805 3000 27605 3600 25805 3600 27605 1800 24604 4200 25805 3600 26405 1800 27005 3000 27005 1200 27005 3000 24004 5401 26405 1800 25805 2400 27605 1200 27605 600 27005 2400 27605 1200 23404 7201 25205 3600 26405 3000 27605 3600 27605 2400 24604 3600 27605 4200 27605 3600 27005 1200 26405 1200 25805 1800 25205 3600 22804 4800 24604 3000 24004 3600 26405 2400 24604 4800 26405 3000 22204 5401 25805 2400 25205 2400 27005 2400 24604 4200 25205 3000 24004 4800 25205 3000 26405 1200 27005 2400 26405 2400 26405 4800 25205 3000 25805 1800 24004 4800 24604 3000 23404 600 24004 600 │ │ │ │ │ │ │ │ <--- '1992-02-06' ------- '1992-03-13' ------- '1992-03-29' ------- '1992-04-12' ------- '1992-04-24' ------- '1992-05-07' ------- '1992-05-18' ------- '1992-05-30' ------- '1992-06-15' ------- '1992-06-28' ------- '1992-07-10' ------- '1992-07-20' ------- '1992-08-04' ------- '1992-08-17' ------- '1992-08-30' ------- '1992-09-11' ------- '1992-09-25' ------- '1992-10-05' ------- '1992-10-16' ------- '1992-10-29' ------- '1992-11-10' ------- '1992-11-24' ------- '1992-12-05' ------- '1992-12-16' ------- '1992-12-31' ------- '1993-01-15' ------- '1993-01-28' ------- '1993-02-09' ------- '1993-02-21' ------- '1993-03-07' ------- '1993-03-17' ------- '1993-04-03' ------- '1993-04-17' ------- '1993-04-30' ------- '1993-05-12' ------- '1993-05-25' ------- '1993-06-08' ------- '1993-06-23' ------- '1993-07-04' ------- '1993-07-18' ------- '1993-08-02' ------- '1993-08-13' ------- '1993-08-24' ------- '1993-09-08' ------- '1993-09-20' ------- '1993-10-06' ------- '1993-10-22' ------- '1993-11-01' ------- '1993-11-14' ------- '1993-11-24' ------- '1993-12-07' ------- '1993-12-20' ------- '1994-01-01' ------- '1994-01-14' ------- '1994-01-31' ------- '1994-02-14' ------- '1994-02-26' ------- '1994-03-09' ------- '1994-03-22' ------- '1994-04-03' ------- '1994-04-14' ------- '1994-04-23' ------- '1994-05-07' ------- '1994-05-19' ------- '1994-05-31' ------- '1994-06-12' ------- '1994-06-22' ------- '1994-07-03' ------- '1994-07-14' ------- '1994-07-24' ------- '1994-08-04' ------- '1994-08-16' ------- '1994-08-29' ------- '1994-09-08' ------- '1994-09-23' ------- '1994-10-05' ------- '1994-10-16' ------- '1994-10-28' ------- '1994-11-08' ------- '1994-11-19' ------- '1994-12-05' ------- '1994-12-18' ------- '1994-12-29' ------- '1995-01-11' ------- '1995-01-23' ------- '1995-02-05' ------- '1995-02-15' ------- '1995-03-02' ------- '1995-03-14' ------- '1995-03-25' ------- '1995-04-05' ------- '1995-04-17' ------- '1995-04-30' ------- '1995-05-11' ------- '1995-05-23' ------- '1995-06-06' ------- '1995-06-20' ------- '1995-06-30' ------- '1995-07-12' ------- '1995-07-26' ------- '1995-08-07' ------- '1995-08-17' ------- '1995-08-28' ------- '1995-09-09' ------- '1995-09-21' ------- '1995-10-04' ------- '1995-10-14' ------- '1995-10-28' ------- '1995-11-07' ------- '1995-11-18' ------- '1995-11-29' ------- '1995-12-11' ------- '1995-12-21' ------- '1995-12-31' ------- '1996-01-11' ------- '1996-01-21' ------- '1996-01-31' ------- '1996-02-10' ------- '1996-02-24' ------- '1996-03-04' ------- '1996-03-13' ------- '1996-03-25' ------- '1996-04-07' ------- '1996-04-17' ------- '1996-04-28' ------- '1996-05-10' ------- '1996-05-22' ------- '1996-06-02' ------- '1996-06-15' ------- '1996-06-26' ------- '1996-07-09' ------- '1996-07-20' ------- '1996-07-31' ------- '1996-08-11' ------- '1996-08-25' ------- '1996-09-07' ------- '1996-09-21' ------- '1996-10-04' ------- '1996-10-15' ------- '1996-10-27' ------- '1996-11-07' ------- '1996-11-19' ------- '1996-11-30' ------- '1996-12-13' ------- '1996-12-27' ------- '1997-01-06' ------- '1997-01-18' ------- '1997-01-30' ------- '1997-02-12' ------- '1997-02-23' ------- '1997-03-07' ------- '1997-03-19' ------- '1997-03-31' ------- '1997-04-10' ------- '1997-04-23' ------- '1997-05-04' ------- '1997-05-17' ------- '1997-05-29' ------- '1997-06-12' ------- '1997-06-23' ------- '1997-07-04' ------- '1997-07-16' ------- '1997-07-28' ------- '1997-08-07' ------- '1997-08-19' ------- '1997-08-29' ------- '1997-09-10' ------- '1997-09-20' ------- '1997-10-03' ------- '1997-10-13' ------- '1997-10-25' ------- '1997-11-05' ------- '1997-11-17' ------- '1997-12-02' ------- '1997-12-15' ------- '1997-12-26' ------- '1998-01-07' ------- '1998-01-16' ------- '1998-01-25' ------- '1998-02-07' ------- '1998-02-20' ------- '1998-03-06' ------- '1998-03-14' ------- '1998-03-30' ------- '1998-04-08' ------- '1998-04-21' ------- '1998-05-03' ------- '1998-05-15' ------- '1998-05-27' ------- '1998-06-07' ------- '1998-06-19' ------- '1998-07-03' ------- '1998-07-15' ------- '1998-07-26' ------- '1998-08-07' ------- '1998-08-18' ------- '1998-08-30' ------- '1998-09-12' ------- '1998-10-01' ------- '1998-10-30' │ │ │ │ │ │ │ │ histogram(65)= 0 1200 29405 1200 29405 1200 29405 1200 27605 2400 24004 6001 27605 5401 28205 4200 29405 2400 29405 1200 28205 4200 27005 3000 27005 3000 29405 4800 27605 3000 28205 1800 27605 2400 26405 3600 27605 4800 27605 3600 28805 3000 28205 6001 28205 1800 26405 3600 27005 4200 29405 4200 27605 2400 27605 1800 27005 3600 24604 4800 27605 3000 27605 1800 28205 2400 28205 3000 28805 1800 28805 600 28205 1200 27005 2400 27605 1800 26405 3000 26405 4800 28205 2400 28805 1200 28805 3600 28205 3000 28205 1200 28205 1200 25805 4200 28205 4800 26405 6001 28205 1800 27005 3000 28205 1800 27605 3000 28205 1200 28205 2400 27605 3000 28805 1800 26405 4200 28805 1800 24604 4800 28805 1200 27005 3000 26405 7201 25805 4800 28805 4200 28805 3600 25205 4200 27005 4800 27605 3600 28205 4200 28805 1800 27005 2400 28805 1800 27005 3000 28205 2400 28205 2400 27005 2400 25805 3600 26405 3600 28805 3600 25805 4200 28805 4200 28205 2400 26405 3600 27005 2400 27605 3600 28805 600 27005 4800 28205 1800 26405 4800 26405 3600 26405 3000 27005 3000 27605 2400 28205 4200 28805 1800 28205 2400 26405 4200 28805 4200 28205 1800 25205 4200 28805 4800 27605 4200 27605 3000 28805 1200 28805 3000 28205 2400 26405 4200 28805 4200 27605 1200 27605 2400 24604 4800 27605 3000 28205 3000 24604 5401 27605 4200 26405 3600 25805 4200 25805 4200 22804 6001 27605 3000 28205 2400 27005 4800 27605 1200 25205 4200 27605 2400 28205 3600 26405 2400 27005 3600 27005 1800 27605 1800 27005 2400 23404 5401 27605 3600 27605 3600 27605 4200 26405 3000 27605 1200 28205 3000 25205 4800 27605 3600 28205 3600 26405 2400 22204 6601 27005 2400 28205 4800 25805 3000 25805 3600 28205 4200 27605 3000 25205 4800 26405 2400 27005 1200 27605 2400 26405 2400 27605 3000 25205 3000 27005 1200 26405 3000 25805 4800 27605 1800 26405 4200 26405 1800 27005 2400 24604 4200 25205 3600 25205 4200 25805 4200 25805 3600 25805 4200 27005 3000 22204 6001 27605 3000 25805 1800 27005 1200 25205 4200 27005 4200 27005 3000 27005 1800 25805 3000 25805 2400 25805 1800 25805 3600 25805 1800 25205 4200 24004 3600 23404 6601 26405 1800 25205 3600 26405 3600 22804 4200 24604 2400 22204 4200 24604 1800 24004 2400 26405 600 26405 600 25805 1200 26405 600 │ │ │ │ │ │ │ │ <--- '1992-01-19' ------- '1992-03-11' ------- '1992-04-04' ------- '1992-04-23' ------- '1992-05-09' ------- '1992-05-21' ------- '1992-06-06' ------- '1992-06-17' ------- '1992-07-02' ------- '1992-07-17' ------- '1992-07-28' ------- '1992-08-09' ------- '1992-08-21' ------- '1992-09-01' ------- '1992-09-13' ------- '1992-09-23' ------- '1992-10-08' ------- '1992-10-25' ------- '1992-11-06' ------- '1992-11-18' ------- '1992-12-01' ------- '1992-12-12' ------- '1992-12-24' ------- '1993-01-04' ------- '1993-01-15' ------- '1993-01-27' ------- '1993-02-09' ------- '1993-02-20' ------- '1993-03-05' ------- '1993-03-18' ------- '1993-04-01' ------- '1993-04-13' ------- '1993-04-29' ------- '1993-05-13' ------- '1993-05-27' ------- '1993-06-08' ------- '1993-06-20' ------- '1993-07-03' ------- '1993-07-15' ------- '1993-07-29' ------- '1993-08-11' ------- '1993-08-25' ------- '1993-09-08' ------- '1993-09-21' ------- '1993-10-02' ------- '1993-10-15' ------- '1993-10-29' ------- '1993-11-08' ------- '1993-11-20' ------- '1993-12-05' ------- '1993-12-17' ------- '1993-12-30' ------- '1994-01-13' ------- '1994-01-26' ------- '1994-02-08' ------- '1994-02-19' ------- '1994-03-04' ------- '1994-03-14' ------- '1994-03-26' ------- '1994-04-08' ------- '1994-04-21' ------- '1994-05-03' ------- '1994-05-14' ------- '1994-05-24' ------- '1994-06-03' ------- '1994-06-15' ------- '1994-06-27' ------- '1994-07-07' ------- '1994-07-16' ------- '1994-07-26' ------- '1994-08-10' ------- '1994-08-22' ------- '1994-09-03' ------- '1994-09-15' ------- '1994-09-27' ------- '1994-10-11' ------- '1994-10-22' ------- '1994-11-02' ------- '1994-11-14' ------- '1994-11-26' ------- '1994-12-10' ------- '1994-12-22' ------- '1995-01-04' ------- '1995-01-19' ------- '1995-01-30' ------- '1995-02-13' ------- '1995-02-23' ------- '1995-03-07' ------- '1995-03-17' ------- '1995-03-28' ------- '1995-04-11' ------- '1995-04-22' ------- '1995-05-03' ------- '1995-05-17' ------- '1995-05-29' ------- '1995-06-11' ------- '1995-06-26' ------- '1995-07-06' ------- '1995-07-18' ------- '1995-08-01' ------- '1995-08-14' ------- '1995-08-27' ------- '1995-09-09' ------- '1995-09-22' ------- '1995-10-03' ------- '1995-10-14' ------- '1995-10-26' ------- '1995-11-07' ------- '1995-11-19' ------- '1995-11-30' ------- '1995-12-12' ------- '1995-12-25' ------- '1996-01-03' ------- '1996-01-12' ------- '1996-01-24' ------- '1996-02-03' ------- '1996-02-13' ------- '1996-02-25' ------- '1996-03-06' ------- '1996-03-15' ------- '1996-03-25' ------- '1996-04-08' ------- '1996-04-21' ------- '1996-05-01' ------- '1996-05-13' ------- '1996-05-24' ------- '1996-06-03' ------- '1996-06-17' ------- '1996-06-29' ------- '1996-07-09' ------- '1996-07-22' ------- '1996-08-04' ------- '1996-08-17' ------- '1996-08-29' ------- '1996-09-09' ------- '1996-09-21' ------- '1996-10-02' ------- '1996-10-13' ------- '1996-10-27' ------- '1996-11-10' ------- '1996-11-23' ------- '1996-12-03' ------- '1996-12-17' ------- '1996-12-28' ------- '1997-01-08' ------- '1997-01-18' ------- '1997-01-30' ------- '1997-02-11' ------- '1997-02-23' ------- '1997-03-10' ------- '1997-03-20' ------- '1997-03-31' ------- '1997-04-10' ------- '1997-04-23' ------- '1997-05-06' ------- '1997-05-18' ------- '1997-05-30' ------- '1997-06-12' ------- '1997-06-24' ------- '1997-07-07' ------- '1997-07-20' ------- '1997-08-03' ------- '1997-08-16' ------- '1997-08-27' ------- '1997-09-08' ------- '1997-09-18' ------- '1997-10-01' ------- '1997-10-10' ------- '1997-10-20' ------- '1997-11-01' ------- '1997-11-13' ------- '1997-11-27' ------- '1997-12-06' ------- '1997-12-19' ------- '1997-12-29' ------- '1998-01-10' ------- '1998-01-20' ------- '1998-02-03' ------- '1998-02-17' ------- '1998-02-28' ------- '1998-03-11' ------- '1998-03-24' ------- '1998-04-05' ------- '1998-04-17' ------- '1998-05-01' ------- '1998-05-11' ------- '1998-05-22' ------- '1998-06-03' ------- '1998-06-13' ------- '1998-06-27' ------- '1998-07-12' ------- '1998-07-21' ------- '1998-07-31' ------- '1998-08-08' ------- '1998-08-22' ------- '1998-09-03' ------- '1998-09-16' ------- '1998-10-03' ------- '1998-10-26' ------- '1998-12-16' - │ │ │ │ │ │ │ ├── key: (53,56) - │ │ │ │ │ │ │ ├── fd: (53,56)-->(54,55,57-68) │ │ │ │ │ │ │ └── ordering: +53 │ │ │ │ │ │ └── filters │ │ │ │ │ │ └── l3.l_receiptdate > l3.l_commitdate [type=bool, outer=(64,65), constraints=(/64: (/NULL - ]; /65: (/NULL - ])] │ │ │ │ │ └── filters │ │ │ │ │ └── l3.l_suppkey != l1.l_suppkey [type=bool, outer=(10,55), constraints=(/10: (/NULL - ]; /55: (/NULL - ])] - │ │ │ │ ├── scan l2 + │ │ │ │ ├── scan l2@l_sk │ │ │ │ │ ├── save-table-name: q21_scan_12 - │ │ │ │ │ ├── columns: l2.l_orderkey:37(int!null) l2.l_partkey:38(int!null) l2.l_suppkey:39(int!null) l2.l_linenumber:40(int!null) l2.l_quantity:41(float!null) l2.l_extendedprice:42(float!null) l2.l_discount:43(float!null) l2.l_tax:44(float!null) l2.l_returnflag:45(char!null) l2.l_linestatus:46(char!null) l2.l_shipdate:47(date!null) l2.l_commitdate:48(date!null) l2.l_receiptdate:49(date!null) l2.l_shipinstruct:50(char!null) l2.l_shipmode:51(char!null) l2.l_comment:52(varchar!null) - │ │ │ │ │ ├── stats: [rows=6001215, distinct(37)=1527270, null(37)=0, distinct(38)=199241, null(38)=0, distinct(39)=9920, null(39)=0, distinct(40)=7, null(40)=0, distinct(41)=50, null(41)=0, distinct(42)=925955, null(42)=0, distinct(43)=11, null(43)=0, distinct(44)=9, null(44)=0, distinct(45)=3, null(45)=0, distinct(46)=2, null(46)=0, distinct(47)=2526, null(47)=0, distinct(48)=2466, null(48)=0, distinct(49)=2554, null(49)=0, distinct(50)=4, null(50)=0, distinct(51)=7, null(51)=0, distinct(52)=4643303, null(52)=0] - │ │ │ │ │ │ histogram(37)= 0 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 - │ │ │ │ │ │ <--- 326 ------- 28929 ------- 50503 ------- 89793 ------- 115938 ------- 146944 ------- 176768 ------- 211201 ------- 237860 ------- 266885 ------- 297604 ------- 330021 ------- 365889 ------- 398951 ------- 426117 ------- 451328 ------- 472134 ------- 499590 ------- 529284 ------- 557254 ------- 589154 ------- 619394 ------- 642951 ------- 670113 ------- 692931 ------- 721157 ------- 751687 ------- 777766 ------- 804582 ------- 836740 ------- 868868 ------- 898912 ------- 922500 ------- 946403 ------- 984870 ------- 1007936 ------- 1030117 ------- 1062275 ------- 1093572 ------- 1120709 ------- 1150981 ------- 1182786 ------- 1206406 ------- 1234116 ------- 1260961 ------- 1290502 ------- 1329510 ------- 1355426 ------- 1381313 ------- 1409796 ------- 1445254 ------- 1479233 ------- 1504935 ------- 1531079 ------- 1559650 ------- 1583616 ------- 1617504 ------- 1655749 ------- 1685185 ------- 1718183 ------- 1747716 ------- 1772131 ------- 1802372 ------- 1833315 ------- 1862403 ------- 1897894 ------- 1922819 ------- 1954405 ------- 1979329 ------- 2009859 ------- 2041670 ------- 2070851 ------- 2093828 ------- 2127973 ------- 2167777 ------- 2194883 ------- 2227814 ------- 2262437 ------- 2296353 ------- 2321024 ------- 2346051 ------- 2376257 ------- 2404932 ------- 2446273 ------- 2474081 ------- 2504515 ------- 2535302 ------- 2561413 ------- 2592737 ------- 2616801 ------- 2646112 ------- 2676546 ------- 2702116 ------- 2732454 ------- 2765382 ------- 2799495 ------- 2828866 ------- 2868737 ------- 2910625 ------- 2938464 ------- 2963140 ------- 3003302 ------- 3043264 ------- 3069123 ------- 3095909 ------- 3126693 ------- 3160485 ------- 3196039 ------- 3229504 ------- 3259712 ------- 3286439 ------- 3318852 ------- 3346821 ------- 3370119 ------- 3395204 ------- 3425888 ------- 3448611 ------- 3476130 ------- 3502372 ------- 3529474 ------- 3556390 ------- 3583553 ------- 3612550 ------- 3647875 ------- 3679140 ------- 3702661 ------- 3738017 ------- 3778050 ------- 3806114 ------- 3839074 ------- 3872805 ------- 3905697 ------- 3926212 ------- 3959841 ------- 3997281 ------- 4033861 ------- 4063591 ------- 4097831 ------- 4124807 ------- 4158656 ------- 4195748 ------- 4234274 ------- 4269952 ------- 4298949 ------- 4332806 ------- 4364705 ------- 4398246 ------- 4430695 ------- 4466403 ------- 4494662 ------- 4524420 ------- 4558561 ------- 4601092 ------- 4632871 ------- 4658694 ------- 4690501 ------- 4728066 ------- 4758657 ------- 4788294 ------- 4818597 ------- 4855874 ------- 4890913 ------- 4915366 ------- 4940709 ------- 4972357 ------- 4995298 ------- 5019523 ------- 5043329 ------- 5077376 ------- 5109920 ------- 5136582 ------- 5161152 ------- 5191846 ------- 5219973 ------- 5251015 ------- 5282021 ------- 5312355 ------- 5343207 ------- 5381318 ------- 5416163 ------- 5445382 ------- 5476933 ------- 5509185 ------- 5539237 ------- 5566818 ------- 5588739 ------- 5620481 ------- 5644001 ------- 5667010 ------- 5689476 ------- 5724709 ------- 5755398 ------- 5790598 ------- 5819425 ------- 5846341 ------- 5874656 ------- 5908067 ------- 5933572 ------- 5962659 ------- 5999971 - │ │ │ │ │ │ histogram(38)= 0 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 1200 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 - │ │ │ │ │ │ <--- 29 ------- 959 ------- 1845 ------- 3339 ------- 4395 ------- 5525 ------- 6349 ------- 7298 ------- 8340 ------- 9659 ------- 10756 ------- 11642 ------- 12662 ------- 13609 ------- 14663 ------- 15886 ------- 16905 ------- 17902 ------- 18705 ------- 19722 ------- 20827 ------- 21789 ------- 23026 ------- 24201 ------- 25338 ------- 26224 ------- 27182 ------- 28202 ------- 29058 ------- 29919 ------- 31031 ------- 32058 ------- 33058 ------- 34089 ------- 34972 ------- 35929 ------- 36995 ------- 37901 ------- 38814 ------- 39884 ------- 41044 ------- 42034 ------- 43257 ------- 44224 ------- 45196 ------- 46284 ------- 47373 ------- 48352 ------- 49175 ------- 50212 ------- 51359 ------- 52449 ------- 53225 ------- 54295 ------- 55556 ------- 56736 ------- 57984 ------- 59102 ------- 60117 ------- 61111 ------- 62007 ------- 63054 ------- 63923 ------- 64971 ------- 66018 ------- 67114 ------- 67979 ------- 69163 ------- 70178 ------- 71421 ------- 72412 ------- 73432 ------- 74444 ------- 75421 ------- 76307 ------- 77194 ------- 78249 ------- 79229 ------- 80220 ------- 81103 ------- 81841 ------- 83133 ------- 84398 ------- 85526 ------- 86382 ------- 87333 ------- 88313 ------- 89185 ------- 90240 ------- 91121 ------- 91927 ------- 92840 ------- 93562 ------- 94443 ------- 95372 ------- 96282 ------- 97084 ------- 97969 ------- 99105 ------- 100036 ------- 100911 ------- 101928 ------- 102725 ------- 103625 ------- 104599 ------- 105568 ------- 106366 ------- 107318 ------- 108221 ------- 109084 ------- 110150 ------- 111130 ------- 112290 ------- 113258 ------- 114514 ------- 115361 ------- 116860 ------- 118141 ------- 119083 ------- 120205 ------- 121265 ------- 122280 ------- 123210 ------- 124316 ------- 125393 ------- 126419 ------- 127466 ------- 128467 ------- 129550 ------- 130729 ------- 131956 ------- 133065 ------- 134173 ------- 135106 ------- 136339 ------- 137237 ------- 138221 ------- 139139 ------- 140103 ------- 141250 ------- 142059 ------- 142984 ------- 144048 ------- 145243 ------- 146186 ------- 147153 ------- 148099 ------- 149103 ------- 149945 ------- 150918 ------- 151860 ------- 152830 ------- 153863 ------- 154681 ------- 156041 ------- 156862 ------- 157688 ------- 158743 ------- 159676 ------- 160684 ------- 161325 ------- 162394 ------- 163558 ------- 164576 ------- 165819 ------- 166748 ------- 167734 ------- 168986 ------- 170087 ------- 170931 ------- 171933 ------- 172836 ------- 174038 ------- 175011 ------- 175836 ------- 176680 ------- 177741 ------- 178899 ------- 179745 ------- 180631 ------- 181664 ------- 182624 ------- 183639 ------- 184414 ------- 185145 ------- 186261 ------- 187090 ------- 188033 ------- 189049 ------- 190063 ------- 191040 ------- 192115 ------- 193408 ------- 194360 ------- 195506 ------- 196582 ------- 197367 ------- 198465 ------- 199096 ------- 199970 - │ │ │ │ │ │ histogram(39)= 0 600 28805 3000 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 1200 29405 1200 28805 1200 28805 1800 29405 600 29405 1200 29405 600 29405 600 28805 1200 29405 1200 28805 1200 28205 1800 29405 1200 29405 600 29405 1200 29405 1200 29405 600 29405 1200 29405 1200 28805 1800 29405 600 28805 1800 28805 1200 28805 1200 29405 1200 28805 1800 29405 600 28205 1800 29405 600 29405 600 28805 1200 29405 600 28805 1200 29405 600 29405 600 28805 1200 28805 1800 27605 2400 29405 600 28205 1800 29405 2400 29405 600 28805 1800 28205 1800 28805 1200 29405 3000 29405 1200 29405 1800 29405 600 29405 600 28205 1800 29405 600 29405 1800 29405 1800 29405 600 29405 600 28805 1200 28805 1200 29405 1200 28205 1800 29405 600 28805 1200 27605 2400 29405 600 29405 1200 29405 1200 29405 600 29405 1800 29405 1200 28205 1800 29405 600 29405 1200 29405 1200 28805 1200 28205 1800 29405 1800 28805 1200 29405 600 29405 1800 28205 2400 29405 600 28805 1200 28205 2400 28805 1200 27605 2400 28805 1200 29405 600 28805 1800 29405 1800 28805 600 28205 1800 28805 600 29405 600 29405 1200 28805 600 28805 1200 29405 1800 27605 1800 27605 2400 27605 1800 29405 1200 28805 600 28805 1200 29405 1200 28805 2400 28805 1200 28805 600 28205 1200 28205 1200 29405 600 28805 1200 29405 600 28205 2400 28205 1200 29405 600 29405 1800 28805 1200 28205 1200 27605 2400 27605 1800 28805 1200 29405 600 28805 1200 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 28805 1200 29405 1200 28805 600 29405 1800 28205 1200 27605 1800 29405 600 29405 600 29405 1200 28805 1200 28805 1200 28205 1200 29405 1800 28205 1800 28805 600 28805 1200 28205 1200 29405 600 28805 1800 28205 1800 27605 2400 28805 600 29405 600 28805 1200 29405 600 28805 2400 28805 1200 28805 1200 28805 600 28205 1200 28805 1200 29405 600 29405 600 29405 1800 28805 600 28805 600 28805 2400 28805 600 28805 1800 28805 1200 28805 600 27005 2400 29405 600 28205 1800 29405 1200 27605 1800 28805 1200 28805 1200 29405 600 29405 600 29405 600 29405 1200 28805 600 29405 600 27605 2400 28805 1200 29405 600 28805 1800 28805 1800 28205 1200 28805 1200 28805 600 29405 1200 28205 1200 - │ │ │ │ │ │ <--- 6 ------- 59 ------- 106 ------- 147 ------- 189 ------- 219 ------- 272 ------- 335 ------- 387 ------- 433 ------- 485 ------- 539 ------- 600 ------- 653 ------- 698 ------- 749 ------- 806 ------- 855 ------- 904 ------- 961 ------- 1008 ------- 1065 ------- 1115 ------- 1163 ------- 1212 ------- 1270 ------- 1329 ------- 1373 ------- 1417 ------- 1470 ------- 1514 ------- 1566 ------- 1616 ------- 1668 ------- 1719 ------- 1765 ------- 1819 ------- 1871 ------- 1926 ------- 1978 ------- 2030 ------- 2080 ------- 2128 ------- 2173 ------- 2223 ------- 2270 ------- 2318 ------- 2382 ------- 2444 ------- 2491 ------- 2534 ------- 2584 ------- 2632 ------- 2675 ------- 2736 ------- 2781 ------- 2841 ------- 2905 ------- 2940 ------- 2996 ------- 3045 ------- 3084 ------- 3124 ------- 3181 ------- 3224 ------- 3268 ------- 3318 ------- 3362 ------- 3419 ------- 3466 ------- 3515 ------- 3560 ------- 3615 ------- 3669 ------- 3725 ------- 3777 ------- 3825 ------- 3871 ------- 3923 ------- 3980 ------- 4035 ------- 4078 ------- 4135 ------- 4184 ------- 4244 ------- 4296 ------- 4346 ------- 4396 ------- 4444 ------- 4489 ------- 4540 ------- 4575 ------- 4627 ------- 4683 ------- 4731 ------- 4777 ------- 4831 ------- 4900 ------- 4953 ------- 5006 ------- 5061 ------- 5119 ------- 5161 ------- 5208 ------- 5260 ------- 5315 ------- 5361 ------- 5415 ------- 5474 ------- 5529 ------- 5572 ------- 5635 ------- 5689 ------- 5738 ------- 5792 ------- 5835 ------- 5890 ------- 5935 ------- 5997 ------- 6039 ------- 6094 ------- 6151 ------- 6201 ------- 6245 ------- 6291 ------- 6343 ------- 6387 ------- 6437 ------- 6480 ------- 6540 ------- 6580 ------- 6629 ------- 6673 ------- 6718 ------- 6771 ------- 6823 ------- 6878 ------- 6935 ------- 6974 ------- 7017 ------- 7060 ------- 7112 ------- 7170 ------- 7231 ------- 7279 ------- 7329 ------- 7373 ------- 7427 ------- 7477 ------- 7520 ------- 7564 ------- 7616 ------- 7671 ------- 7716 ------- 7760 ------- 7815 ------- 7861 ------- 7917 ------- 7969 ------- 8018 ------- 8063 ------- 8112 ------- 8180 ------- 8229 ------- 8268 ------- 8320 ------- 8376 ------- 8432 ------- 8474 ------- 8522 ------- 8569 ------- 8616 ------- 8664 ------- 8705 ------- 8765 ------- 8814 ------- 8868 ------- 8906 ------- 8948 ------- 8990 ------- 9035 ------- 9090 ------- 9137 ------- 9188 ------- 9241 ------- 9292 ------- 9354 ------- 9411 ------- 9472 ------- 9526 ------- 9569 ------- 9613 ------- 9658 ------- 9708 ------- 9737 ------- 9792 ------- 9838 ------- 9903 ------- 9952 ------- 10000 - │ │ │ │ │ │ histogram(47)= 0 600 28805 2400 28205 1800 28805 2400 27605 3000 28805 1800 27605 3000 28805 1800 27605 2400 28205 4200 29405 1800 28205 2400 29405 2400 29405 4200 28205 4800 28805 1800 29405 1200 28805 1800 29405 5401 29405 3000 28805 2400 28205 1800 29405 3000 28205 1200 29405 2400 25205 6601 23404 7201 28205 3600 28205 3000 28205 2400 27605 3600 28205 3000 28805 2400 26405 4200 26405 3000 28805 2400 28205 1800 27605 1800 28805 600 28205 3000 27605 5401 27605 3600 28205 4800 25805 3600 27605 2400 28205 3600 25805 3600 27605 3000 26405 4200 28805 3000 28805 3000 28805 1200 25205 4200 25805 3600 25805 3600 26405 3600 28805 1200 27605 2400 27005 3600 28805 1200 27005 4800 28205 3000 25205 4800 28805 4800 28805 600 28205 1200 24604 6601 24604 4800 28205 3600 27605 3600 27005 4200 28205 2400 28205 4200 28805 1200 28205 1800 28205 1200 28205 3000 27005 4800 28805 600 27005 3600 25805 5401 27005 2400 28205 3000 27605 2400 24004 5401 28805 3600 27005 2400 28205 3000 27005 3600 28805 3600 28205 1800 28805 1800 28805 2400 25205 5401 27605 3600 28205 3000 27005 2400 28805 4800 27005 3000 28205 3600 28805 3000 26405 3000 27605 1800 28205 3600 28205 2400 28205 1200 28205 1200 27005 2400 25805 5401 27005 4800 24004 6001 27005 3000 28205 600 27005 3600 28205 2400 25805 3600 26405 4800 25805 3000 27005 3600 27005 3000 27605 3600 27005 5401 28205 2400 27005 3600 28205 600 24004 5401 28205 1200 27605 1800 26405 5401 28205 3600 26405 3600 28205 1200 27005 1800 27005 4800 28205 1200 26405 2400 26405 6601 26405 3000 27605 4200 26405 2400 28205 3000 27005 3600 27605 1200 26405 3600 25205 4800 27605 4200 25205 3000 27605 3000 26405 2400 24604 3600 26405 4800 26405 3600 24604 4200 26405 1800 27605 3600 27605 1800 27605 1200 26405 1800 26405 3000 25805 3000 25805 3000 24004 4200 27005 1800 27605 3000 25805 4200 26405 3600 25205 4200 25205 5401 26405 3600 27005 2400 26405 3000 24604 3000 26405 1800 25805 2400 24004 3600 25805 3000 25805 4200 25805 2400 24004 3600 25805 1800 26405 1800 27005 4200 26405 2400 26405 2400 25805 1800 26405 2400 25805 2400 25805 3000 26405 2400 25805 1200 23404 4200 25205 4200 25805 2400 24004 3000 25205 1800 26405 1800 25205 5401 25205 1800 23404 1800 24604 600 - │ │ │ │ │ │ <--- '1992-01-03' ------- '1992-02-23' ------- '1992-03-18' ------- '1992-04-07' ------- '1992-04-22' ------- '1992-05-06' ------- '1992-05-19' ------- '1992-05-31' ------- '1992-06-15' ------- '1992-06-29' ------- '1992-07-11' ------- '1992-07-24' ------- '1992-08-05' ------- '1992-08-17' ------- '1992-08-29' ------- '1992-09-10' ------- '1992-09-24' ------- '1992-10-10' ------- '1992-10-22' ------- '1992-11-05' ------- '1992-11-17' ------- '1992-11-28' ------- '1992-12-10' ------- '1992-12-22' ------- '1993-01-02' ------- '1993-01-10' ------- '1993-01-24' ------- '1993-02-06' ------- '1993-02-20' ------- '1993-03-06' ------- '1993-03-19' ------- '1993-04-02' ------- '1993-04-17' ------- '1993-05-02' ------- '1993-05-13' ------- '1993-05-26' ------- '1993-06-07' ------- '1993-06-21' ------- '1993-07-06' ------- '1993-07-19' ------- '1993-08-02' ------- '1993-08-16' ------- '1993-08-30' ------- '1993-09-11' ------- '1993-09-21' ------- '1993-10-07' ------- '1993-10-19' ------- '1993-10-30' ------- '1993-11-11' ------- '1993-11-24' ------- '1993-12-09' ------- '1993-12-24' ------- '1994-01-02' ------- '1994-01-16' ------- '1994-01-30' ------- '1994-02-08' ------- '1994-02-18' ------- '1994-03-04' ------- '1994-03-15' ------- '1994-03-29' ------- '1994-04-10' ------- '1994-04-24' ------- '1994-05-03' ------- '1994-05-13' ------- '1994-05-24' ------- '1994-06-04' ------- '1994-06-13' ------- '1994-06-22' ------- '1994-07-05' ------- '1994-07-16' ------- '1994-07-29' ------- '1994-08-09' ------- '1994-08-22' ------- '1994-09-04' ------- '1994-09-15' ------- '1994-09-29' ------- '1994-10-10' ------- '1994-10-20' ------- '1994-11-03' ------- '1994-11-16' ------- '1994-11-29' ------- '1994-12-11' ------- '1994-12-25' ------- '1995-01-07' ------- '1995-01-18' ------- '1995-01-31' ------- '1995-02-12' ------- '1995-02-23' ------- '1995-03-04' ------- '1995-03-16' ------- '1995-03-29' ------- '1995-04-09' ------- '1995-04-22' ------- '1995-05-05' ------- '1995-05-20' ------- '1995-05-31' ------- '1995-06-13' ------- '1995-06-25' ------- '1995-07-07' ------- '1995-07-22' ------- '1995-08-04' ------- '1995-08-16' ------- '1995-08-29' ------- '1995-09-09' ------- '1995-09-20' ------- '1995-10-02' ------- '1995-10-16' ------- '1995-10-26' ------- '1995-11-03' ------- '1995-11-16' ------- '1995-11-28' ------- '1995-12-08' ------- '1995-12-19' ------- '1995-12-31' ------- '1996-01-12' ------- '1996-01-22' ------- '1996-02-01' ------- '1996-02-10' ------- '1996-02-21' ------- '1996-03-02' ------- '1996-03-13' ------- '1996-03-25' ------- '1996-04-06' ------- '1996-04-18' ------- '1996-04-29' ------- '1996-05-10' ------- '1996-05-21' ------- '1996-06-03' ------- '1996-06-15' ------- '1996-06-28' ------- '1996-07-08' ------- '1996-07-23' ------- '1996-08-05' ------- '1996-08-17' ------- '1996-08-29' ------- '1996-09-10' ------- '1996-09-20' ------- '1996-10-03' ------- '1996-10-15' ------- '1996-10-28' ------- '1996-11-10' ------- '1996-11-22' ------- '1996-12-02' ------- '1996-12-17' ------- '1996-12-26' ------- '1997-01-07' ------- '1997-01-19' ------- '1997-01-29' ------- '1997-02-11' ------- '1997-02-23' ------- '1997-03-07' ------- '1997-03-18' ------- '1997-03-28' ------- '1997-04-11' ------- '1997-04-24' ------- '1997-05-05' ------- '1997-05-15' ------- '1997-05-31' ------- '1997-06-10' ------- '1997-06-23' ------- '1997-07-07' ------- '1997-07-19' ------- '1997-07-30' ------- '1997-08-13' ------- '1997-08-23' ------- '1997-09-07' ------- '1997-09-15' ------- '1997-09-26' ------- '1997-10-06' ------- '1997-10-19' ------- '1997-10-30' ------- '1997-11-10' ------- '1997-11-22' ------- '1997-12-02' ------- '1997-12-14' ------- '1997-12-27' ------- '1998-01-06' ------- '1998-01-18' ------- '1998-01-29' ------- '1998-02-10' ------- '1998-02-24' ------- '1998-03-08' ------- '1998-03-19' ------- '1998-04-01' ------- '1998-04-14' ------- '1998-04-25' ------- '1998-05-06' ------- '1998-05-17' ------- '1998-05-29' ------- '1998-06-10' ------- '1998-06-22' ------- '1998-07-04' ------- '1998-07-15' ------- '1998-07-25' ------- '1998-08-05' ------- '1998-08-18' ------- '1998-09-01' ------- '1998-09-22' ------- '1998-10-13' ------- '1998-11-26' - │ │ │ │ │ │ histogram(48)= 0 600 28805 1200 29405 3600 29405 1200 29405 1800 28205 1800 28805 4200 28205 3600 27005 4800 29405 3600 29405 1800 26405 3600 29405 600 27005 3000 29405 2400 28805 3000 29405 600 25805 4800 28805 3000 27605 2400 27605 5401 28805 3600 28805 2400 27605 3600 28805 6001 28805 3600 27005 3000 25205 4800 28805 4200 28205 1200 28805 3600 28205 4200 27605 3000 28205 3600 28805 1200 27605 3000 28205 1200 27005 3000 28805 1200 28205 1800 28205 1800 27605 1800 27605 3600 27605 3600 25805 5401 28805 4200 28205 1200 28805 3000 28805 4800 28805 1200 28805 4200 28205 2400 26405 3000 28205 3000 28805 2400 28805 2400 27605 5401 28805 1800 28805 2400 28805 1200 28805 3600 27605 5401 25805 5401 28205 3600 27005 3600 28205 3000 28805 1200 28805 4800 28205 2400 24604 5401 28805 3000 27605 2400 28205 4200 27005 3000 28805 3000 28805 600 26405 5401 27605 4800 27005 2400 26405 4200 28805 2400 27605 3000 28205 3000 27005 2400 26405 3600 28205 1200 27605 4200 27605 3000 28205 1800 25805 3000 28205 2400 28205 1200 27005 2400 27605 1800 25805 3600 27005 6601 27005 1800 24004 6001 27605 1800 28205 3000 27605 2400 27605 2400 27605 3000 27605 2400 28205 3000 26405 2400 26405 2400 26405 2400 26405 3600 28205 1800 28205 2400 27605 1200 27605 3000 27605 4800 24604 4200 28205 3000 24604 6001 25805 4200 25205 4200 26405 3000 28205 3000 27605 3000 28205 600 27605 3600 25805 4200 27005 3600 28205 600 28205 3000 28205 1200 25805 3000 28205 1200 27005 3000 28205 1200 24604 4200 27605 1800 28205 4200 27605 2400 26405 4200 27005 2400 27005 1800 27605 3600 25205 4800 27605 2400 28205 1800 27005 3000 27605 3000 25205 4200 25805 3000 27605 3600 25805 3600 27605 1800 24604 4200 25805 3600 26405 1800 27005 3000 27005 1200 27005 3000 24004 5401 26405 1800 25805 2400 27605 1200 27605 600 27005 2400 27605 1200 23404 7201 25205 3600 26405 3000 27605 3600 27605 2400 24604 3600 27605 4200 27605 3600 27005 1200 26405 1200 25805 1800 25205 3600 22804 4800 24604 3000 24004 3600 26405 2400 24604 4800 26405 3000 22204 5401 25805 2400 25205 2400 27005 2400 24604 4200 25205 3000 24004 4800 25205 3000 26405 1200 27005 2400 26405 2400 26405 4800 25205 3000 25805 1800 24004 4800 24604 3000 23404 600 24004 600 - │ │ │ │ │ │ <--- '1992-02-06' ------- '1992-03-13' ------- '1992-03-29' ------- '1992-04-12' ------- '1992-04-24' ------- '1992-05-07' ------- '1992-05-18' ------- '1992-05-30' ------- '1992-06-15' ------- '1992-06-28' ------- '1992-07-10' ------- '1992-07-20' ------- '1992-08-04' ------- '1992-08-17' ------- '1992-08-30' ------- '1992-09-11' ------- '1992-09-25' ------- '1992-10-05' ------- '1992-10-16' ------- '1992-10-29' ------- '1992-11-10' ------- '1992-11-24' ------- '1992-12-05' ------- '1992-12-16' ------- '1992-12-31' ------- '1993-01-15' ------- '1993-01-28' ------- '1993-02-09' ------- '1993-02-21' ------- '1993-03-07' ------- '1993-03-17' ------- '1993-04-03' ------- '1993-04-17' ------- '1993-04-30' ------- '1993-05-12' ------- '1993-05-25' ------- '1993-06-08' ------- '1993-06-23' ------- '1993-07-04' ------- '1993-07-18' ------- '1993-08-02' ------- '1993-08-13' ------- '1993-08-24' ------- '1993-09-08' ------- '1993-09-20' ------- '1993-10-06' ------- '1993-10-22' ------- '1993-11-01' ------- '1993-11-14' ------- '1993-11-24' ------- '1993-12-07' ------- '1993-12-20' ------- '1994-01-01' ------- '1994-01-14' ------- '1994-01-31' ------- '1994-02-14' ------- '1994-02-26' ------- '1994-03-09' ------- '1994-03-22' ------- '1994-04-03' ------- '1994-04-14' ------- '1994-04-23' ------- '1994-05-07' ------- '1994-05-19' ------- '1994-05-31' ------- '1994-06-12' ------- '1994-06-22' ------- '1994-07-03' ------- '1994-07-14' ------- '1994-07-24' ------- '1994-08-04' ------- '1994-08-16' ------- '1994-08-29' ------- '1994-09-08' ------- '1994-09-23' ------- '1994-10-05' ------- '1994-10-16' ------- '1994-10-28' ------- '1994-11-08' ------- '1994-11-19' ------- '1994-12-05' ------- '1994-12-18' ------- '1994-12-29' ------- '1995-01-11' ------- '1995-01-23' ------- '1995-02-05' ------- '1995-02-15' ------- '1995-03-02' ------- '1995-03-14' ------- '1995-03-25' ------- '1995-04-05' ------- '1995-04-17' ------- '1995-04-30' ------- '1995-05-11' ------- '1995-05-23' ------- '1995-06-06' ------- '1995-06-20' ------- '1995-06-30' ------- '1995-07-12' ------- '1995-07-26' ------- '1995-08-07' ------- '1995-08-17' ------- '1995-08-28' ------- '1995-09-09' ------- '1995-09-21' ------- '1995-10-04' ------- '1995-10-14' ------- '1995-10-28' ------- '1995-11-07' ------- '1995-11-18' ------- '1995-11-29' ------- '1995-12-11' ------- '1995-12-21' ------- '1995-12-31' ------- '1996-01-11' ------- '1996-01-21' ------- '1996-01-31' ------- '1996-02-10' ------- '1996-02-24' ------- '1996-03-04' ------- '1996-03-13' ------- '1996-03-25' ------- '1996-04-07' ------- '1996-04-17' ------- '1996-04-28' ------- '1996-05-10' ------- '1996-05-22' ------- '1996-06-02' ------- '1996-06-15' ------- '1996-06-26' ------- '1996-07-09' ------- '1996-07-20' ------- '1996-07-31' ------- '1996-08-11' ------- '1996-08-25' ------- '1996-09-07' ------- '1996-09-21' ------- '1996-10-04' ------- '1996-10-15' ------- '1996-10-27' ------- '1996-11-07' ------- '1996-11-19' ------- '1996-11-30' ------- '1996-12-13' ------- '1996-12-27' ------- '1997-01-06' ------- '1997-01-18' ------- '1997-01-30' ------- '1997-02-12' ------- '1997-02-23' ------- '1997-03-07' ------- '1997-03-19' ------- '1997-03-31' ------- '1997-04-10' ------- '1997-04-23' ------- '1997-05-04' ------- '1997-05-17' ------- '1997-05-29' ------- '1997-06-12' ------- '1997-06-23' ------- '1997-07-04' ------- '1997-07-16' ------- '1997-07-28' ------- '1997-08-07' ------- '1997-08-19' ------- '1997-08-29' ------- '1997-09-10' ------- '1997-09-20' ------- '1997-10-03' ------- '1997-10-13' ------- '1997-10-25' ------- '1997-11-05' ------- '1997-11-17' ------- '1997-12-02' ------- '1997-12-15' ------- '1997-12-26' ------- '1998-01-07' ------- '1998-01-16' ------- '1998-01-25' ------- '1998-02-07' ------- '1998-02-20' ------- '1998-03-06' ------- '1998-03-14' ------- '1998-03-30' ------- '1998-04-08' ------- '1998-04-21' ------- '1998-05-03' ------- '1998-05-15' ------- '1998-05-27' ------- '1998-06-07' ------- '1998-06-19' ------- '1998-07-03' ------- '1998-07-15' ------- '1998-07-26' ------- '1998-08-07' ------- '1998-08-18' ------- '1998-08-30' ------- '1998-09-12' ------- '1998-10-01' ------- '1998-10-30' - │ │ │ │ │ │ histogram(49)= 0 1200 29405 1200 29405 1200 29405 1200 27605 2400 24004 6001 27605 5401 28205 4200 29405 2400 29405 1200 28205 4200 27005 3000 27005 3000 29405 4800 27605 3000 28205 1800 27605 2400 26405 3600 27605 4800 27605 3600 28805 3000 28205 6001 28205 1800 26405 3600 27005 4200 29405 4200 27605 2400 27605 1800 27005 3600 24604 4800 27605 3000 27605 1800 28205 2400 28205 3000 28805 1800 28805 600 28205 1200 27005 2400 27605 1800 26405 3000 26405 4800 28205 2400 28805 1200 28805 3600 28205 3000 28205 1200 28205 1200 25805 4200 28205 4800 26405 6001 28205 1800 27005 3000 28205 1800 27605 3000 28205 1200 28205 2400 27605 3000 28805 1800 26405 4200 28805 1800 24604 4800 28805 1200 27005 3000 26405 7201 25805 4800 28805 4200 28805 3600 25205 4200 27005 4800 27605 3600 28205 4200 28805 1800 27005 2400 28805 1800 27005 3000 28205 2400 28205 2400 27005 2400 25805 3600 26405 3600 28805 3600 25805 4200 28805 4200 28205 2400 26405 3600 27005 2400 27605 3600 28805 600 27005 4800 28205 1800 26405 4800 26405 3600 26405 3000 27005 3000 27605 2400 28205 4200 28805 1800 28205 2400 26405 4200 28805 4200 28205 1800 25205 4200 28805 4800 27605 4200 27605 3000 28805 1200 28805 3000 28205 2400 26405 4200 28805 4200 27605 1200 27605 2400 24604 4800 27605 3000 28205 3000 24604 5401 27605 4200 26405 3600 25805 4200 25805 4200 22804 6001 27605 3000 28205 2400 27005 4800 27605 1200 25205 4200 27605 2400 28205 3600 26405 2400 27005 3600 27005 1800 27605 1800 27005 2400 23404 5401 27605 3600 27605 3600 27605 4200 26405 3000 27605 1200 28205 3000 25205 4800 27605 3600 28205 3600 26405 2400 22204 6601 27005 2400 28205 4800 25805 3000 25805 3600 28205 4200 27605 3000 25205 4800 26405 2400 27005 1200 27605 2400 26405 2400 27605 3000 25205 3000 27005 1200 26405 3000 25805 4800 27605 1800 26405 4200 26405 1800 27005 2400 24604 4200 25205 3600 25205 4200 25805 4200 25805 3600 25805 4200 27005 3000 22204 6001 27605 3000 25805 1800 27005 1200 25205 4200 27005 4200 27005 3000 27005 1800 25805 3000 25805 2400 25805 1800 25805 3600 25805 1800 25205 4200 24004 3600 23404 6601 26405 1800 25205 3600 26405 3600 22804 4200 24604 2400 22204 4200 24604 1800 24004 2400 26405 600 26405 600 25805 1200 26405 600 - │ │ │ │ │ │ <--- '1992-01-19' ------- '1992-03-11' ------- '1992-04-04' ------- '1992-04-23' ------- '1992-05-09' ------- '1992-05-21' ------- '1992-06-06' ------- '1992-06-17' ------- '1992-07-02' ------- '1992-07-17' ------- '1992-07-28' ------- '1992-08-09' ------- '1992-08-21' ------- '1992-09-01' ------- '1992-09-13' ------- '1992-09-23' ------- '1992-10-08' ------- '1992-10-25' ------- '1992-11-06' ------- '1992-11-18' ------- '1992-12-01' ------- '1992-12-12' ------- '1992-12-24' ------- '1993-01-04' ------- '1993-01-15' ------- '1993-01-27' ------- '1993-02-09' ------- '1993-02-20' ------- '1993-03-05' ------- '1993-03-18' ------- '1993-04-01' ------- '1993-04-13' ------- '1993-04-29' ------- '1993-05-13' ------- '1993-05-27' ------- '1993-06-08' ------- '1993-06-20' ------- '1993-07-03' ------- '1993-07-15' ------- '1993-07-29' ------- '1993-08-11' ------- '1993-08-25' ------- '1993-09-08' ------- '1993-09-21' ------- '1993-10-02' ------- '1993-10-15' ------- '1993-10-29' ------- '1993-11-08' ------- '1993-11-20' ------- '1993-12-05' ------- '1993-12-17' ------- '1993-12-30' ------- '1994-01-13' ------- '1994-01-26' ------- '1994-02-08' ------- '1994-02-19' ------- '1994-03-04' ------- '1994-03-14' ------- '1994-03-26' ------- '1994-04-08' ------- '1994-04-21' ------- '1994-05-03' ------- '1994-05-14' ------- '1994-05-24' ------- '1994-06-03' ------- '1994-06-15' ------- '1994-06-27' ------- '1994-07-07' ------- '1994-07-16' ------- '1994-07-26' ------- '1994-08-10' ------- '1994-08-22' ------- '1994-09-03' ------- '1994-09-15' ------- '1994-09-27' ------- '1994-10-11' ------- '1994-10-22' ------- '1994-11-02' ------- '1994-11-14' ------- '1994-11-26' ------- '1994-12-10' ------- '1994-12-22' ------- '1995-01-04' ------- '1995-01-19' ------- '1995-01-30' ------- '1995-02-13' ------- '1995-02-23' ------- '1995-03-07' ------- '1995-03-17' ------- '1995-03-28' ------- '1995-04-11' ------- '1995-04-22' ------- '1995-05-03' ------- '1995-05-17' ------- '1995-05-29' ------- '1995-06-11' ------- '1995-06-26' ------- '1995-07-06' ------- '1995-07-18' ------- '1995-08-01' ------- '1995-08-14' ------- '1995-08-27' ------- '1995-09-09' ------- '1995-09-22' ------- '1995-10-03' ------- '1995-10-14' ------- '1995-10-26' ------- '1995-11-07' ------- '1995-11-19' ------- '1995-11-30' ------- '1995-12-12' ------- '1995-12-25' ------- '1996-01-03' ------- '1996-01-12' ------- '1996-01-24' ------- '1996-02-03' ------- '1996-02-13' ------- '1996-02-25' ------- '1996-03-06' ------- '1996-03-15' ------- '1996-03-25' ------- '1996-04-08' ------- '1996-04-21' ------- '1996-05-01' ------- '1996-05-13' ------- '1996-05-24' ------- '1996-06-03' ------- '1996-06-17' ------- '1996-06-29' ------- '1996-07-09' ------- '1996-07-22' ------- '1996-08-04' ------- '1996-08-17' ------- '1996-08-29' ------- '1996-09-09' ------- '1996-09-21' ------- '1996-10-02' ------- '1996-10-13' ------- '1996-10-27' ------- '1996-11-10' ------- '1996-11-23' ------- '1996-12-03' ------- '1996-12-17' ------- '1996-12-28' ------- '1997-01-08' ------- '1997-01-18' ------- '1997-01-30' ------- '1997-02-11' ------- '1997-02-23' ------- '1997-03-10' ------- '1997-03-20' ------- '1997-03-31' ------- '1997-04-10' ------- '1997-04-23' ------- '1997-05-06' ------- '1997-05-18' ------- '1997-05-30' ------- '1997-06-12' ------- '1997-06-24' ------- '1997-07-07' ------- '1997-07-20' ------- '1997-08-03' ------- '1997-08-16' ------- '1997-08-27' ------- '1997-09-08' ------- '1997-09-18' ------- '1997-10-01' ------- '1997-10-10' ------- '1997-10-20' ------- '1997-11-01' ------- '1997-11-13' ------- '1997-11-27' ------- '1997-12-06' ------- '1997-12-19' ------- '1997-12-29' ------- '1998-01-10' ------- '1998-01-20' ------- '1998-02-03' ------- '1998-02-17' ------- '1998-02-28' ------- '1998-03-11' ------- '1998-03-24' ------- '1998-04-05' ------- '1998-04-17' ------- '1998-05-01' ------- '1998-05-11' ------- '1998-05-22' ------- '1998-06-03' ------- '1998-06-13' ------- '1998-06-27' ------- '1998-07-12' ------- '1998-07-21' ------- '1998-07-31' ------- '1998-08-08' ------- '1998-08-22' ------- '1998-09-03' ------- '1998-09-16' ------- '1998-10-03' ------- '1998-10-26' ------- '1998-12-16' - │ │ │ │ │ ├── key: (37,40) - │ │ │ │ │ ├── fd: (37,40)-->(38,39,41-52) - │ │ │ │ │ └── ordering: +37 + │ │ │ │ │ ├── columns: l2.l_orderkey:37(int!null) l2.l_suppkey:39(int!null) + │ │ │ │ │ └── stats: [rows=6001215, distinct(37)=1527270, null(37)=0, distinct(39)=9920, null(39)=0] + │ │ │ │ │ histogram(37)= 0 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 29405 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 30006 600 + │ │ │ │ │ <--- 326 ------- 28929 ------- 50503 ------- 89793 ------- 115938 ------- 146944 ------- 176768 ------- 211201 ------- 237860 ------- 266885 ------- 297604 ------- 330021 ------- 365889 ------- 398951 ------- 426117 ------- 451328 ------- 472134 ------- 499590 ------- 529284 ------- 557254 ------- 589154 ------- 619394 ------- 642951 ------- 670113 ------- 692931 ------- 721157 ------- 751687 ------- 777766 ------- 804582 ------- 836740 ------- 868868 ------- 898912 ------- 922500 ------- 946403 ------- 984870 ------- 1007936 ------- 1030117 ------- 1062275 ------- 1093572 ------- 1120709 ------- 1150981 ------- 1182786 ------- 1206406 ------- 1234116 ------- 1260961 ------- 1290502 ------- 1329510 ------- 1355426 ------- 1381313 ------- 1409796 ------- 1445254 ------- 1479233 ------- 1504935 ------- 1531079 ------- 1559650 ------- 1583616 ------- 1617504 ------- 1655749 ------- 1685185 ------- 1718183 ------- 1747716 ------- 1772131 ------- 1802372 ------- 1833315 ------- 1862403 ------- 1897894 ------- 1922819 ------- 1954405 ------- 1979329 ------- 2009859 ------- 2041670 ------- 2070851 ------- 2093828 ------- 2127973 ------- 2167777 ------- 2194883 ------- 2227814 ------- 2262437 ------- 2296353 ------- 2321024 ------- 2346051 ------- 2376257 ------- 2404932 ------- 2446273 ------- 2474081 ------- 2504515 ------- 2535302 ------- 2561413 ------- 2592737 ------- 2616801 ------- 2646112 ------- 2676546 ------- 2702116 ------- 2732454 ------- 2765382 ------- 2799495 ------- 2828866 ------- 2868737 ------- 2910625 ------- 2938464 ------- 2963140 ------- 3003302 ------- 3043264 ------- 3069123 ------- 3095909 ------- 3126693 ------- 3160485 ------- 3196039 ------- 3229504 ------- 3259712 ------- 3286439 ------- 3318852 ------- 3346821 ------- 3370119 ------- 3395204 ------- 3425888 ------- 3448611 ------- 3476130 ------- 3502372 ------- 3529474 ------- 3556390 ------- 3583553 ------- 3612550 ------- 3647875 ------- 3679140 ------- 3702661 ------- 3738017 ------- 3778050 ------- 3806114 ------- 3839074 ------- 3872805 ------- 3905697 ------- 3926212 ------- 3959841 ------- 3997281 ------- 4033861 ------- 4063591 ------- 4097831 ------- 4124807 ------- 4158656 ------- 4195748 ------- 4234274 ------- 4269952 ------- 4298949 ------- 4332806 ------- 4364705 ------- 4398246 ------- 4430695 ------- 4466403 ------- 4494662 ------- 4524420 ------- 4558561 ------- 4601092 ------- 4632871 ------- 4658694 ------- 4690501 ------- 4728066 ------- 4758657 ------- 4788294 ------- 4818597 ------- 4855874 ------- 4890913 ------- 4915366 ------- 4940709 ------- 4972357 ------- 4995298 ------- 5019523 ------- 5043329 ------- 5077376 ------- 5109920 ------- 5136582 ------- 5161152 ------- 5191846 ------- 5219973 ------- 5251015 ------- 5282021 ------- 5312355 ------- 5343207 ------- 5381318 ------- 5416163 ------- 5445382 ------- 5476933 ------- 5509185 ------- 5539237 ------- 5566818 ------- 5588739 ------- 5620481 ------- 5644001 ------- 5667010 ------- 5689476 ------- 5724709 ------- 5755398 ------- 5790598 ------- 5819425 ------- 5846341 ------- 5874656 ------- 5908067 ------- 5933572 ------- 5962659 ------- 5999971 + │ │ │ │ │ histogram(39)= 0 600 28805 3000 29405 600 29405 600 29405 600 29405 600 29405 1200 29405 1200 29405 1200 28805 1200 28805 1800 29405 600 29405 1200 29405 600 29405 600 28805 1200 29405 1200 28805 1200 28205 1800 29405 1200 29405 600 29405 1200 29405 1200 29405 600 29405 1200 29405 1200 28805 1800 29405 600 28805 1800 28805 1200 28805 1200 29405 1200 28805 1800 29405 600 28205 1800 29405 600 29405 600 28805 1200 29405 600 28805 1200 29405 600 29405 600 28805 1200 28805 1800 27605 2400 29405 600 28205 1800 29405 2400 29405 600 28805 1800 28205 1800 28805 1200 29405 3000 29405 1200 29405 1800 29405 600 29405 600 28205 1800 29405 600 29405 1800 29405 1800 29405 600 29405 600 28805 1200 28805 1200 29405 1200 28205 1800 29405 600 28805 1200 27605 2400 29405 600 29405 1200 29405 1200 29405 600 29405 1800 29405 1200 28205 1800 29405 600 29405 1200 29405 1200 28805 1200 28205 1800 29405 1800 28805 1200 29405 600 29405 1800 28205 2400 29405 600 28805 1200 28205 2400 28805 1200 27605 2400 28805 1200 29405 600 28805 1800 29405 1800 28805 600 28205 1800 28805 600 29405 600 29405 1200 28805 600 28805 1200 29405 1800 27605 1800 27605 2400 27605 1800 29405 1200 28805 600 28805 1200 29405 1200 28805 2400 28805 1200 28805 600 28205 1200 28205 1200 29405 600 28805 1200 29405 600 28205 2400 28205 1200 29405 600 29405 1800 28805 1200 28205 1200 27605 2400 27605 1800 28805 1200 29405 600 28805 1200 29405 600 29405 600 28805 1200 29405 600 29405 600 29405 600 28805 1200 29405 1200 28805 600 29405 1800 28205 1200 27605 1800 29405 600 29405 600 29405 1200 28805 1200 28805 1200 28205 1200 29405 1800 28205 1800 28805 600 28805 1200 28205 1200 29405 600 28805 1800 28205 1800 27605 2400 28805 600 29405 600 28805 1200 29405 600 28805 2400 28805 1200 28805 1200 28805 600 28205 1200 28805 1200 29405 600 29405 600 29405 1800 28805 600 28805 600 28805 2400 28805 600 28805 1800 28805 1200 28805 600 27005 2400 29405 600 28205 1800 29405 1200 27605 1800 28805 1200 28805 1200 29405 600 29405 600 29405 600 29405 1200 28805 600 29405 600 27605 2400 28805 1200 29405 600 28805 1800 28805 1800 28205 1200 28805 1200 28805 600 29405 1200 28205 1200 + │ │ │ │ │ <--- 6 ------- 59 ------- 106 ------- 147 ------- 189 ------- 219 ------- 272 ------- 335 ------- 387 ------- 433 ------- 485 ------- 539 ------- 600 ------- 653 ------- 698 ------- 749 ------- 806 ------- 855 ------- 904 ------- 961 ------- 1008 ------- 1065 ------- 1115 ------- 1163 ------- 1212 ------- 1270 ------- 1329 ------- 1373 ------- 1417 ------- 1470 ------- 1514 ------- 1566 ------- 1616 ------- 1668 ------- 1719 ------- 1765 ------- 1819 ------- 1871 ------- 1926 ------- 1978 ------- 2030 ------- 2080 ------- 2128 ------- 2173 ------- 2223 ------- 2270 ------- 2318 ------- 2382 ------- 2444 ------- 2491 ------- 2534 ------- 2584 ------- 2632 ------- 2675 ------- 2736 ------- 2781 ------- 2841 ------- 2905 ------- 2940 ------- 2996 ------- 3045 ------- 3084 ------- 3124 ------- 3181 ------- 3224 ------- 3268 ------- 3318 ------- 3362 ------- 3419 ------- 3466 ------- 3515 ------- 3560 ------- 3615 ------- 3669 ------- 3725 ------- 3777 ------- 3825 ------- 3871 ------- 3923 ------- 3980 ------- 4035 ------- 4078 ------- 4135 ------- 4184 ------- 4244 ------- 4296 ------- 4346 ------- 4396 ------- 4444 ------- 4489 ------- 4540 ------- 4575 ------- 4627 ------- 4683 ------- 4731 ------- 4777 ------- 4831 ------- 4900 ------- 4953 ------- 5006 ------- 5061 ------- 5119 ------- 5161 ------- 5208 ------- 5260 ------- 5315 ------- 5361 ------- 5415 ------- 5474 ------- 5529 ------- 5572 ------- 5635 ------- 5689 ------- 5738 ------- 5792 ------- 5835 ------- 5890 ------- 5935 ------- 5997 ------- 6039 ------- 6094 ------- 6151 ------- 6201 ------- 6245 ------- 6291 ------- 6343 ------- 6387 ------- 6437 ------- 6480 ------- 6540 ------- 6580 ------- 6629 ------- 6673 ------- 6718 ------- 6771 ------- 6823 ------- 6878 ------- 6935 ------- 6974 ------- 7017 ------- 7060 ------- 7112 ------- 7170 ------- 7231 ------- 7279 ------- 7329 ------- 7373 ------- 7427 ------- 7477 ------- 7520 ------- 7564 ------- 7616 ------- 7671 ------- 7716 ------- 7760 ------- 7815 ------- 7861 ------- 7917 ------- 7969 ------- 8018 ------- 8063 ------- 8112 ------- 8180 ------- 8229 ------- 8268 ------- 8320 ------- 8376 ------- 8432 ------- 8474 ------- 8522 ------- 8569 ------- 8616 ------- 8664 ------- 8705 ------- 8765 ------- 8814 ------- 8868 ------- 8906 ------- 8948 ------- 8990 ------- 9035 ------- 9090 ------- 9137 ------- 9188 ------- 9241 ------- 9292 ------- 9354 ------- 9411 ------- 9472 ------- 9526 ------- 9569 ------- 9613 ------- 9658 ------- 9708 ------- 9737 ------- 9792 ------- 9838 ------- 9903 ------- 9952 ------- 10000 │ │ │ │ └── filters + │ │ │ │ ├── l2.l_orderkey = l1.l_orderkey [type=bool, outer=(8,37), constraints=(/8: (/NULL - ]; /37: (/NULL - ]), fd=(8)==(37), (37)==(8)] │ │ │ │ └── l2.l_suppkey != l1.l_suppkey [type=bool, outer=(10,39), constraints=(/10: (/NULL - ]; /39: (/NULL - ])] │ │ │ ├── inner-join (lookup supplier) │ │ │ │ ├── save-table-name: q21_lookup_join_13 @@ -6569,7 +6548,7 @@ column_names row_count_est row_count_err distinct_count_est distinct_coun {s_nationkey} 80661.00 9.65 <== 1.00 1.00 0.00 1.00 {s_suppkey} 80661.00 9.65 <== 9920.00 24.14 <== 0.00 1.00 -stats table=q21_merge_join_6 +stats table=q21_semi_join_6 ---- column_names row_count distinct_count null_count {l_commitdate} 202092 2465 0 @@ -6627,117 +6606,41 @@ column_names row_count_est row_count_err distinct_count_est distinct_coun stats table=q21_select_10 ---- -column_names row_count distinct_count null_count -{l_comment} 3793296 3017108 0 -{l_commitdate} 3793296 2466 0 -{l_discount} 3793296 11 0 -{l_extendedprice} 3793296 902869 0 -{l_linenumber} 3793296 7 0 -{l_linestatus} 3793296 2 0 -{l_orderkey} 3793296 1405723 0 -{l_partkey} 3793296 199241 0 -{l_quantity} 3793296 50 0 -{l_receiptdate} 3793296 2525 0 -{l_returnflag} 3793296 3 0 -{l_shipdate} 3793296 2520 0 -{l_shipinstruct} 3793296 4 0 -{l_shipmode} 3793296 7 0 -{l_suppkey} 3793296 9920 0 -{l_tax} 3793296 9 0 +column_names row_count distinct_count null_count +{l_commitdate} 3793296 2466 0 +{l_orderkey} 3793296 1405723 0 +{l_receiptdate} 3793296 2525 0 +{l_suppkey} 3793296 9920 0 ~~~~ -column_names row_count_est row_count_err distinct_count_est distinct_count_err null_count_est null_count_err -{l_comment} 2000405.00 1.90 1893898.00 1.59 0.00 1.00 -{l_commitdate} 2000405.00 1.90 2466.00 1.00 0.00 1.00 -{l_discount} 2000405.00 1.90 11.00 1.00 0.00 1.00 -{l_extendedprice} 2000405.00 1.90 859071.00 1.05 0.00 1.00 -{l_linenumber} 2000405.00 1.90 7.00 1.00 0.00 1.00 -{l_linestatus} 2000405.00 1.90 2.00 1.00 0.00 1.00 -{l_orderkey} 2000405.00 1.90 1216823.00 1.16 0.00 1.00 -{l_partkey} 2000405.00 1.90 199240.00 1.00 0.00 1.00 -{l_quantity} 2000405.00 1.90 50.00 1.00 0.00 1.00 -{l_receiptdate} 2000405.00 1.90 2554.00 1.01 0.00 1.00 -{l_returnflag} 2000405.00 1.90 3.00 1.00 0.00 1.00 -{l_shipdate} 2000405.00 1.90 2526.00 1.00 0.00 1.00 -{l_shipinstruct} 2000405.00 1.90 4.00 1.00 0.00 1.00 -{l_shipmode} 2000405.00 1.90 7.00 1.00 0.00 1.00 -{l_suppkey} 2000405.00 1.90 9920.00 1.00 0.00 1.00 -{l_tax} 2000405.00 1.90 9.00 1.00 0.00 1.00 +column_names row_count_est row_count_err distinct_count_est distinct_count_err null_count_est null_count_err +{l_commitdate} 2000405.00 1.90 2466.00 1.00 0.00 1.00 +{l_orderkey} 2000405.00 1.90 1216823.00 1.16 0.00 1.00 +{l_receiptdate} 2000405.00 1.90 2554.00 1.01 0.00 1.00 +{l_suppkey} 2000405.00 1.90 9920.00 1.00 0.00 1.00 stats table=q21_scan_11 ---- -column_names row_count distinct_count null_count -{l_comment} 6001215 4643303 0 -{l_commitdate} 6001215 2466 0 -{l_discount} 6001215 11 0 -{l_extendedprice} 6001215 925955 0 -{l_linenumber} 6001215 7 0 -{l_linestatus} 6001215 2 0 -{l_orderkey} 6001215 1527270 0 -{l_partkey} 6001215 199241 0 -{l_quantity} 6001215 50 0 -{l_receiptdate} 6001215 2554 0 -{l_returnflag} 6001215 3 0 -{l_shipdate} 6001215 2526 0 -{l_shipinstruct} 6001215 4 0 -{l_shipmode} 6001215 7 0 -{l_suppkey} 6001215 9920 0 -{l_tax} 6001215 9 0 +column_names row_count distinct_count null_count +{l_commitdate} 6001215 2466 0 +{l_orderkey} 6001215 1527270 0 +{l_receiptdate} 6001215 2554 0 +{l_suppkey} 6001215 9920 0 ~~~~ -column_names row_count_est row_count_err distinct_count_est distinct_count_err null_count_est null_count_err -{l_comment} 6001215.00 1.00 4643303.00 1.00 0.00 1.00 -{l_commitdate} 6001215.00 1.00 2466.00 1.00 0.00 1.00 -{l_discount} 6001215.00 1.00 11.00 1.00 0.00 1.00 -{l_extendedprice} 6001215.00 1.00 925955.00 1.00 0.00 1.00 -{l_linenumber} 6001215.00 1.00 7.00 1.00 0.00 1.00 -{l_linestatus} 6001215.00 1.00 2.00 1.00 0.00 1.00 -{l_orderkey} 6001215.00 1.00 1527270.00 1.00 0.00 1.00 -{l_partkey} 6001215.00 1.00 199241.00 1.00 0.00 1.00 -{l_quantity} 6001215.00 1.00 50.00 1.00 0.00 1.00 -{l_receiptdate} 6001215.00 1.00 2554.00 1.00 0.00 1.00 -{l_returnflag} 6001215.00 1.00 3.00 1.00 0.00 1.00 -{l_shipdate} 6001215.00 1.00 2526.00 1.00 0.00 1.00 -{l_shipinstruct} 6001215.00 1.00 4.00 1.00 0.00 1.00 -{l_shipmode} 6001215.00 1.00 7.00 1.00 0.00 1.00 -{l_suppkey} 6001215.00 1.00 9920.00 1.00 0.00 1.00 -{l_tax} 6001215.00 1.00 9.00 1.00 0.00 1.00 +column_names row_count_est row_count_err distinct_count_est distinct_count_err null_count_est null_count_err +{l_commitdate} 6001215.00 1.00 2466.00 1.00 0.00 1.00 +{l_orderkey} 6001215.00 1.00 1527270.00 1.00 0.00 1.00 +{l_receiptdate} 6001215.00 1.00 2554.00 1.00 0.00 1.00 +{l_suppkey} 6001215.00 1.00 9920.00 1.00 0.00 1.00 stats table=q21_scan_12 ---- -column_names row_count distinct_count null_count -{l_comment} 6001215 4643303 0 -{l_commitdate} 6001215 2466 0 -{l_discount} 6001215 11 0 -{l_extendedprice} 6001215 925955 0 -{l_linenumber} 6001215 7 0 -{l_linestatus} 6001215 2 0 -{l_orderkey} 6001215 1527270 0 -{l_partkey} 6001215 199241 0 -{l_quantity} 6001215 50 0 -{l_receiptdate} 6001215 2554 0 -{l_returnflag} 6001215 3 0 -{l_shipdate} 6001215 2526 0 -{l_shipinstruct} 6001215 4 0 -{l_shipmode} 6001215 7 0 -{l_suppkey} 6001215 9920 0 -{l_tax} 6001215 9 0 +column_names row_count distinct_count null_count +{l_orderkey} 6001215 1527272 0 +{l_suppkey} 6001215 9920 0 ~~~~ -column_names row_count_est row_count_err distinct_count_est distinct_count_err null_count_est null_count_err -{l_comment} 6001215.00 1.00 4643303.00 1.00 0.00 1.00 -{l_commitdate} 6001215.00 1.00 2466.00 1.00 0.00 1.00 -{l_discount} 6001215.00 1.00 11.00 1.00 0.00 1.00 -{l_extendedprice} 6001215.00 1.00 925955.00 1.00 0.00 1.00 -{l_linenumber} 6001215.00 1.00 7.00 1.00 0.00 1.00 -{l_linestatus} 6001215.00 1.00 2.00 1.00 0.00 1.00 -{l_orderkey} 6001215.00 1.00 1527270.00 1.00 0.00 1.00 -{l_partkey} 6001215.00 1.00 199241.00 1.00 0.00 1.00 -{l_quantity} 6001215.00 1.00 50.00 1.00 0.00 1.00 -{l_receiptdate} 6001215.00 1.00 2554.00 1.00 0.00 1.00 -{l_returnflag} 6001215.00 1.00 3.00 1.00 0.00 1.00 -{l_shipdate} 6001215.00 1.00 2526.00 1.00 0.00 1.00 -{l_shipinstruct} 6001215.00 1.00 4.00 1.00 0.00 1.00 -{l_shipmode} 6001215.00 1.00 7.00 1.00 0.00 1.00 -{l_suppkey} 6001215.00 1.00 9920.00 1.00 0.00 1.00 -{l_tax} 6001215.00 1.00 9.00 1.00 0.00 1.00 +column_names row_count_est row_count_err distinct_count_est distinct_count_err null_count_est null_count_err +{l_orderkey} 6001215.00 1.00 1527270.00 1.00 0.00 1.00 +{l_suppkey} 6001215.00 1.00 9920.00 1.00 0.00 1.00 stats table=q21_lookup_join_13 ---- diff --git a/pkg/sql/opt/norm/rules/prune_cols.opt b/pkg/sql/opt/norm/rules/prune_cols.opt index d010462d003c..755b2302358a 100644 --- a/pkg/sql/opt/norm/rules/prune_cols.opt +++ b/pkg/sql/opt/norm/rules/prune_cols.opt @@ -240,6 +240,31 @@ $passthrough ) +# PruneSemiAntiJoinRightCols discards columns on the right side of a +# Semi or Anti join that are never used. This is similar to PruneJoinRightCols. +# PruneJoinRightCols normally prunes the RHS of a join but it can't do that +# in the case of Semi/Anti joins because the projection is eliminated after +# the LHS is pruned. This rule doesn't require a projection over the Semi/Anti +# join in order to prune the RHS. +[PruneSemiAntiJoinRightCols, Normalize] +(SemiJoin | SemiJoinApply | AntiJoin | AntiJoinApply + $left:* + $right:* + $on:* + $private:* & + (CanPruneCols + $right + $needed:(FilterOuterCols $on) + ) +) +=> +((OpName) + $left + (PruneCols $right $needed) + $on + $private +) + # PruneAggCols discards aggregation columns in a GroupBy that are never used. [PruneAggCols, Normalize] (Project diff --git a/pkg/sql/opt/norm/testdata/rules/combo b/pkg/sql/opt/norm/testdata/rules/combo index ba03f531fe2c..5fa3a667ee43 100644 --- a/pkg/sql/opt/norm/testdata/rules/combo +++ b/pkg/sql/opt/norm/testdata/rules/combo @@ -680,8 +680,32 @@ DecorrelateJoin │ └── y = i [type=bool, outer=(2,7), constraints=(/2: (/NULL - ]; /7: (/NULL - ]), fd=(2)==(7), (7)==(2)] └── filters (true) ================================================================================ +PruneSemiAntiJoinRightCols + Cost: 2180.06 +================================================================================ + select + ├── columns: k:1(int!null) i:2(int) f:3(float) s:4(string) j:5(jsonb) + ├── key: (1) + ├── fd: (1)-->(2-5), (3,4)~~>(1,2,5) + ├── semi-join (hash) + │ ├── columns: k:1(int!null) i:2(int) f:3(float) s:4(string) j:5(jsonb) + │ ├── key: (1) + │ ├── fd: (1)-->(2-5), (3,4)~~>(1,2,5) + │ ├── scan a + │ │ ├── columns: k:1(int!null) i:2(int) f:3(float) s:4(string) j:5(jsonb) + │ │ ├── key: (1) + │ │ └── fd: (1)-->(2-5), (3,4)~~>(1,2,5) + │ ├── scan xy + - │ │ ├── columns: x:6(int!null) y:7(int) + - │ │ ├── key: (6) + - │ │ └── fd: (6)-->(7) + + │ │ └── columns: y:7(int) + │ └── filters + │ └── y = i [type=bool, outer=(2,7), constraints=(/2: (/NULL - ]; /7: (/NULL - ]), fd=(2)==(7), (7)==(2)] + └── filters (true) +================================================================================ EliminateSelect - Cost: 2180.05 + Cost: 2170.05 ================================================================================ -select +semi-join (hash) @@ -698,17 +722,13 @@ EliminateSelect - │ │ ├── key: (1) - │ │ └── fd: (1)-->(2-5), (3,4)~~>(1,2,5) - │ ├── scan xy - - │ │ ├── columns: x:6(int!null) y:7(int) - - │ │ ├── key: (6) - - │ │ └── fd: (6)-->(7) + - │ │ └── columns: y:7(int) - │ └── filters - │ └── y = i [type=bool, outer=(2,7), constraints=(/2: (/NULL - ]; /7: (/NULL - ]), fd=(2)==(7), (7)==(2)] - └── filters (true) + │ └── fd: (1)-->(2-5), (3,4)~~>(1,2,5) + ├── scan xy - + │ ├── columns: x:6(int!null) y:7(int) - + │ ├── key: (6) - + │ └── fd: (6)-->(7) + + │ └── columns: y:7(int) + └── filters + └── y = i [type=bool, outer=(2,7), constraints=(/2: (/NULL - ]; /7: (/NULL - ]), fd=(2)==(7), (7)==(2)] -------------------------------------------------------------------------------- @@ -725,7 +745,7 @@ GenerateLookupJoins (no changes) -------------------------------------------------------------------------------- ================================================================================ Final best expression - Cost: 2180.05 + Cost: 2170.05 ================================================================================ semi-join (hash) ├── columns: k:1(int!null) i:2(int) f:3(float) s:4(string) j:5(jsonb) @@ -736,9 +756,7 @@ Final best expression │ ├── key: (1) │ └── fd: (1)-->(2-5), (3,4)~~>(1,2,5) ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) - │ ├── key: (6) - │ └── fd: (6)-->(7) + │ └── columns: y:7(int) └── filters └── y = i [type=bool, outer=(2,7), constraints=(/2: (/NULL - ]; /7: (/NULL - ]), fd=(2)==(7), (7)==(2)] diff --git a/pkg/sql/opt/norm/testdata/rules/decorrelate b/pkg/sql/opt/norm/testdata/rules/decorrelate index 73e3207c1de0..76a464e1b0b4 100644 --- a/pkg/sql/opt/norm/testdata/rules/decorrelate +++ b/pkg/sql/opt/norm/testdata/rules/decorrelate @@ -32,9 +32,8 @@ semi-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -53,9 +52,8 @@ anti-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -154,9 +152,8 @@ delete xy │ ├── key: (3) │ └── ordering: +3 ├── scan uv - │ ├── columns: u:5(int!null) v:6(int) + │ ├── columns: u:5(int!null) │ ├── key: (5) - │ ├── fd: (5)-->(6) │ └── ordering: +5 └── filters (true) @@ -785,20 +782,17 @@ semi-join-apply │ ├── key: (1) │ └── fd: (1)-->(2-5) ├── limit - │ ├── columns: x:6(int!null) y:7(int!null) + │ ├── columns: y:7(int!null) │ ├── outer: (1) │ ├── cardinality: [0 - 1] │ ├── key: () - │ ├── fd: ()-->(6,7) + │ ├── fd: ()-->(7) │ ├── select - │ │ ├── columns: x:6(int!null) y:7(int!null) + │ │ ├── columns: y:7(int!null) │ │ ├── outer: (1) - │ │ ├── key: (6) │ │ ├── fd: ()-->(7) │ │ ├── scan xy - │ │ │ ├── columns: x:6(int!null) y:7(int) - │ │ │ ├── key: (6) - │ │ │ └── fd: (6)-->(7) + │ │ │ └── columns: y:7(int) │ │ └── filters │ │ └── y = k [type=bool, outer=(1,7), constraints=(/1: (/NULL - ]; /7: (/NULL - ]), fd=(1)==(7), (7)==(1)] │ └── const: 1 [type=int] @@ -818,20 +812,17 @@ anti-join-apply │ ├── key: (1) │ └── fd: (1)-->(2-5) ├── limit - │ ├── columns: x:6(int!null) y:7(int!null) + │ ├── columns: y:7(int!null) │ ├── outer: (1) │ ├── cardinality: [0 - 1] │ ├── key: () - │ ├── fd: ()-->(6,7) + │ ├── fd: ()-->(7) │ ├── select - │ │ ├── columns: x:6(int!null) y:7(int!null) + │ │ ├── columns: y:7(int!null) │ │ ├── outer: (1) - │ │ ├── key: (6) │ │ ├── fd: ()-->(7) │ │ ├── scan xy - │ │ │ ├── columns: x:6(int!null) y:7(int) - │ │ │ ├── key: (6) - │ │ │ └── fd: (6)-->(7) + │ │ │ └── columns: y:7(int) │ │ └── filters │ │ └── y = k [type=bool, outer=(1,7), constraints=(/1: (/NULL - ]; /7: (/NULL - ]), fd=(1)==(7), (7)==(1)] │ └── const: 1 [type=int] @@ -912,20 +903,18 @@ semi-join-apply │ ├── key: (1) │ └── fd: (1)-->(2-5) ├── semi-join (hash) - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── outer: (4) │ ├── key: (6) - │ ├── fd: (6)-->(7) │ ├── scan xy - │ │ ├── columns: x:6(int!null) y:7(int) - │ │ ├── key: (6) - │ │ └── fd: (6)-->(7) + │ │ ├── columns: x:6(int!null) + │ │ └── key: (6) │ ├── scan uv - │ │ ├── columns: u:8(int!null) v:9(int) + │ │ ├── columns: u:8(int!null) │ │ ├── constraint: /8: [/10 - /10] │ │ ├── cardinality: [0 - 1] │ │ ├── key: () - │ │ └── fd: ()-->(8,9) + │ │ └── fd: ()-->(8) │ └── filters │ └── s = 'foo' [type=bool, outer=(4), constraints=(/4: [/'foo' - /'foo']; tight), fd=()-->(4)] └── filters @@ -1436,21 +1425,19 @@ semi-join (merge) │ ├── key: (1) │ └── ordering: +1 ├── inner-join (merge) - │ ├── columns: x:6(int!null) y:7(int) u:8(int!null) v:9(int) + │ ├── columns: x:6(int!null) u:8(int!null) │ ├── left ordering: +6 │ ├── right ordering: +8 │ ├── key: (8) - │ ├── fd: (6)-->(7), (8)-->(9), (6)==(8), (8)==(6) + │ ├── fd: (6)==(8), (8)==(6) │ ├── ordering: +(6|8) [actual: +6] │ ├── scan xy - │ │ ├── columns: x:6(int!null) y:7(int) + │ │ ├── columns: x:6(int!null) │ │ ├── key: (6) - │ │ ├── fd: (6)-->(7) │ │ └── ordering: +6 │ ├── scan uv - │ │ ├── columns: u:8(int!null) v:9(int) + │ │ ├── columns: u:8(int!null) │ │ ├── key: (8) - │ │ ├── fd: (8)-->(9) │ │ └── ordering: +8 │ └── filters (true) └── filters (true) @@ -1473,21 +1460,19 @@ anti-join (merge) │ ├── key: (1) │ └── ordering: +1 ├── inner-join (merge) - │ ├── columns: x:6(int!null) y:7(int) u:8(int!null) v:9(int) + │ ├── columns: x:6(int!null) u:8(int!null) │ ├── left ordering: +6 │ ├── right ordering: +8 │ ├── key: (8) - │ ├── fd: (6)-->(7), (8)-->(9), (6)==(8), (8)==(6) + │ ├── fd: (6)==(8), (8)==(6) │ ├── ordering: +(6|8) [actual: +6] │ ├── scan xy - │ │ ├── columns: x:6(int!null) y:7(int) + │ │ ├── columns: x:6(int!null) │ │ ├── key: (6) - │ │ ├── fd: (6)-->(7) │ │ └── ordering: +6 │ ├── scan uv - │ │ ├── columns: u:8(int!null) v:9(int) + │ │ ├── columns: u:8(int!null) │ │ ├── key: (8) - │ │ ├── fd: (8)-->(9) │ │ └── ordering: +8 │ └── filters (true) └── filters (true) @@ -1565,21 +1550,18 @@ semi-join-apply │ ├── columns: k:1(int!null) │ └── key: (1) ├── left-join (merge) - │ ├── columns: x:6(int!null) y:7(int) u:8(int) v:9(int) + │ ├── columns: x:6(int!null) u:8(int) │ ├── left ordering: +6 │ ├── right ordering: +8 │ ├── outer: (1) │ ├── key: (6,8) - │ ├── fd: (6)-->(7), (8)-->(9) │ ├── scan xy - │ │ ├── columns: x:6(int!null) y:7(int) + │ │ ├── columns: x:6(int!null) │ │ ├── key: (6) - │ │ ├── fd: (6)-->(7) │ │ └── ordering: +6 │ ├── scan uv - │ │ ├── columns: u:8(int!null) v:9(int) + │ │ ├── columns: u:8(int!null) │ │ ├── key: (8) - │ │ ├── fd: (8)-->(9) │ │ └── ordering: +8 │ └── filters │ └── x = k [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] @@ -1606,26 +1588,14 @@ semi-join-apply │ ├── columns: k:1(int!null) │ └── key: (1) ├── semi-join (hash) - │ ├── columns: x:6(int!null) y:7(int) │ ├── outer: (1) - │ ├── key: (6) - │ ├── fd: (6)-->(7) │ ├── scan xy - │ │ ├── columns: x:6(int!null) y:7(int) - │ │ ├── key: (6) - │ │ └── fd: (6)-->(7) │ ├── inner-join (hash) - │ │ ├── columns: uv.u:8(int!null) uv.v:9(int) uv2.u:10(int!null) uv2.v:11(int) - │ │ ├── key: (8,10) - │ │ ├── fd: (8)-->(9), (10)-->(11) + │ │ ├── columns: uv2.u:10(int!null) │ │ ├── scan uv - │ │ │ ├── columns: uv.u:8(int!null) uv.v:9(int) - │ │ │ ├── key: (8) - │ │ │ └── fd: (8)-->(9) │ │ ├── scan uv2 - │ │ │ ├── columns: uv2.u:10(int!null) uv2.v:11(int) - │ │ │ ├── key: (10) - │ │ │ └── fd: (10)-->(11) + │ │ │ ├── columns: uv2.u:10(int!null) + │ │ │ └── key: (10) │ │ └── filters (true) │ └── filters │ └── uv2.u = k [type=bool, outer=(1,10), constraints=(/1: (/NULL - ]; /10: (/NULL - ]), fd=(1)==(10), (10)==(1)] @@ -3095,9 +3065,8 @@ semi-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -3140,15 +3109,13 @@ semi-join (hash) │ │ ├── key: (1) │ │ └── fd: (1)-->(2-5) │ ├── scan xy - │ │ ├── columns: x:8(int!null) y:9(int) - │ │ ├── key: (8) - │ │ └── fd: (8)-->(9) + │ │ ├── columns: x:8(int!null) + │ │ └── key: (8) │ └── filters │ └── x = i [type=bool, outer=(2,8), constraints=(/2: (/NULL - ]; /8: (/NULL - ]), fd=(2)==(8), (8)==(2)] ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) - │ ├── key: (6) - │ └── fd: (6)-->(7) + │ ├── columns: x:6(int!null) + │ └── key: (6) └── filters └── x = k [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] @@ -3188,21 +3155,18 @@ semi-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── semi-join (merge) - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── left ordering: +6 │ ├── right ordering: +8 │ ├── key: (6) - │ ├── fd: (6)-->(7) │ ├── ordering: +6 │ ├── scan xy - │ │ ├── columns: x:6(int!null) y:7(int) + │ │ ├── columns: x:6(int!null) │ │ ├── key: (6) - │ │ ├── fd: (6)-->(7) │ │ └── ordering: +6 │ ├── scan uv - │ │ ├── columns: u:8(int!null) v:9(int) + │ │ ├── columns: u:8(int!null) │ │ ├── key: (8) - │ │ ├── fd: (8)-->(9) │ │ └── ordering: +8 │ └── filters (true) └── filters (true) @@ -3225,9 +3189,8 @@ anti-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -3272,15 +3235,13 @@ anti-join (hash) │ │ ├── key: (1) │ │ └── fd: (1)-->(2-5) │ ├── scan xy - │ │ ├── columns: x:8(int!null) y:9(int) - │ │ ├── key: (8) - │ │ └── fd: (8)-->(9) + │ │ ├── columns: x:8(int!null) + │ │ └── key: (8) │ └── filters │ └── x = i [type=bool, outer=(2,8), constraints=(/2: (/NULL - ]; /8: (/NULL - ]), fd=(2)==(8), (8)==(2)] ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) - │ ├── key: (6) - │ └── fd: (6)-->(7) + │ ├── columns: x:6(int!null) + │ └── key: (6) └── filters └── x = k [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] @@ -3324,15 +3285,13 @@ semi-join (hash) │ │ ├── key: (1) │ │ └── fd: (1)-->(2-5) │ ├── scan xy - │ │ ├── columns: x:8(int!null) y:9(int) - │ │ ├── key: (8) - │ │ └── fd: (8)-->(9) + │ │ ├── columns: x:8(int!null) + │ │ └── key: (8) │ └── filters │ └── x = i [type=bool, outer=(2,8), constraints=(/2: (/NULL - ]; /8: (/NULL - ]), fd=(2)==(8), (8)==(2)] ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) - │ ├── key: (6) - │ └── fd: (6)-->(7) + │ ├── columns: x:6(int!null) + │ └── key: (6) └── filters └── x = k [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] diff --git a/pkg/sql/opt/norm/testdata/rules/join b/pkg/sql/opt/norm/testdata/rules/join index e8d2205756d0..6ba9b82e15f5 100644 --- a/pkg/sql/opt/norm/testdata/rules/join +++ b/pkg/sql/opt/norm/testdata/rules/join @@ -202,9 +202,8 @@ anti-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan b - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters └── s = 'foo' [type=bool, outer=(4), constraints=(/4: [/'foo' - /'foo']; tight), fd=()-->(4)] @@ -466,11 +465,10 @@ semi-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan b - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── constraint: /6: [/7 - /7] [/10 - /10] │ ├── cardinality: [0 - 2] │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -676,11 +674,10 @@ anti-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan b - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── constraint: /6: [/7 - /7] [/10 - /10] │ ├── cardinality: [0 - 2] │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -1184,28 +1181,25 @@ semi-join-apply │ ├── key: (1) │ └── fd: (1)-->(2) ├── anti-join (hash) - │ ├── columns: k:3(int!null) i:4(int) f:5(float!null) s:6(string!null) j:7(jsonb) + │ ├── columns: k:3(int!null) s:6(string!null) │ ├── outer: (2) │ ├── key: (3) - │ ├── fd: ()-->(6), (3)-->(4,5,7) + │ ├── fd: ()-->(6) │ ├── select - │ │ ├── columns: k:3(int!null) i:4(int) f:5(float!null) s:6(string!null) j:7(jsonb) + │ │ ├── columns: k:3(int!null) s:6(string!null) │ │ ├── key: (3) - │ │ ├── fd: ()-->(6), (3)-->(4,5,7) + │ │ ├── fd: ()-->(6) │ │ ├── scan a - │ │ │ ├── columns: k:3(int!null) i:4(int) f:5(float!null) s:6(string) j:7(jsonb) + │ │ │ ├── columns: k:3(int!null) s:6(string) │ │ │ ├── key: (3) - │ │ │ └── fd: (3)-->(4-7) + │ │ │ └── fd: (3)-->(6) │ │ └── filters │ │ └── s = 'foo' [type=bool, outer=(6), constraints=(/6: [/'foo' - /'foo']; tight), fd=()-->(6)] │ ├── select - │ │ ├── columns: k:8(int!null) i:9(int!null) f:10(float!null) s:11(string) j:12(jsonb) - │ │ ├── key: (8) - │ │ ├── fd: ()-->(9), (8)-->(10-12) + │ │ ├── columns: i:9(int!null) + │ │ ├── fd: ()-->(9) │ │ ├── scan a - │ │ │ ├── columns: k:8(int!null) i:9(int) f:10(float!null) s:11(string) j:12(jsonb) - │ │ │ ├── key: (8) - │ │ │ └── fd: (8)-->(9-12) + │ │ │ └── columns: i:9(int) │ │ └── filters │ │ └── i = 10 [type=bool, outer=(9), constraints=(/9: [/10 - /10]; tight), fd=()-->(9)] │ └── filters diff --git a/pkg/sql/opt/norm/testdata/rules/prune_cols b/pkg/sql/opt/norm/testdata/rules/prune_cols index 0197af6113fa..0737d39ada40 100644 --- a/pkg/sql/opt/norm/testdata/rules/prune_cols +++ b/pkg/sql/opt/norm/testdata/rules/prune_cols @@ -917,9 +917,8 @@ project │ │ ├── fd: (1)-->(2) │ │ └── ordering: +1 │ ├── scan xy - │ │ ├── columns: x:7(int!null) y:8(int) + │ │ ├── columns: x:7(int!null) │ │ ├── key: (7) - │ │ ├── fd: (7)-->(8) │ │ └── ordering: +7 │ └── filters (true) ├── scan xy @@ -957,9 +956,8 @@ project │ │ ├── fd: (1)-->(2) │ │ └── ordering: +1 │ ├── scan xy - │ │ ├── columns: x:7(int!null) y:8(int) + │ │ ├── columns: x:7(int!null) │ │ ├── key: (7) - │ │ ├── fd: (7)-->(8) │ │ └── ordering: +7 │ └── filters (true) ├── scan xy @@ -2679,3 +2677,140 @@ update abcde │ ├── fd: (11)-->(12,13) │ └── ordering: +11 └── filters (true) + +# -------------------------------------------------- +# PruneSemiAntiJoinRightCols +# -------------------------------------------------- + +# We should only see the `a` column scanned for family. +opt expect=PruneSemiAntiJoinRightCols +SELECT a, b, c FROM abcde WHERE EXISTS (SELECT * FROM family WHERE abcde.a=family.a) +---- +semi-join (hash) + ├── columns: a:1(int!null) b:2(int) c:3(int) + ├── key: (1) + ├── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan abcde@bc + │ ├── columns: abcde.a:1(int!null) abcde.b:2(int) abcde.c:3(int) + │ ├── key: (1) + │ └── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan "family"@secondary + │ ├── columns: "family".a:6(int!null) + │ └── key: (6) + └── filters + └── abcde.a = "family".a [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] + +# We should see the `a`, `b` and `c` columns scanned for family. +opt expect=PruneSemiAntiJoinRightCols +SELECT a, b, c FROM abcde WHERE EXISTS (SELECT * FROM family WHERE abcde.a=family.a AND abcde.b > family.b + family.c) +---- +semi-join (hash) + ├── columns: a:1(int!null) b:2(int) c:3(int) + ├── key: (1) + ├── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan abcde@bc + │ ├── columns: abcde.a:1(int!null) abcde.b:2(int) abcde.c:3(int) + │ ├── key: (1) + │ └── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan "family" + │ ├── columns: "family".a:6(int!null) "family".b:7(int) "family".c:8(int) + │ ├── key: (6) + │ └── fd: (6)-->(7,8) + └── filters + ├── abcde.a = "family".a [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] + └── abcde.b > ("family".b + "family".c) [type=bool, outer=(2,7,8), constraints=(/2: (/NULL - ])] + +opt expect=PruneSemiAntiJoinRightCols +SELECT a, b, c FROM abcde WHERE NOT EXISTS (SELECT * FROM family WHERE abcde.a=family.a) +---- +anti-join (hash) + ├── columns: a:1(int!null) b:2(int) c:3(int) + ├── key: (1) + ├── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan abcde@bc + │ ├── columns: abcde.a:1(int!null) abcde.b:2(int) abcde.c:3(int) + │ ├── key: (1) + │ └── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan "family"@secondary + │ ├── columns: "family".a:6(int!null) + │ └── key: (6) + └── filters + └── abcde.a = "family".a [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] + +# Test using multi-level nesting so we don't decorrelate the semi-join. +opt expect=PruneSemiAntiJoinRightCols +SELECT + a, b, c +FROM + abcde +WHERE + EXISTS( + SELECT + * + FROM + "family" + WHERE + abcde.a = "family".a AND EXISTS(SELECT * FROM a WHERE abcde.a = a.k) + ) +---- +semi-join-apply + ├── columns: a:1(int!null) b:2(int) c:3(int) + ├── key: (1) + ├── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan abcde@bc + │ ├── columns: abcde.a:1(int!null) abcde.b:2(int) abcde.c:3(int) + │ ├── key: (1) + │ └── fd: (1)-->(2,3), (2,3)~~>(1) + ├── semi-join (hash) + │ ├── columns: "family".a:6(int!null) + │ ├── outer: (1) + │ ├── key: (6) + │ ├── scan "family"@secondary + │ │ ├── columns: "family".a:6(int!null) + │ │ └── key: (6) + │ ├── scan a + │ │ ├── columns: k:11(int!null) + │ │ └── key: (11) + │ └── filters + │ └── abcde.a = k [type=bool, outer=(1,11), constraints=(/1: (/NULL - ]; /11: (/NULL - ]), fd=(1)==(11), (11)==(1)] + └── filters + └── abcde.a = "family".a [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] + +# Test using multi-level nesting so we don't decorrelate the anti-join. +opt expect=PruneSemiAntiJoinRightCols +SELECT + a, b, c +FROM + abcde +WHERE + NOT EXISTS( + SELECT + * + FROM + "family" + WHERE + abcde.a = "family".a AND EXISTS(SELECT * FROM a WHERE abcde.a = a.k) + ) +---- +anti-join-apply + ├── columns: a:1(int!null) b:2(int) c:3(int) + ├── key: (1) + ├── fd: (1)-->(2,3), (2,3)~~>(1) + ├── scan abcde@bc + │ ├── columns: abcde.a:1(int!null) abcde.b:2(int) abcde.c:3(int) + │ ├── key: (1) + │ └── fd: (1)-->(2,3), (2,3)~~>(1) + ├── semi-join (hash) + │ ├── columns: "family".a:6(int!null) + │ ├── outer: (1) + │ ├── key: (6) + │ ├── scan "family"@secondary + │ │ ├── columns: "family".a:6(int!null) + │ │ └── key: (6) + │ ├── scan a + │ │ ├── columns: k:11(int!null) + │ │ └── key: (11) + │ └── filters + │ └── abcde.a = k [type=bool, outer=(1,11), constraints=(/1: (/NULL - ]; /11: (/NULL - ]), fd=(1)==(11), (11)==(1)] + └── filters + └── abcde.a = "family".a [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1)==(6), (6)==(1)] diff --git a/pkg/sql/opt/norm/testdata/rules/select b/pkg/sql/opt/norm/testdata/rules/select index d7cc99013c6f..e8eec413816d 100644 --- a/pkg/sql/opt/norm/testdata/rules/select +++ b/pkg/sql/opt/norm/testdata/rules/select @@ -449,10 +449,9 @@ semi-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── constraint: /6: [/6 - ] │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) @@ -472,10 +471,9 @@ anti-join (merge) │ ├── fd: (1)-->(2-5) │ └── ordering: +1 ├── scan xy - │ ├── columns: x:6(int!null) y:7(int) + │ ├── columns: x:6(int!null) │ ├── constraint: /6: [/6 - ] │ ├── key: (6) - │ ├── fd: (6)-->(7) │ └── ordering: +6 └── filters (true) diff --git a/pkg/sql/opt/xform/testdata/external/hibernate b/pkg/sql/opt/xform/testdata/external/hibernate index 4a249521f286..64adb1baee5f 100644 --- a/pkg/sql/opt/xform/testdata/external/hibernate +++ b/pkg/sql/opt/xform/testdata/external/hibernate @@ -189,9 +189,7 @@ inner-join (hash) │ │ ├── key: (1) │ │ └── fd: (1)-->(2-4) │ ├── scan calls3_ - │ │ ├── columns: calls3_.id:15(int!null) phone_id:18(int) - │ │ ├── key: (15) - │ │ └── fd: (15)-->(18) + │ │ └── columns: phone_id:18(int) │ └── filters │ └── phone0_.id = phone_id [type=bool, outer=(1,18), constraints=(/1: (/NULL - ]; /18: (/NULL - ]), fd=(1)==(18), (18)==(1)] ├── inner-join (merge) @@ -253,9 +251,7 @@ project │ │ ├── key: (1) │ │ └── fd: (1)-->(2-4) │ ├── scan calls3_ - │ │ ├── columns: calls3_.id:15(int!null) phone_id:18(int) - │ │ ├── key: (15) - │ │ └── fd: (15)-->(18) + │ │ └── columns: phone_id:18(int) │ └── filters │ └── phone0_.id = phone_id [type=bool, outer=(1,18), constraints=(/1: (/NULL - ]; /18: (/NULL - ]), fd=(1)==(18), (18)==(1)] ├── inner-join (merge) @@ -328,9 +324,7 @@ inner-join (hash) │ │ └── filters │ │ └── address = $1 [type=bool, outer=(2), constraints=(/2: (/NULL - ])] │ ├── scan phones2_ - │ │ ├── columns: phones2_.id:10(int!null) person_id:13(int) - │ │ ├── key: (10) - │ │ └── fd: (10)-->(13) + │ │ └── columns: person_id:13(int) │ └── filters │ └── person0_.id = person_id [type=bool, outer=(1,13), constraints=(/1: (/NULL - ]; /13: (/NULL - ]), fd=(1)==(13), (13)==(1)] ├── select @@ -1070,9 +1064,7 @@ semi-join (hash) │ ├── key: (1) │ └── fd: (1)-->(2-6) ├── scan phones1_ - │ ├── columns: phones1_.id:7(int!null) person_id:10(int) - │ ├── key: (7) - │ └── fd: (7)-->(10) + │ └── columns: person_id:10(int) └── filters └── person0_.id = person_id [type=bool, outer=(1,10), constraints=(/1: (/NULL - ]; /10: (/NULL - ]), fd=(1)==(10), (10)==(1)] @@ -1267,9 +1259,7 @@ anti-join (hash) │ ├── key: (1) │ └── fd: (1)-->(2-6) ├── scan phones1_ - │ ├── columns: phones1_.id:7(int!null) person_id:10(int) - │ ├── key: (7) - │ └── fd: (7)-->(10) + │ └── columns: person_id:10(int) └── filters └── person0_.id = person_id [type=bool, outer=(1,10), constraints=(/1: (/NULL - ]; /10: (/NULL - ]), fd=(1)==(10), (10)==(1)] @@ -1302,9 +1292,7 @@ semi-join (hash) │ ├── key: (1) │ └── fd: (1)-->(2-6) ├── scan phones1_ - │ ├── columns: phones1_.id:7(int!null) person_id:10(int) - │ ├── key: (7) - │ └── fd: (7)-->(10) + │ └── columns: person_id:10(int) └── filters └── person0_.id = person_id [type=bool, outer=(1,10), constraints=(/1: (/NULL - ]; /10: (/NULL - ]), fd=(1)==(10), (10)==(1)] @@ -1333,9 +1321,7 @@ anti-join (hash) │ ├── key: (1) │ └── fd: (1)-->(2-4) ├── scan calls1_ - │ ├── columns: calls1_.id:6(int!null) phone_id:9(int) - │ ├── key: (6) - │ └── fd: (6)-->(9) + │ └── columns: phone_id:9(int) └── filters └── phone0_.id = phone_id [type=bool, outer=(1,9), constraints=(/1: (/NULL - ]; /9: (/NULL - ]), fd=(1)==(9), (9)==(1)] diff --git a/pkg/sql/opt/xform/testdata/external/tpch b/pkg/sql/opt/xform/testdata/external/tpch index d7271a7e7058..80223c491c56 100644 --- a/pkg/sql/opt/xform/testdata/external/tpch +++ b/pkg/sql/opt/xform/testdata/external/tpch @@ -2257,15 +2257,12 @@ limit │ │ ├── inner-join (hash) │ │ │ ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_nationkey:4(int!null) l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) n_nationkey:33(int!null) n_name:34(char!null) │ │ │ ├── fd: ()-->(34), (1)-->(2,4), (1)==(10), (10)==(1), (4)==(33), (33)==(4) - │ │ │ ├── semi-join (merge) + │ │ │ ├── semi-join (hash) │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) - │ │ │ │ ├── left ordering: +8 - │ │ │ │ ├── right ordering: +37 │ │ │ │ ├── anti-join (merge) │ │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) │ │ │ │ │ ├── left ordering: +8 │ │ │ │ │ ├── right ordering: +53 - │ │ │ │ │ ├── ordering: +8 │ │ │ │ │ ├── select │ │ │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) │ │ │ │ │ │ ├── ordering: +8 @@ -2275,25 +2272,19 @@ limit │ │ │ │ │ │ └── filters │ │ │ │ │ │ └── l1.l_receiptdate > l1.l_commitdate [type=bool, outer=(19,20), constraints=(/19: (/NULL - ]; /20: (/NULL - ])] │ │ │ │ │ ├── select - │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_partkey:54(int!null) l3.l_suppkey:55(int!null) l3.l_linenumber:56(int!null) l3.l_quantity:57(float!null) l3.l_extendedprice:58(float!null) l3.l_discount:59(float!null) l3.l_tax:60(float!null) l3.l_returnflag:61(char!null) l3.l_linestatus:62(char!null) l3.l_shipdate:63(date!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) l3.l_shipinstruct:66(char!null) l3.l_shipmode:67(char!null) l3.l_comment:68(varchar!null) - │ │ │ │ │ │ ├── key: (53,56) - │ │ │ │ │ │ ├── fd: (53,56)-->(54,55,57-68) + │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_suppkey:55(int!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) │ │ │ │ │ │ ├── ordering: +53 │ │ │ │ │ │ ├── scan l3 - │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_partkey:54(int!null) l3.l_suppkey:55(int!null) l3.l_linenumber:56(int!null) l3.l_quantity:57(float!null) l3.l_extendedprice:58(float!null) l3.l_discount:59(float!null) l3.l_tax:60(float!null) l3.l_returnflag:61(char!null) l3.l_linestatus:62(char!null) l3.l_shipdate:63(date!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) l3.l_shipinstruct:66(char!null) l3.l_shipmode:67(char!null) l3.l_comment:68(varchar!null) - │ │ │ │ │ │ │ ├── key: (53,56) - │ │ │ │ │ │ │ ├── fd: (53,56)-->(54,55,57-68) + │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_suppkey:55(int!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) │ │ │ │ │ │ │ └── ordering: +53 │ │ │ │ │ │ └── filters │ │ │ │ │ │ └── l3.l_receiptdate > l3.l_commitdate [type=bool, outer=(64,65), constraints=(/64: (/NULL - ]; /65: (/NULL - ])] │ │ │ │ │ └── filters │ │ │ │ │ └── l3.l_suppkey != l1.l_suppkey [type=bool, outer=(10,55), constraints=(/10: (/NULL - ]; /55: (/NULL - ])] - │ │ │ │ ├── scan l2 - │ │ │ │ │ ├── columns: l2.l_orderkey:37(int!null) l2.l_partkey:38(int!null) l2.l_suppkey:39(int!null) l2.l_linenumber:40(int!null) l2.l_quantity:41(float!null) l2.l_extendedprice:42(float!null) l2.l_discount:43(float!null) l2.l_tax:44(float!null) l2.l_returnflag:45(char!null) l2.l_linestatus:46(char!null) l2.l_shipdate:47(date!null) l2.l_commitdate:48(date!null) l2.l_receiptdate:49(date!null) l2.l_shipinstruct:50(char!null) l2.l_shipmode:51(char!null) l2.l_comment:52(varchar!null) - │ │ │ │ │ ├── key: (37,40) - │ │ │ │ │ ├── fd: (37,40)-->(38,39,41-52) - │ │ │ │ │ └── ordering: +37 + │ │ │ │ ├── scan l2@l_sk + │ │ │ │ │ └── columns: l2.l_orderkey:37(int!null) l2.l_suppkey:39(int!null) │ │ │ │ └── filters + │ │ │ │ ├── l2.l_orderkey = l1.l_orderkey [type=bool, outer=(8,37), constraints=(/8: (/NULL - ]; /37: (/NULL - ]), fd=(8)==(37), (37)==(8)] │ │ │ │ └── l2.l_suppkey != l1.l_suppkey [type=bool, outer=(10,39), constraints=(/10: (/NULL - ]; /39: (/NULL - ])] │ │ │ ├── inner-join (lookup supplier) │ │ │ │ ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_nationkey:4(int!null) n_nationkey:33(int!null) n_name:34(char!null) diff --git a/pkg/sql/opt/xform/testdata/external/tpch-no-stats b/pkg/sql/opt/xform/testdata/external/tpch-no-stats index 9cb2f6eb8edb..2c9c9f089c1e 100644 --- a/pkg/sql/opt/xform/testdata/external/tpch-no-stats +++ b/pkg/sql/opt/xform/testdata/external/tpch-no-stats @@ -2231,33 +2231,15 @@ limit │ │ │ ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_nationkey:4(int!null) l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) o_orderkey:24(int!null) o_orderstatus:26(char!null) │ │ │ ├── key columns: [10] = [1] │ │ │ ├── fd: ()-->(26), (8)==(24), (24)==(8), (1)-->(2,4), (1)==(10), (10)==(1) - │ │ │ ├── inner-join (merge) + │ │ │ ├── inner-join (hash) │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) o_orderkey:24(int!null) o_orderstatus:26(char!null) - │ │ │ │ ├── left ordering: +24 - │ │ │ │ ├── right ordering: +8 │ │ │ │ ├── fd: ()-->(26), (8)==(24), (24)==(8) - │ │ │ │ ├── select - │ │ │ │ │ ├── columns: o_orderkey:24(int!null) o_orderstatus:26(char!null) - │ │ │ │ │ ├── key: (24) - │ │ │ │ │ ├── fd: ()-->(26) - │ │ │ │ │ ├── ordering: +24 opt(26) [actual: +24] - │ │ │ │ │ ├── scan orders - │ │ │ │ │ │ ├── columns: o_orderkey:24(int!null) o_orderstatus:26(char!null) - │ │ │ │ │ │ ├── key: (24) - │ │ │ │ │ │ ├── fd: (24)-->(26) - │ │ │ │ │ │ └── ordering: +24 opt(26) [actual: +24] - │ │ │ │ │ └── filters - │ │ │ │ │ └── o_orderstatus = 'F' [type=bool, outer=(26), constraints=(/26: [/'F' - /'F']; tight), fd=()-->(26)] - │ │ │ │ ├── semi-join (merge) + │ │ │ │ ├── semi-join (hash) │ │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) - │ │ │ │ │ ├── left ordering: +8 - │ │ │ │ │ ├── right ordering: +37 - │ │ │ │ │ ├── ordering: +8 │ │ │ │ │ ├── anti-join (merge) │ │ │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) │ │ │ │ │ │ ├── left ordering: +8 │ │ │ │ │ │ ├── right ordering: +53 - │ │ │ │ │ │ ├── ordering: +8 │ │ │ │ │ │ ├── select │ │ │ │ │ │ │ ├── columns: l1.l_orderkey:8(int!null) l1.l_suppkey:10(int!null) l1.l_commitdate:19(date!null) l1.l_receiptdate:20(date!null) │ │ │ │ │ │ │ ├── ordering: +8 @@ -2267,27 +2249,32 @@ limit │ │ │ │ │ │ │ └── filters │ │ │ │ │ │ │ └── l1.l_receiptdate > l1.l_commitdate [type=bool, outer=(19,20), constraints=(/19: (/NULL - ]; /20: (/NULL - ])] │ │ │ │ │ │ ├── select - │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_partkey:54(int!null) l3.l_suppkey:55(int!null) l3.l_linenumber:56(int!null) l3.l_quantity:57(float!null) l3.l_extendedprice:58(float!null) l3.l_discount:59(float!null) l3.l_tax:60(float!null) l3.l_returnflag:61(char!null) l3.l_linestatus:62(char!null) l3.l_shipdate:63(date!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) l3.l_shipinstruct:66(char!null) l3.l_shipmode:67(char!null) l3.l_comment:68(varchar!null) - │ │ │ │ │ │ │ ├── key: (53,56) - │ │ │ │ │ │ │ ├── fd: (53,56)-->(54,55,57-68) + │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_suppkey:55(int!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) │ │ │ │ │ │ │ ├── ordering: +53 │ │ │ │ │ │ │ ├── scan l3 - │ │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_partkey:54(int!null) l3.l_suppkey:55(int!null) l3.l_linenumber:56(int!null) l3.l_quantity:57(float!null) l3.l_extendedprice:58(float!null) l3.l_discount:59(float!null) l3.l_tax:60(float!null) l3.l_returnflag:61(char!null) l3.l_linestatus:62(char!null) l3.l_shipdate:63(date!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) l3.l_shipinstruct:66(char!null) l3.l_shipmode:67(char!null) l3.l_comment:68(varchar!null) - │ │ │ │ │ │ │ │ ├── key: (53,56) - │ │ │ │ │ │ │ │ ├── fd: (53,56)-->(54,55,57-68) + │ │ │ │ │ │ │ │ ├── columns: l3.l_orderkey:53(int!null) l3.l_suppkey:55(int!null) l3.l_commitdate:64(date!null) l3.l_receiptdate:65(date!null) │ │ │ │ │ │ │ │ └── ordering: +53 │ │ │ │ │ │ │ └── filters │ │ │ │ │ │ │ └── l3.l_receiptdate > l3.l_commitdate [type=bool, outer=(64,65), constraints=(/64: (/NULL - ]; /65: (/NULL - ])] │ │ │ │ │ │ └── filters │ │ │ │ │ │ └── l3.l_suppkey != l1.l_suppkey [type=bool, outer=(10,55), constraints=(/10: (/NULL - ]; /55: (/NULL - ])] - │ │ │ │ │ ├── scan l2 - │ │ │ │ │ │ ├── columns: l2.l_orderkey:37(int!null) l2.l_partkey:38(int!null) l2.l_suppkey:39(int!null) l2.l_linenumber:40(int!null) l2.l_quantity:41(float!null) l2.l_extendedprice:42(float!null) l2.l_discount:43(float!null) l2.l_tax:44(float!null) l2.l_returnflag:45(char!null) l2.l_linestatus:46(char!null) l2.l_shipdate:47(date!null) l2.l_commitdate:48(date!null) l2.l_receiptdate:49(date!null) l2.l_shipinstruct:50(char!null) l2.l_shipmode:51(char!null) l2.l_comment:52(varchar!null) - │ │ │ │ │ │ ├── key: (37,40) - │ │ │ │ │ │ ├── fd: (37,40)-->(38,39,41-52) - │ │ │ │ │ │ └── ordering: +37 + │ │ │ │ │ ├── scan l2@l_sk + │ │ │ │ │ │ └── columns: l2.l_orderkey:37(int!null) l2.l_suppkey:39(int!null) │ │ │ │ │ └── filters + │ │ │ │ │ ├── l2.l_orderkey = l1.l_orderkey [type=bool, outer=(8,37), constraints=(/8: (/NULL - ]; /37: (/NULL - ]), fd=(8)==(37), (37)==(8)] │ │ │ │ │ └── l2.l_suppkey != l1.l_suppkey [type=bool, outer=(10,39), constraints=(/10: (/NULL - ]; /39: (/NULL - ])] - │ │ │ │ └── filters (true) + │ │ │ │ ├── select + │ │ │ │ │ ├── columns: o_orderkey:24(int!null) o_orderstatus:26(char!null) + │ │ │ │ │ ├── key: (24) + │ │ │ │ │ ├── fd: ()-->(26) + │ │ │ │ │ ├── scan orders + │ │ │ │ │ │ ├── columns: o_orderkey:24(int!null) o_orderstatus:26(char!null) + │ │ │ │ │ │ ├── key: (24) + │ │ │ │ │ │ └── fd: (24)-->(26) + │ │ │ │ │ └── filters + │ │ │ │ │ └── o_orderstatus = 'F' [type=bool, outer=(26), constraints=(/26: [/'F' - /'F']; tight), fd=()-->(26)] + │ │ │ │ └── filters + │ │ │ │ └── o_orderkey = l1.l_orderkey [type=bool, outer=(8,24), constraints=(/8: (/NULL - ]; /24: (/NULL - ]), fd=(8)==(24), (24)==(8)] │ │ │ └── filters (true) │ │ └── filters │ │ └── n_name = 'SAUDI ARABIA' [type=bool, outer=(34), constraints=(/34: [/'SAUDI ARABIA' - /'SAUDI ARABIA']; tight), fd=()-->(34)]