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

Reply via email to