Changeset: a9c8b1c47049 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a9c8b1c47049
Modified Files:
sql/server/rel_exp.c
sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
sql/test/astro/Tests/astro.test
sql/test/miscellaneous/Tests/simple_plans.test
Branch: label
Log Message:
small fix for finding matching expressions
diffs (88 lines):
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1278,6 +1278,8 @@ exp_match( sql_exp *e1, sql_exp *e2)
if (exp_cmp(e1, e2) == 0)
return 1;
if (e1->type == e2->type && e1->type == e_column) {
+ if (e1->nid && e1->nid == e2->nid)
+ return 1;
if (e1->alias.label != e2->alias.label || !e1->alias.label ||
!e2->alias.label)
return 0;
#if 0
diff --git a/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
b/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
--- a/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
+++ b/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
@@ -65,17 +65,17 @@ project (
| | | | | | | table("sys"."plantest0") [ "plantest0"."id" ]
| | | | | | ) [ ("plantest0"."id") >= (bigint(28) "150000000") ]
| | | | | ) [ "sys"."sql_div"("plantest0"."id" NOT NULL, int(24) "10000000")
NOT NULL as "t"."id_r" ]
-| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%6"."%6" ],
+| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%1"."%1" ],
| | | | group by (
| | | | | project (
| | | | | | select (
| | | | | | | table("sys"."plantest1") [ "plantest1"."id" ]
| | | | | | ) [ ("plantest1"."id") >= (bigint(28) "150000000") ]
| | | | | ) [ "sys"."sql_div"("plantest1"."id" NOT NULL, int(24) "10000000")
NOT NULL as "t"."id_r" ]
-| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%6"."%6" ]
-| | | ) [ "t"."id_r" NOT NULL, "%6"."%6" NOT NULL ]
-| | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."sum" no nil
("%6"."%6" NOT NULL) NOT NULL as "%6"."%6" ]
-| ) [ "sys"."sql_mul"("t"."id_r" NOT NULL UNIQUE, int(24) "10000000") NOT NULL
as "id_range_base", "%6"."%6" NOT NULL as "nrows", "t"."id_r" NOT NULL UNIQUE ]
+| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%1"."%1" ]
+| | | ) [ "t"."id_r" NOT NULL, "%1"."%1" NOT NULL ]
+| | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."sum" no nil
("%1"."%1" NOT NULL) NOT NULL as "%1"."%1" ]
+| ) [ "sys"."sql_mul"("t"."id_r" NOT NULL UNIQUE, int(24) "10000000") NOT NULL
as "id_range_base", "%1"."%1" NOT NULL as "nrows", "t"."id_r" NOT NULL UNIQUE ]
) [ "id_range_base" NOT NULL, "nrows" NOT NULL ] [ "t"."id_r" ASC NOT NULL
UNIQUE ]
query II rowsort
@@ -127,7 +127,7 @@ project (
| | | | | | | ) [ ("plantest0"."id") >= (bigint(28) "150000000") ]
| | | | | | ) [ "sys"."sql_div"("plantest0"."id" NOT NULL, int(24) "10000000")
NOT NULL as "id_div" ]
| | | | | ) [ "id_div" NOT NULL as "t"."id_r" ]
-| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%6"."%6" ],
+| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%1"."%1" ],
| | | | group by (
| | | | | project (
| | | | | | project (
@@ -136,10 +136,10 @@ project (
| | | | | | | ) [ ("plantest1"."id") >= (bigint(28) "150000000") ]
| | | | | | ) [ "sys"."sql_div"("plantest1"."id" NOT NULL, int(24) "10000000")
NOT NULL as "id_div" ]
| | | | | ) [ "id_div" NOT NULL as "t"."id_r" ]
-| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%6"."%6" ]
-| | | ) [ "t"."id_r" NOT NULL, "%6"."%6" NOT NULL ]
-| | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."sum" no nil
("%6"."%6" NOT NULL) NOT NULL as "%6"."%6" ]
-| ) [ "sys"."sql_mul"("t"."id_r" NOT NULL UNIQUE, int(24) "10000000") NOT NULL
as "id_range_base", "%6"."%6" NOT NULL as "nrows", "t"."id_r" NOT NULL UNIQUE ]
+| | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil
("t"."id_r" NOT NULL) NOT NULL as "%1"."%1" ]
+| | | ) [ "t"."id_r" NOT NULL, "%1"."%1" NOT NULL ]
+| | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."sum" no nil
("%1"."%1" NOT NULL) NOT NULL as "%1"."%1" ]
+| ) [ "sys"."sql_mul"("t"."id_r" NOT NULL UNIQUE, int(24) "10000000") NOT NULL
as "id_range_base", "%1"."%1" NOT NULL as "nrows", "t"."id_r" NOT NULL UNIQUE ]
) [ "id_range_base" NOT NULL, "nrows" NOT NULL ] [ "t"."id_r" ASC NOT NULL
UNIQUE ]
query II rowsort
diff --git a/sql/test/astro/Tests/astro.test b/sql/test/astro/Tests/astro.test
--- a/sql/test/astro/Tests/astro.test
+++ b/sql/test/astro/Tests/astro.test
@@ -84,7 +84,7 @@ update(
| | | | ) [ ("cm_flux"."active" NOT NULL UNIQUE) = (boolean(1) "true"),
(varchar(1)["cm_flux"."filter" NOT NULL UNIQUE] NOT NULL) = (varchar(1) "g") ]
| | | ) [ "cm_flux"."filter" NOT NULL UNIQUE, "cm_flux"."f_datapoints" NOT
NULL UNIQUE, "cm_flux"."avg_flux" NOT NULL UNIQUE, "cm_flux"."avg_fluxsq" NOT
NULL UNIQUE, "cm_flux"."avg_w" NOT NULL UNIQUE, "cm_flux"."avg_wflux" NOT NULL
UNIQUE, "cm_flux"."avg_wfluxsq" NOT NULL UNIQUE, "cm_flux"."avg_dec_zone_deg"
NOT NULL UNIQUE, "cm_flux"."runcat" NOT NULL UNIQUE ]
| | ) [ ("fluxz"."runcat" NOT NULL UNIQUE) = ("cm_flux"."runcat" NOT NULL
UNIQUE), ("fluxz"."filter" NOT NULL UNIQUE) = ("cm_flux"."filter" NOT NULL
UNIQUE) ]
-| ) [ "fluxz"."%TID%" NOT NULL, "cm_flux"."filter" as "fluxz"."filter",
"cm_flux"."f_datapoints" as "fluxz"."f_datapoints", "cm_flux"."avg_flux" as
"fluxz"."avg_flux", "cm_flux"."avg_fluxsq" as "fluxz"."avg_fluxsq",
"cm_flux"."avg_w" as "fluxz"."avg_w", "cm_flux"."avg_wflux" as
"fluxz"."avg_wflux", "cm_flux"."avg_wfluxsq" as "fluxz"."avg_wfluxsq",
"cm_flux"."avg_dec_zone_deg" as "fluxz"."avg_dec_zone_deg" ]
+| ) [ "fluxz"."%TID%" NOT NULL, "cm_flux"."filter" UNIQUE as "fluxz"."filter",
"cm_flux"."f_datapoints" as "fluxz"."f_datapoints", "cm_flux"."avg_flux" as
"fluxz"."avg_flux", "cm_flux"."avg_fluxsq" as "fluxz"."avg_fluxsq",
"cm_flux"."avg_w" as "fluxz"."avg_w", "cm_flux"."avg_wflux" as
"fluxz"."avg_wflux", "cm_flux"."avg_wfluxsq" as "fluxz"."avg_wfluxsq",
"cm_flux"."avg_dec_zone_deg" as "fluxz"."avg_dec_zone_deg" ]
) [ "fluxz"."%TID%" NOT NULL UNIQUE, "fluxz"."filter" NOT NULL,
"fluxz"."f_datapoints" NOT NULL, "fluxz"."avg_flux" NOT NULL,
"fluxz"."avg_fluxsq" NOT NULL, "fluxz"."avg_w" NOT NULL, "fluxz"."avg_wflux"
NOT NULL, "fluxz"."avg_wfluxsq" NOT NULL, "fluxz"."avg_dec_zone_deg" NOT NULL ]
statement ok
diff --git a/sql/test/miscellaneous/Tests/simple_plans.test
b/sql/test/miscellaneous/Tests/simple_plans.test
--- a/sql/test/miscellaneous/Tests/simple_plans.test
+++ b/sql/test/miscellaneous/Tests/simple_plans.test
@@ -385,7 +385,9 @@ PLAN SELECT 1 FROM view1 s INNER JOIN vi
----
project (
| join (
-| | table("sys"."tabel3") [ "tabel3"."id_nr" as "a"."id_nr" ],
+| | project (
+| | | table("sys"."tabel3") [ "tabel3"."id_nr" as "a"."id_nr" ]
+| | ) [ "a"."id_nr" ],
| | project (
| | | left outer join (
| | | | join (
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]