Changeset: a52701a96976 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a52701a96976
Modified Files:
        sql/server/rel_select.c
        sql/storage/store.c
Branch: Jul2012
Log Message:

Fixed problem with concat of clob's with other strings, ie keep 0 digits (ie 
variable length)


diffs (34 lines):

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
@@ -3451,7 +3451,7 @@ rel_binop_(mvc *sql, sql_exp *l, sql_exp
                } else if (f->func->fix_scale == SCALE_MUL) {
                        l = exp_sum_scales(sql, f, l, r);
                } else if (f->func->fix_scale == DIGITS_ADD) {
-                       f->res.digits = t1->digits + t2->digits;
+                       f->res.digits = (t1->digits && t2->digits)?t1->digits + 
t2->digits:0;
                }
                return exp_binop(sql->sa, l, r, f);
        } else {
@@ -3504,7 +3504,7 @@ rel_binop_(mvc *sql, sql_exp *l, sql_exp
                                } else if (f->func->fix_scale == SCALE_MUL) {
                                        l = exp_sum_scales(sql, f, l, r);
                                } else if (f->func->fix_scale == DIGITS_ADD) {
-                                       f->res.digits = t1->digits + t2->digits;
+                                       f->res.digits = (t1->digits && 
t2->digits)?t1->digits + t2->digits:0;
                                }
                                return exp_binop(sql->sa, l, r, f);
                        }
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1546,7 +1546,9 @@ store_manager(void)
                MT_lock_unset(&bs_lock, "store_manager");
                if (logging && res == LOG_OK)
                        res = logger_funcs.cleanup();
+               MT_lock_set(&bs_lock, "store_manager");
                logging = 0;
+               MT_lock_unset(&bs_lock, "store_manager");
                if (res != LOG_OK)
                        GDKfatal("write-ahead logging failure, disk full?");
        }
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to