Changeset: 48aa8b189212 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=48aa8b189212
Modified Files:
        sql/storage/bat/bat_storage.c
Branch: Jul2015
Log Message:

properly zap the transactions delta structures. In the new transaction
a copy of the global transaction's delta structures is needed.


diffs (39 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -2119,9 +2119,11 @@ update_table(sql_trans *tr, sql_table *f
                        tr_update_dbat(tr, tt->data, ft->data, ft->cleared);
                } else if (store_nr_active == 1 && !ft->base.allocated) {
                        tr_merge_dbat(tr, tt->data);
+                       ft->data = NULL;
                } else if (ft->data) {
                        tt->data = ft->data;
                        tt->base.allocated = 1;
+                       ft->data = NULL;
                }
        }
        for (n = ft->columns.set->h, m = tt->columns.set->h; ok == LOG_OK && n 
&& m; n = n->next, m = m->next) {
@@ -2152,9 +2154,11 @@ update_table(sql_trans *tr, sql_table *f
                                tr_update_delta(tr, oc->data, cc->data, 
cc->unique == 1);
                        } else if (store_nr_active == 1 && !cc->base.allocated) 
{
                                tr_merge_delta(tr, oc->data, oc->unique == 1);
+                               cc->data = NULL;
                        } else if (cc->data) {
                                oc->data = cc->data; 
                                oc->base.allocated = 1;
+                               cc->data = NULL;
                        }
                }
 
@@ -2210,9 +2214,11 @@ update_table(sql_trans *tr, sql_table *f
                                        tr_update_delta(tr, oi->data, ci->data, 
0);
                                } else if (store_nr_active == 1 && 
!ci->base.allocated) {
                                        tr_merge_delta(tr, oi->data, 0);
+                                       ci->data = NULL;
                                } else if (ci->data) {
                                        oi->data = ci->data;
                                        oi->base.allocated = 1;
+                                       ci->data = NULL;
                                }
                        }
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to