Changeset: 54c3db74703a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=54c3db74703a
Modified Files:
sql/server/sql_qc.c
sql/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out
sql/test/leaks/Tests/select1.stable.out
sql/test/leaks/Tests/select2.stable.out
Branch: Aug2011
Log Message:
fixed bug 2894
make sure we don't cast int's to double on queries.
diffs (66 lines):
diff --git a/sql/server/sql_qc.c b/sql/server/sql_qc.c
--- a/sql/server/sql_qc.c
+++ b/sql/server/sql_qc.c
@@ -155,7 +155,7 @@ param_cmp(sql_subtype *t1, sql_subtype *
}
static int
-param_list_cmp(sql_subtype *typelist, atom **atoms, int plen)
+param_list_cmp(sql_subtype *typelist, atom **atoms, int plen, int type)
{
int i;
@@ -172,6 +172,8 @@ param_list_cmp(sql_subtype *typelist, at
if (!atom_null(a) && param_cmp(tp, atom_type(a)) != 0) {
sql_subtype *at = atom_type(a);
+ if (type != Q_UPDATE)
+ return -1;
/* FLT == DEC/NUM and DEC/NUM are equal */
if ((!((at->type->eclass == EC_DEC ||
at->type->eclass == EC_NUM) &&
@@ -220,7 +222,7 @@ qc_match(qc *cache, symbol *s, atom **pa
for (q = cache->q; q; q = q->next) {
if (q->key == key) {
- if (q->paramlen == plen && param_list_cmp(q->params,
params, plen) == 0 && symbol_cmp(q->s, s) == 0) {
+ if (q->paramlen == plen && param_list_cmp(q->params,
params, plen, q->type) == 0 && symbol_cmp(q->s, s) == 0) {
q->count++;
return q;
}
diff --git
a/sql/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out
b/sql/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out
--- a/sql/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out
+++ b/sql/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out
@@ -123,7 +123,7 @@ Ready.
#( SELECT count(*) AS mat_slice FROM GetTrace() WHERE stmt LIKE '% :=
mat.slice(%' ) as ms
#WHERE ( mat = 0 AND mat_slice = 0 ) OR ( mat > 0 AND mat_slice > 0 );
% .m # table_name
-% L7 # name
+% L13 # name
% wrd # type
% 1 # length
[ 1 ]
diff --git a/sql/test/leaks/Tests/select1.stable.out
b/sql/test/leaks/Tests/select1.stable.out
--- a/sql/test/leaks/Tests/select1.stable.out
+++ b/sql/test/leaks/Tests/select1.stable.out
@@ -41,7 +41,7 @@ Ready.
% 1 # length
[ 1 ]
% .bbp # table_name
-% L1 # name
+% L2 # name
% wrd # type
% 3 # length
[ 138 ]
diff --git a/sql/test/leaks/Tests/select2.stable.out
b/sql/test/leaks/Tests/select2.stable.out
--- a/sql/test/leaks/Tests/select2.stable.out
+++ b/sql/test/leaks/Tests/select2.stable.out
@@ -41,7 +41,7 @@ Ready.
% 1 # length
[ 1 ]
% .bbp # table_name
-% L1 # name
+% L2 # name
% wrd # type
% 3 # length
[ 138 ]
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list