Changeset: 28a756bd46b7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=28a756bd46b7
Modified Files:
sql/server/rel_distribute.c
sql/server/rel_optimizer.c
sql/server/rel_rel.c
sql/test/Dependencies/Tests/Dependencies.stable.out
sql/test/Dependencies/Tests/Dependencies.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
Branch: Jun2020
Log Message:
Small bugfix, look for the else condition on a if statement
diffs (truncated from 574 to 300 lines):
diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c
--- a/sql/server/rel_distribute.c
+++ b/sql/server/rel_distribute.c
@@ -142,17 +142,16 @@ exp_replica(mvc *sql, sql_exp *e, char *
}
break;
case e_psm:
- if (e->flag & PSM_SET || e->flag & PSM_RETURN)
+ if (e->flag & PSM_SET || e->flag & PSM_RETURN || e->flag &
PSM_EXCEPTION) {
e->l = exp_replica(sql, e->l, uri);
- else if (e->flag & PSM_WHILE || e->flag & PSM_IF) {
+ } else if (e->flag & PSM_WHILE || e->flag & PSM_IF) {
e->l = exp_replica(sql, e->l, uri);
e->r = exps_replica(sql, e->r, uri);
if (e->f)
e->f = exps_replica(sql, e->f, uri);
- } else if (e->flag & PSM_REL)
+ } else if (e->flag & PSM_REL) {
e->l = replica(sql, e->l, uri);
- else if (e->flag & PSM_EXCEPTION)
- e->l = exp_replica(sql, e->l, uri);
+ }
break;
}
return e;
@@ -309,17 +308,16 @@ exp_distribute(mvc *sql, sql_exp *e)
}
break;
case e_psm:
- if (e->flag & PSM_SET || e->flag & PSM_RETURN)
+ if (e->flag & PSM_SET || e->flag & PSM_RETURN || e->flag &
PSM_EXCEPTION) {
e->l = exp_distribute(sql, e->l);
- else if (e->flag & PSM_WHILE || e->flag & PSM_IF) {
+ } else if (e->flag & PSM_WHILE || e->flag & PSM_IF) {
e->l = exp_distribute(sql, e->l);
e->r = exps_distribute(sql, e->r);
if (e->f)
e->f = exps_distribute(sql, e->f);
- } else if (e->flag & PSM_REL)
+ } else if (e->flag & PSM_REL) {
e->l = distribute(sql, e->l);
- else if (e->flag & PSM_EXCEPTION)
- e->l = exp_distribute(sql, e->l);
+ }
break;
}
return e;
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -6527,7 +6527,7 @@ exp_mark_used(sql_rel *subrel, sql_exp *
nr += exp_mark_used(subrel, e->l, local_proj);
nr += exps_mark_used(subrel, e->r, local_proj);
if (e->flag == PSM_IF && e->f)
- nr += exp_mark_used(subrel, e->l, local_proj);
+ nr += exps_mark_used(subrel, e->f, local_proj);
}
e->used = 1;
break;
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -1696,7 +1696,7 @@ exp_deps(mvc *sql, sql_exp *e, list *ref
switch(e->type) {
case e_psm:
- if (e->flag & PSM_SET || e->flag & PSM_RETURN) {
+ if (e->flag & PSM_SET || e->flag & PSM_RETURN || e->flag &
PSM_EXCEPTION) {
return exp_deps(sql, e->l, refs, l);
} else if (e->flag & PSM_VAR) {
return 0;
@@ -1705,12 +1705,10 @@ exp_deps(mvc *sql, sql_exp *e, list *ref
exps_deps(sql, e->r, refs, l) != 0)
return -1;
if (e->flag & PSM_IF && e->f)
- return exps_deps(sql, e->r, refs, l);
+ return exps_deps(sql, e->f, refs, l);
} else if (e->flag & PSM_REL) {
sql_rel *rel = e->l;
return rel_deps(sql, rel, refs, l);
- } else if (e->flag & PSM_EXCEPTION) {
- return exps_deps(sql, e->l, refs, l);
}
case e_atom:
case e_column:
diff --git a/sql/test/Dependencies/Tests/Dependencies.stable.out
b/sql/test/Dependencies/Tests/Dependencies.stable.out
--- a/sql/test/Dependencies/Tests/Dependencies.stable.out
+++ b/sql/test/Dependencies/Tests/Dependencies.stable.out
@@ -102,8 +102,8 @@ Dependencies between database objects
[ "t1", "v1", "DEP_VIEW" ]
[ "v1", "v2", "DEP_VIEW" ]
#SELECT t.name, i.name, 'DEP_INDEX' from tables as t, idxs as i where
i.table_id = t.id and i.name not in (select name from keys) and t.type = 0
order by t.name, i.name;
-% .t, .i, .%10 # table_name
-% name, name, %10 # name
+% .t, .i, .%12 # table_name
+% name, name, %12 # name
% varchar, varchar, char # type
% 2, 8, 9 # length
[ "t1", "id_index", "DEP_INDEX" ]
@@ -125,15 +125,15 @@ Dependencies between database objects
% 2, 13, 8 # length
[ "t1", "t2_id_t1_fkey", "DEP_FKEY" ]
#SELECT t.name, f.name, 'DEP_FUNC' from functions as f, tables as t,
dependencies as dep where t.id = dep.id AND f.id = dep.depend_id AND
dep.depend_type = 7 AND t.type IN (0, 10) ORDER BY t.name, f.name;
-% .t, .f, .%7 # table_name
-% name, name, %7 # name
+% .t, .f, .%12 # table_name
+% name, name, %12 # name
% varchar, varchar, char # type
% 15, 8, 8 # length
[ "spatial_ref_sys", "getproj4", "DEP_FUNC" ]
[ "t1", "f2", "DEP_FUNC" ]
#SELECT c.name, v.name, 'DEP_VIEW' from columns as c, tables as v,
dependencies as dep where c.id = dep.id AND v.id = dep.depend_id AND
dep.depend_type = 5 AND v.type = 1 order by c.name, v.name;
-% .c, .v, .%16 # table_name
-% name, name, %16 # name
+% .c, .v, .%15 # table_name
+% name, name, %15 # name
% varchar, varchar, char # type
% 4, 2, 8 # length
[ "age", "v1", "DEP_VIEW" ]
@@ -142,8 +142,8 @@ Dependencies between database objects
[ "id", "v2", "DEP_VIEW" ]
[ "name", "v1", "DEP_VIEW" ]
#SELECT c.name, k.name, 'DEP_KEY' from columns as c, objects as kc, keys as k
where kc."name" = c.name AND kc.id = k.id AND k.table_id = c.table_id AND
k.rkey = -1 order by c.name, k.name;
-% .c, .k, .%11 # table_name
-% name, name, %11 # name
+% .c, .k, .%10 # table_name
+% name, name, %10 # name
% varchar, varchar, char # type
% 20, 44, 7 # length
[ "dependency_type_id", "dependency_types_dependency_type_id_pkey",
"DEP_KEY" ]
@@ -165,14 +165,14 @@ Dependencies between database objects
[ "table_type_id", "table_types_table_type_id_pkey", "DEP_KEY"
]
[ "table_type_name", "table_types_table_type_name_unique", "DEP_KEY"
]
#SELECT c.name, i.name, 'DEP_INDEX' from columns as c, objects as kc, idxs as
i where kc."name" = c.name AND kc.id = i.id AND c.table_id = i.table_id AND
i.name not in (select name from keys) order by c.name, i.name;
-% .c, .i, .%12 # table_name
-% name, name, %12 # name
+% .c, .i, .%13 # table_name
+% name, name, %13 # name
% varchar, varchar, char # type
% 2, 8, 9 # length
[ "id", "id_index", "DEP_INDEX" ]
#SELECT c.name, f.name, 'DEP_FUNC' from functions as f, columns as c,
dependencies as dep where c.id = dep.id AND f.id = dep.depend_id AND
dep.depend_type = 7 ORDER BY c.name, f.name;
-% .c, .f, .%11 # table_name
-% name, name, %11 # name
+% .c, .f, .%10 # table_name
+% name, name, %10 # name
% varchar, varchar, char # type
% 9, 8, 8 # length
[ "age", "f2", "DEP_FUNC" ]
@@ -186,8 +186,8 @@ Dependencies between database objects
[ "srid", "getproj4", "DEP_FUNC" ]
[ "srtext", "getproj4", "DEP_FUNC" ]
#SELECT c.name, tri.name, 'DEP_TRIGGER' from columns as c, triggers as tri,
dependencies as dep where dep.id = c.id AND dep.depend_id =tri.id AND
dep.depend_type = 8 order by c.name, tri.name;
-% .c, .tri, .%11 # table_name
-% name, name, %11 # name
+% .c, .tri, .%10 # table_name
+% name, name, %10 # name
% varchar, varchar, char # type
% 6, 14, 11 # length
[ "age", "trigger_test", "DEP_TRIGGER" ]
@@ -197,14 +197,14 @@ Dependencies between database objects
[ "id_t1", "trigger_test", "DEP_TRIGGER" ]
[ "name", "trigger_test", "DEP_TRIGGER" ]
#SELECT v.name, f.name, 'DEP_FUNC' from functions as f, tables as v,
dependencies as dep where v.id = dep.id AND f.id = dep.depend_id AND
dep.depend_type = 7 AND v.type IN (1, 11) ORDER BY v.name, f.name;
-% .v, .f, .%7 # table_name
-% name, name, %7 # name
+% .v, .f, .%12 # table_name
+% name, name, %12 # name
% varchar, varchar, char # type
% 2, 2, 8 # length
[ "v1", "f2", "DEP_FUNC" ]
#SELECT v.name, i.name, 'DEP_INDEX' from tables as v, idxs as i where
i.table_id = v.id and i.name not in (select name from keys) and v.type = 1
order by v.name, i.name;
-% .v, .i, .%10 # table_name
-% name, name, %10 # name
+% .v, .i, .%12 # table_name
+% name, name, %12 # name
% varchar, varchar, char # type
% 0, 0, 9 # length
#SELECT v.name, tri.name, 'DEP_TRIGGER' from tables as v, triggers as tri,
dependencies as dep where dep.id = v.id AND dep.depend_id =tri.id AND
dep.depend_type = 8 AND v.type = 1 order by v.name, tri.name;
@@ -218,6 +218,7 @@ Dependencies between database objects
% varchar, varchar, char # type
% 17, 13, 8 # length
[ "f1", "f2", "DEP_FUNC" ]
+[ "ms_trunc", "ms_round", "DEP_FUNC" ]
[ "st_numgeometries", "st_numpatches", "DEP_FUNC" ]
[ "st_geometryn", "st_patchn", "DEP_FUNC" ]
[ "getproj4", "st_transform", "DEP_FUNC" ]
@@ -286,6 +287,7 @@ Dependencies between functions with same
[ "f1", "f2", "DEP_FUNC" ]
[ "f1", "f2", "DEP_FUNC" ]
[ "f1", "f3", "DEP_FUNC" ]
+[ "ms_trunc", "ms_round", "DEP_FUNC" ]
[ "st_numgeometries", "st_numpatches", "DEP_FUNC" ]
[ "st_geometryn", "st_patchn", "DEP_FUNC" ]
[ "getproj4", "st_transform", "DEP_FUNC" ]
@@ -299,6 +301,7 @@ Dependencies between functions with same
% name, name, %2 # name
% varchar, varchar, char # type
% 17, 13, 8 # length
+[ "ms_trunc", "ms_round", "DEP_FUNC" ]
[ "st_numgeometries", "st_numpatches", "DEP_FUNC" ]
[ "st_geometryn", "st_patchn", "DEP_FUNC" ]
[ "getproj4", "st_transform", "DEP_FUNC" ]
@@ -337,8 +340,8 @@ Cleanup
[ "monetdb", "wlc", "DEP_SCHEMA" ]
[ "monetdb", "wlr", "DEP_SCHEMA" ]
#SELECT t.name, v.name, 'DEP_VIEW' from tables as t, tables as v, dependencies
as dep where t.id = dep.id AND v.id = dep.depend_id AND dep.depend_type = 5 AND
v.type in (1, 11, 21, 31) order by t.name, v.name;
-% .t, .v, .%14 # table_name
-% name, name, %14 # name
+% .t, .v, .%21 # table_name
+% name, name, %21 # name
% varchar, varchar, char # type
% 17, 34, 8 # length
[ "_columns", "columns", "DEP_VIEW" ]
@@ -450,8 +453,8 @@ Cleanup
[ "types", "ids", "DEP_VIEW" ]
[ "users", "dependency_schemas_on_users", "DEP_VIEW" ]
#SELECT t.name, i.name, 'DEP_INDEX' from tables as t, idxs as i where
i.table_id = t.id and i.name not in (select name from keys) and t.type in (0,
10, 20, 30) order by t.name, i.name;
-% .t, .i, .%10 # table_name
-% name, name, %10 # name
+% .t, .i, .%17 # table_name
+% name, name, %17 # name
% varchar, varchar, char # type
% 0, 0, 9 # length
#(SELECT t.name as name, tri.name as trigname, 'DEP_TRIGGER' from tables as t,
triggers as tri where tri.table_id = t.id) UNION (SELECT t.name as name,
tri.name as trigname, 'DEP_TRIGGER' from triggers tri, tables t, dependencies
dep where dep.id = t.id AND dep.depend_id =tri.id AND dep.depend_type = 8)
order by name, trigname;
@@ -467,14 +470,14 @@ Cleanup
% varchar, varchar, char # type
% 0, 0, 8 # length
#SELECT t.name, f.name, 'DEP_FUNC' from functions as f, tables as t,
dependencies as dep where t.id = dep.id AND f.id = dep.depend_id AND
dep.depend_type = 7 AND t.type in (0, 10, 20, 30) ORDER BY t.name, f.name;
-% .t, .f, .%7 # table_name
-% name, name, %7 # name
+% .t, .f, .%14 # table_name
+% name, name, %14 # name
% varchar, varchar, char # type
% 15, 8, 8 # length
[ "spatial_ref_sys", "getproj4", "DEP_FUNC" ]
#SELECT c.name, v.name, 'DEP_VIEW' from columns as c, tables as v,
dependencies as dep where c.id = dep.id AND v.id = dep.depend_id AND
dep.depend_type = 5 AND v.type in (1, 11, 21, 31) order by c.name, v.name;
-% .c, .v, .%16 # table_name
-% name, name, %16 # name
+% .c, .v, .%22 # table_name
+% name, name, %22 # name
% varchar, varchar, char # type
% 20, 34, 8 # length
[ "access", "tables", "DEP_VIEW" ]
@@ -855,8 +858,8 @@ Cleanup
[ "type_scale", "geometry_columns", "DEP_VIEW" ]
[ "unique", "storagemodel", "DEP_VIEW" ]
#SELECT c.name, k.name, 'DEP_KEY' from columns as c, objects as kc, keys as k
where kc."name" = c.name AND kc.id = k.id AND k.table_id = c.table_id AND
k.rkey = -1 order by c.name, k.name;
-% .c, .k, .%11 # table_name
-% name, name, %11 # name
+% .c, .k, .%10 # table_name
+% name, name, %10 # name
% varchar, varchar, char # type
% 20, 44, 7 # length
[ "dependency_type_id", "dependency_types_dependency_type_id_pkey",
"DEP_KEY" ]
@@ -877,13 +880,13 @@ Cleanup
[ "table_type_id", "table_types_table_type_id_pkey", "DEP_KEY"
]
[ "table_type_name", "table_types_table_type_name_unique", "DEP_KEY"
]
#SELECT c.name, i.name, 'DEP_INDEX' from columns as c, objects as kc, idxs as
i where kc."name" = c.name AND kc.id = i.id AND c.table_id = i.table_id AND
i.name not in (select name from keys) order by c.name, i.name;
-% .c, .i, .%12 # table_name
-% name, name, %12 # name
+% .c, .i, .%13 # table_name
+% name, name, %13 # name
% varchar, varchar, char # type
% 0, 0, 9 # length
#SELECT c.name, f.name, 'DEP_FUNC' from functions as f, columns as c,
dependencies as dep where c.id = dep.id AND f.id = dep.depend_id AND
dep.depend_type = 7 ORDER BY c.name, f.name;
-% .c, .f, .%11 # table_name
-% name, name, %11 # name
+% .c, .f, .%10 # table_name
+% name, name, %10 # name
% varchar, varchar, char # type
% 9, 8, 8 # length
[ "auth_name", "getproj4", "DEP_FUNC" ]
@@ -892,23 +895,23 @@ Cleanup
[ "srid", "getproj4", "DEP_FUNC" ]
[ "srtext", "getproj4", "DEP_FUNC" ]
#SELECT c.name, tri.name, 'DEP_TRIGGER' from columns as c, triggers as tri,
dependencies as dep where dep.id = c.id AND dep.depend_id =tri.id AND
dep.depend_type = 8 order by c.name, tri.name;
-% .c, .tri, .%11 # table_name
-% name, name, %11 # name
+% .c, .tri, .%10 # table_name
+% name, name, %10 # name
% varchar, varchar, char # type
% 0, 0, 11 # length
#SELECT v.name, f.name, 'DEP_FUNC' from functions as f, tables as v,
dependencies as dep where v.id = dep.id AND f.id = dep.depend_id AND
dep.depend_type = 7 AND v.type in (1, 11, 21, 31) ORDER BY v.name, f.name;
-% .v, .f, .%7 # table_name
-% name, name, %7 # name
+% .v, .f, .%14 # table_name
+% name, name, %14 # name
% varchar, varchar, char # type
% 0, 0, 8 # length
#SELECT v.name, i.name, 'DEP_INDEX' from tables as v, idxs as i where
i.table_id = v.id and i.name not in (select name from keys) and v.type in (1,
11, 21, 31) order by v.name, i.name;
-% .v, .i, .%10 # table_name
-% name, name, %10 # name
+% .v, .i, .%17 # table_name
+% name, name, %17 # name
% varchar, varchar, char # type
% 0, 0, 9 # length
#SELECT v.name, tri.name, 'DEP_TRIGGER' from tables as v, triggers as tri,
dependencies as dep where dep.id = v.id AND dep.depend_id =tri.id AND
dep.depend_type = 8 AND v.type in (1, 11, 21, 31) order by v.name, tri.name;
-% .v, .tri, .%7 # table_name
-% name, name, %7 # name
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list