Changeset: 5b2f5aa41744 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5b2f5aa41744
Modified Files:
sql/backends/monet5/sql.mx
sql/server/rel_select.c
sql/test/BugDay_2005-10-06_2.9.3/Tests/case.SF-929151.stable.out
sql/test/BugDay_2005-11-09_2.8/Tests/crash_in_case.SF-1097749.stable.out
sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out
sql/test/BugTracker-2009/Tests/IS_NULL_in_CASE.stable.out
sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out
sql/test/Tests/coalesce.stable.out
Branch: Apr2011
Log Message:
fix for wrong type in coalesc
diffs (108 lines):
diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx
--- a/sql/backends/monet5/sql.mx
+++ b/sql/backends/monet5/sql.mx
@@ -4071,10 +4071,10 @@
} else {
str v = (str)p;
strLength(&sz, v);
- if (len == 0 || sz <= len)
+ if (len == 0 || (sz >= 0 && sz <= len))
r = GDKstrdup(v);
}
- if (len > 0 && sz > len) {
+ if ((len > 0 && sz > len) || sz < 0) {
if (r)
GDKfree(r);
if (ATOMcmp(TYPE_str, ATOMnilptr(TYPE_str), p) != 0) {
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -3526,6 +3526,8 @@
res = rel_nop_(sql, cond, result, res, NULL, NULL,
"ifthenelse", 0);
if (!res)
return NULL;
+ /* ugh overwrite res type */
+ ((sql_subfunc*)res->f)->res = *restype;
}
return res;
}
diff --git a/sql/test/BugDay_2005-10-06_2.9.3/Tests/case.SF-929151.stable.out
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/case.SF-929151.stable.out
--- a/sql/test/BugDay_2005-10-06_2.9.3/Tests/case.SF-929151.stable.out
+++ b/sql/test/BugDay_2005-10-06_2.9.3/Tests/case.SF-929151.stable.out
@@ -33,7 +33,7 @@
% sys. # table_name
% ifthenelse_isnull_=_i # name
% char # type
-% 0 # length
+% 23 # length
[ "base table" ]
[ "system table" ]
[ "view" ]
diff --git
a/sql/test/BugDay_2005-11-09_2.8/Tests/crash_in_case.SF-1097749.stable.out
b/sql/test/BugDay_2005-11-09_2.8/Tests/crash_in_case.SF-1097749.stable.out
--- a/sql/test/BugDay_2005-11-09_2.8/Tests/crash_in_case.SF-1097749.stable.out
+++ b/sql/test/BugDay_2005-11-09_2.8/Tests/crash_in_case.SF-1097749.stable.out
@@ -28,7 +28,7 @@
% . # table_name
% isnull_>_single_value # name
% char # type
-% 0 # length
+% 5 # length
[ "true" ]
# 12:45:07 >
diff --git
a/sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out
b/sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out
---
a/sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out
+++
b/sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out
@@ -28,7 +28,7 @@
% . # table_name
% isnull_=_single_value # name
% char # type
-% 0 # length
+% 5 # length
[ NULL ]
# 12:45:31 >
diff --git a/sql/test/BugTracker-2009/Tests/IS_NULL_in_CASE.stable.out
b/sql/test/BugTracker-2009/Tests/IS_NULL_in_CASE.stable.out
--- a/sql/test/BugTracker-2009/Tests/IS_NULL_in_CASE.stable.out
+++ b/sql/test/BugTracker-2009/Tests/IS_NULL_in_CASE.stable.out
@@ -31,14 +31,14 @@
% sys.sometable, sys. # table_name
% somecol, NewColumnName # name
% int, char # type
-% 1, 0 # length
+% 1, 10 # length
[ 0, "small" ]
[ 1, "small" ]
[ NULL, "NULL FOUND" ]
% sys.sometable, sys. # table_name
% somecol, NewColumnName # name
% int, char # type
-% 1, 0 # length
+% 1, 10 # length
[ 0, "small" ]
[ 1, "small" ]
[ NULL, "NULL FOUND" ]
diff --git
a/sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out
b/sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out
---
a/sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out
+++
b/sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out
@@ -35,7 +35,7 @@
% sys. # table_name
% avg_cost_cpc # name
% decimal # type
-% 21 # length
+% 20 # length
[ 0.0000 ]
# 18:09:40 >
diff --git a/sql/test/Tests/coalesce.stable.out
b/sql/test/Tests/coalesce.stable.out
--- a/sql/test/Tests/coalesce.stable.out
+++ b/sql/test/Tests/coalesce.stable.out
@@ -70,7 +70,7 @@
% . # table_name
% isnull_single_value # name
% char # type
-% 0 # length
+% 1 # length
[ "x" ]
% sys.coalescetest, sys.coalescetest, sys.coalescetest # table_name
% id, name, age # name
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list