Changeset: 5683e28c6126 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/5683e28c6126 Branch: ordered-set-aggregates Log Message:
merged with default diffs (truncated from 728 to 300 lines): diff --git a/sql/test/rel-optimizers/Tests/groupby-cse.test b/sql/test/rel-optimizers/Tests/groupby-cse.test --- a/sql/test/rel-optimizers/Tests/groupby-cse.test +++ b/sql/test/rel-optimizers/Tests/groupby-cse.test @@ -41,9 +41,9 @@ GROUP BY ---- project ( | group by ( -| | table("sys"."foo") [ "foo"."c1", "foo"."c3" ] -| ) [ "foo"."c1" ] [ "foo"."c1", "sys"."count" no nil ("foo"."c3") NOT NULL as "%1"."%1" ] -) [ "foo"."c1" UNIQUE, "foo"."c1" UNIQUE, "%1"."%1" NOT NULL ] +| | table("sys"."foo") [ "foo"."c1" NOT NULL ] +| ) [ "foo"."c1" NOT NULL ] [ "foo"."c1" NOT NULL, "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "foo"."c1" NOT NULL UNIQUE, "foo"."c1" NOT NULL UNIQUE, "%1"."%1" NOT NULL ] query III rowsort SELECT @@ -78,9 +78,9 @@ GROUP BY ---- project ( | group by ( -| | table("sys"."foo") [ "foo"."c1", "foo"."c3" ] -| ) [ "foo"."c1" as "c1_alias1" ] [ "c1_alias1", "c1_alias1" as "c1_alias2", "sys"."count" no nil ("foo"."c3") NOT NULL as "%1"."%1" ] -) [ "c1_alias1" UNIQUE, "c1_alias2", "%1"."%1" NOT NULL ] +| | table("sys"."foo") [ "foo"."c1" NOT NULL ] +| ) [ "foo"."c1" NOT NULL as "c1_alias1" ] [ "c1_alias1" NOT NULL, "c1_alias1" NOT NULL as "c1_alias2", "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "c1_alias1" NOT NULL UNIQUE, "c1_alias2" NOT NULL, "%1"."%1" NOT NULL ] query III rowsort gb-over-bt SELECT @@ -126,10 +126,10 @@ GROUP BY project ( | group by ( | | project ( -| | | table("sys"."foo") [ "foo"."c1", "foo"."c3" ] -| | ) [ "foo"."c1" as "%1"."a1", "foo"."c3" as "%1"."a3" ] -| ) [ "%1"."a1" ] [ "%1"."a1", "sys"."count" no nil ("%1"."a3") NOT NULL as "%2"."%2" ] -) [ "%1"."a1" UNIQUE, "%1"."a1" UNIQUE, "%2"."%2" NOT NULL ] +| | | table("sys"."foo") [ "foo"."c1" NOT NULL, "foo"."c3" NOT NULL ] +| | ) [ "foo"."c1" NOT NULL as "%1"."a1", "foo"."c3" NOT NULL as "%1"."a3" ] +| ) [ "%1"."a1" NOT NULL ] [ "%1"."a1" NOT NULL, "sys"."count" no nil ("%1"."a3" NOT NULL) NOT NULL as "%2"."%2" ] +) [ "%1"."a1" NOT NULL UNIQUE, "%1"."a1" NOT NULL UNIQUE, "%2"."%2" NOT NULL ] query III rowsort SELECT @@ -177,10 +177,10 @@ GROUP BY project ( | group by ( | | project ( -| | | table("sys"."foo") [ "foo"."c1", "foo"."c2" ] -| | ) [ "foo"."c1" as "sq"."c1_alias1", "sq"."c1_alias1" as "sq"."c1_alias2", "foo"."c2" as "sq"."c2" ] -| ) [ "sq"."c1_alias1", "sq"."c2" ] [ "sq"."c1_alias1", "sq"."c1_alias1" as "sq"."c1_alias2", "sq"."c2", "sys"."count" no nil ("sq"."c1_alias2") NOT NULL as "%1"."%1" ] -) [ "sq"."c1_alias1", "sq"."c1_alias2", "sq"."c2", "%1"."%1" NOT NULL ] +| | | table("sys"."foo") [ "foo"."c1" NOT NULL, "foo"."c2" NOT NULL ] +| | ) [ "foo"."c1" NOT NULL as "sq"."c1_alias1", "foo"."c2" NOT NULL as "sq"."c2" ] +| ) [ "sq"."c1_alias1" NOT NULL, "sq"."c2" NOT NULL ] [ "sq"."c1_alias1" NOT NULL, "sq"."c1_alias1" NOT NULL as "sq"."c1_alias2", "sq"."c2" NOT NULL, "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "sq"."c1_alias1" NOT NULL, "sq"."c1_alias2" NOT NULL, "sq"."c2" NOT NULL, "%1"."%1" NOT NULL ] query III rowsort gb-over-pr SELECT @@ -233,10 +233,10 @@ GROUP BY project ( | group by ( | | project ( -| | | table("sys"."foo") [ "foo"."c1", "foo"."c2", "foo"."c3" ] -| | ) [ "foo"."c1" as "sq"."c1", "foo"."c2" as "sq"."c2", "foo"."c3" as "sq"."c3" ] -| ) [ "sq"."c1" as "c1_alias_1", "sq"."c2" ] [ "c1_alias_1", "c1_alias_1" as "c1_alias_2", "sys"."count" no nil ("sq"."c3") NOT NULL as "%1"."%1" ] -) [ "c1_alias_1", "c1_alias_2", "%1"."%1" NOT NULL ] +| | | table("sys"."foo") [ "foo"."c1" NOT NULL, "foo"."c2" NOT NULL ] +| | ) [ "foo"."c1" NOT NULL as "sq"."c1", "foo"."c2" NOT NULL as "sq"."c2" ] +| ) [ "sq"."c1" NOT NULL as "c1_alias_1", "sq"."c2" NOT NULL ] [ "c1_alias_1" NOT NULL, "c1_alias_1" NOT NULL as "c1_alias_2", "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "c1_alias_1" NOT NULL, "c1_alias_2" NOT NULL, "%1"."%1" NOT NULL ] query III rowsort gb-over-pr SELECT @@ -291,10 +291,10 @@ GROUP BY project ( | group by ( | | project ( -| | | table("sys"."foo") [ "foo"."c1", "foo"."c2", "foo"."c3" ] -| | ) [ "foo"."c1" as "sq"."c1_in_alias_1", "foo"."c2" as "sq"."c2", "foo"."c3" as "sq"."c3" ] -| ) [ "sq"."c1_in_alias_1" as "c1_out_alias_1", "sq"."c2" ] [ "c1_out_alias_1", "c1_out_alias_1" as "c1_out_alias_2", "sys"."count" no nil ("sq"."c3") NOT NULL as "%1"."%1" ] -) [ "c1_out_alias_1", "c1_out_alias_2", "%1"."%1" NOT NULL ] +| | | table("sys"."foo") [ "foo"."c1" NOT NULL, "foo"."c2" NOT NULL ] +| | ) [ "foo"."c1" NOT NULL as "sq"."c1_in_alias_1", "foo"."c2" NOT NULL as "sq"."c2" ] +| ) [ "sq"."c1_in_alias_1" NOT NULL as "c1_out_alias_1", "sq"."c2" NOT NULL ] [ "c1_out_alias_1" NOT NULL, "c1_out_alias_1" NOT NULL as "c1_out_alias_2", "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "c1_out_alias_1" NOT NULL, "c1_out_alias_2" NOT NULL, "%1"."%1" NOT NULL ] query III rowsort gb-over-pr SELECT @@ -351,10 +351,10 @@ GROUP BY project ( | group by ( | | project ( -| | | table("sys"."foo") [ "foo"."c1", "foo"."c2", "foo"."c3" ] -| | ) [ "foo"."c1" as "sq"."c1_in_alias_1", "foo"."c2" as "sq"."c2", "foo"."c3" as "sq"."c3" ] -| ) [ "sq"."c1_in_alias_1" as "c1_out_alias_1", "sq"."c2" ] [ "c1_out_alias_1", "c1_out_alias_1" as "sq"."c1_in_alias_2", "sys"."count" no nil ("sq"."c3") NOT NULL as "%1"."%1" ] -) [ "c1_out_alias_1", "sq"."c1_in_alias_2", "%1"."%1" NOT NULL ] +| | | table("sys"."foo") [ "foo"."c1" NOT NULL, "foo"."c2" NOT NULL ] +| | ) [ "foo"."c1" NOT NULL as "sq"."c1_in_alias_1", "foo"."c2" NOT NULL as "sq"."c2" ] +| ) [ "sq"."c1_in_alias_1" NOT NULL as "c1_out_alias_1", "sq"."c2" NOT NULL ] [ "c1_out_alias_1" NOT NULL, "c1_out_alias_1" NOT NULL as "sq"."c1_in_alias_2", "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "c1_out_alias_1" NOT NULL, "sq"."c1_in_alias_2" NOT NULL, "%1"."%1" NOT NULL ] query III rowsort gb-over-pr SELECT @@ -408,10 +408,10 @@ GROUP BY project ( | group by ( | | project ( -| | | table("sys"."foo") [ "foo"."c1", "foo"."c2", "foo"."c3" ] -| | ) [ "foo"."c1" as "sq"."c1_in_alias_1", "foo"."c2" as "sq"."c2", "foo"."c3" as "sq"."c3" ] -| ) [ "sq"."c1_in_alias_1", "sq"."c2" ] [ "sq"."c1_in_alias_1", "sq"."c1_in_alias_1" as "c1_out_alias_2", "sys"."count" no nil ("sq"."c3") NOT NULL as "%1"."%1" ] -) [ "sq"."c1_in_alias_1", "c1_out_alias_2", "%1"."%1" NOT NULL ] +| | | table("sys"."foo") [ "foo"."c1" NOT NULL, "foo"."c2" NOT NULL ] +| | ) [ "foo"."c1" NOT NULL as "sq"."c1_in_alias_1", "foo"."c2" NOT NULL as "sq"."c2" ] +| ) [ "sq"."c1_in_alias_1" NOT NULL, "sq"."c2" NOT NULL ] [ "sq"."c1_in_alias_1" NOT NULL, "sq"."c1_in_alias_1" NOT NULL as "c1_out_alias_2", "sys"."count"() NOT NULL as "%1"."%1" ] +) [ "sq"."c1_in_alias_1" NOT NULL, "c1_out_alias_2" NOT NULL, "%1"."%1" NOT NULL ] query III rowsort gb-over-pr SELECT @@ -460,9 +460,9 @@ GROUP BY project ( | group by ( | | join ( -| | | table("sys"."foo") [ "foo"."c2" ], -| | | table("sys"."bar") [ "bar"."c2" ] -| | ) [ ("foo"."c2") = ("bar"."c2") ] +| | | table("sys"."foo") [ "foo"."c2" NOT NULL ], +| | | table("sys"."bar") [ "bar"."c2" NOT NULL ] +| | ) [ ("foo"."c2" NOT NULL) = ("bar"."c2" NOT NULL) ] | ) [ "foo"."c2" NOT NULL ] [ "foo"."c2" NOT NULL as "col", "sys"."count"() NOT NULL as "%1"."%1" ] ) [ "col" NOT NULL, "%1"."%1" NOT NULL ] diff --git a/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test b/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test --- a/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test +++ b/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test @@ -66,10 +66,10 @@ plan select * from foo_merge, members_rp munion ( | project ( | | crossproduct ( -| | | table("sys"."foo_p1") [ "foo_p1"."n" UNIQUE as "foo_merge"."n", "foo_p1"."m" as "foo_merge"."m" ], -| | | table("sys"."members_n1") [ "members_n1"."n" UNIQUE as "members_rpl"."n", "members_n1"."m" UNIQUE as "members_rpl"."m", "members_n1"."%TID%" NOT NULL UNIQUE as "members_rpl"."%TID%" ] +| | | table("sys"."foo_p1") [ "foo_p1"."n" NOT NULL UNIQUE as "foo_merge"."n", "foo_p1"."m" NOT NULL as "foo_merge"."m" ], +| | | table("sys"."members_n1") [ "members_n1"."n" NOT NULL UNIQUE as "members_rpl"."n", "members_n1"."m" NOT NULL UNIQUE as "members_rpl"."m", "members_n1"."%TID%" NOT NULL UNIQUE as "members_rpl"."%TID%" ] | | ) [ ] -| ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", "members_rpl"."m" ], +| ) [ "foo_merge"."n" NOT NULL, "foo_merge"."m" NOT NULL, "members_rpl"."n" NOT NULL, "members_rpl"."m" NOT NULL ], | table ( | | project ( | | | crossproduct ( diff --git a/sql/test/rel-optimizers/Tests/local-replica.test b/sql/test/rel-optimizers/Tests/local-replica.test --- a/sql/test/rel-optimizers/Tests/local-replica.test +++ b/sql/test/rel-optimizers/Tests/local-replica.test @@ -14,18 +14,18 @@ query T nosort plan select * from foo_rpl_loc ---- project ( -| table("sys"."foo_local") [ "foo_local"."n" as "foo_rpl_loc"."n", "foo_local"."m" as "foo_rpl_loc"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl_loc"."%TID%" ] -) [ "foo_rpl_loc"."n", "foo_rpl_loc"."m" ] +| table("sys"."foo_local") [ "foo_local"."n" NOT NULL as "foo_rpl_loc"."n", "foo_local"."m" NOT NULL as "foo_rpl_loc"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl_loc"."%TID%" ] +) [ "foo_rpl_loc"."n" NOT NULL, "foo_rpl_loc"."m" NOT NULL ] query T nosort plan select * from foo_rpl_loc, bar_rpl_loc ---- project ( | crossproduct ( -| | table("sys"."foo_local") [ "foo_local"."n" as "foo_rpl_loc"."n", "foo_local"."m" as "foo_rpl_loc"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl_loc"."%TID%" ], -| | table("sys"."bar_local") [ "bar_local"."n" as "bar_rpl_loc"."n", "bar_local"."m" as "bar_rpl_loc"."m", "bar_local"."%TID%" NOT NULL UNIQUE as "bar_rpl_loc"."%TID%" ] +| | table("sys"."foo_local") [ "foo_local"."n" NOT NULL as "foo_rpl_loc"."n", "foo_local"."m" NOT NULL as "foo_rpl_loc"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl_loc"."%TID%" ], +| | table("sys"."bar_local") [ "bar_local"."n" NOT NULL as "bar_rpl_loc"."n", "bar_local"."m" NOT NULL as "bar_rpl_loc"."m", "bar_local"."%TID%" NOT NULL UNIQUE as "bar_rpl_loc"."%TID%" ] | ) [ ] -) [ "foo_rpl_loc"."n", "foo_rpl_loc"."m", "bar_rpl_loc"."n", "bar_rpl_loc"."m" ] +) [ "foo_rpl_loc"."n" NOT NULL, "foo_rpl_loc"."m" NOT NULL, "bar_rpl_loc"."n" NOT NULL, "bar_rpl_loc"."m" NOT NULL ] query ITIT rowsort select * from foo_rpl_loc, bar_rpl_loc @@ -100,10 +100,10 @@ plan select * from foo_rpl_loc, buz_rmt ---- project ( | crossproduct ( -| | table("sys"."foo_local") [ "foo_local"."n" as "foo_rpl_loc"."n", "foo_local"."m" as "foo_rpl_loc"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl_loc"."%TID%" ], +| | table("sys"."foo_local") [ "foo_local"."n" NOT NULL as "foo_rpl_loc"."n", "foo_local"."m" NOT NULL as "foo_rpl_loc"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl_loc"."%TID%" ], | | table ( | | | REMOTE("sys"."buz_rmt") [ "buz_rmt"."l" ] REMOTE mapi:monetdb://localhost:50002/node2 | | ) [ "buz_rmt"."l" ] | ) [ ] -) [ "foo_rpl_loc"."n", "foo_rpl_loc"."m", "buz_rmt"."l" ] +) [ "foo_rpl_loc"."n" NOT NULL, "foo_rpl_loc"."m" NOT NULL, "buz_rmt"."l" ] diff --git a/sql/test/rel-optimizers/Tests/merge-ors-multi-col-eq-to-cmp_in.test b/sql/test/rel-optimizers/Tests/merge-ors-multi-col-eq-to-cmp_in.test --- a/sql/test/rel-optimizers/Tests/merge-ors-multi-col-eq-to-cmp_in.test +++ b/sql/test/rel-optimizers/Tests/merge-ors-multi-col-eq-to-cmp_in.test @@ -16,18 +16,18 @@ plan select * from b where n > 3 or (m = ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") > (int(4) "3")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) > (int(4) "3")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] query T nosort non-eq-two-col-2-value plan select * from b where (m = 20 and k = 200) or n > 3 or (m = 60 and k = 600) ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") > (int(4) "3")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) > (int(4) "3")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] # order of m,k equality statements are swapped in the last AND expression query T nosort non-eq-two-col-2-value @@ -35,18 +35,18 @@ plan select * from b where (m = 20 and k ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") > (int(4) "3")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) > (int(4) "3")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] query T nosort non-eq-two-col-2-value plan select * from b where (m = 20 and k = 200) or (m = 60 and k = 600) or n > 3 ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") > (int(4) "3")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) > (int(4) "3")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] query III rowsort select * from b where (n = 1 and m = 20) or (m = 20 and k = 200) or (m = 60 and k = 600) @@ -63,27 +63,27 @@ plan select * from b where (n = 1 and m ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") = (int(4) "1"), ("b"."m") = (int(8) "20")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) = (int(4) "1"), ("b"."m" NOT NULL) = (int(8) "20")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] query T nosort two-col-1-value-two-col-2-value plan select * from b where (m = 20 and k = 200) or (n = 1 and m = 20) or (m = 60 and k = 600) ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") = (int(4) "1"), ("b"."m") = (int(8) "20")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) = (int(4) "1"), ("b"."m" NOT NULL) = (int(8) "20")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] query T nosort two-col-1-value-two-col-2-value plan select * from b where (m = 20 and k = 200) or (m = 60 and k = 600) or (n = 1 and m = 20) ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n") = (int(4) "1"), ("b"."m") = (int(8) "20")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."n" NOT NULL) = (int(4) "1"), ("b"."m" NOT NULL) = (int(8) "20")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] query III rowsort select * from b where (m = 40 and k > 0) or (m = 20 and k = 200) or (m = 60 and k = 600) @@ -104,9 +104,9 @@ plan select * from b where (m = 40 and k ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" ] -| ) [ (( [ "b"."m", "b"."k" ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."m") = (int(8) "40"), ("b"."k") > (int(11) "0")) ] -) [ "b"."n", "b"."m", "b"."k" ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] +| ) [ (( [ "b"."m" NOT NULL, "b"."k" NOT NULL ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."m" NOT NULL) = (int(8) "40"), ("b"."k" NOT NULL) > (int(11) "0")) ] +) [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] onlyif threads=1 query T nosort @@ -114,9 +114,9 @@ plan select * from b where (m = 40 and k ---- project ( | select ( -| | table("sys"."b") [ "b"."n", "b"."m", "b"."k" UNIQUE ] -| ) [ (( [ "b"."m", "b"."k" UNIQUE ]) in ( [ int(8) "20", int(11) "200" ], [ int(8) "60", int(11) "600" ])) or (("b"."m") = (int(8) "40"), ("b"."k" UNIQUE) > (int(11) "0")) ] -) [ "b"."n", "b"."m", "b"."k" UNIQUE ] +| | table("sys"."b") [ "b"."n" NOT NULL, "b"."m" NOT NULL, "b"."k" NOT NULL ] _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org