Changeset: 5a0ef8a4d53a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5a0ef8a4d53a
Modified Files:
        gdk/gdk_atoms.c
        gdk/gdk_private.h
        gdk/gdk_utils.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal_namespace.c
        sql/backends/monet5/sql.c
Branch: default
Log Message:

Merge with Jul2017 branch


diffs (89 lines):

diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c
--- a/gdk/gdk_atoms.c
+++ b/gdk/gdk_atoms.c
@@ -2205,3 +2205,20 @@ ATOMunknown_name(int i)
        assert(unknown[-i]);
        return unknown[-i];
 }
+
+void
+ATOMunknown_clean(void)
+{
+       int i;
+
+       MT_lock_set(&GDKthreadLock);
+       for (i = 1; i < MAXATOMS; i++) {
+               if(unknown[i]) {
+                       GDKfree(unknown[i]);
+                       unknown[i] = NULL;
+               } else {
+                       break;
+               }
+       }
+       MT_lock_unset(&GDKthreadLock);
+}
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -36,6 +36,8 @@ enum heaptype {
        __attribute__((__visibility__("hidden")));
 __hidden str ATOMunknown_name(int a)
        __attribute__((__visibility__("hidden")));
+__hidden void ATOMunknown_clean(void)
+       __attribute__((__visibility__("hidden")));
 __hidden int BATcheckhash(BAT *b)
        __attribute__((__visibility__("hidden")));
 __hidden int BATcheckimprints(BAT *b)
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -809,6 +809,7 @@ GDKreset(int status, int exit)
                MT_lock_unset(&GDKthreadLock);
                //gdk_system_reset(); CHECK OUT
        }
+       ATOMunknown_clean();
 #ifdef NEED_MT_LOCK_INIT
        MT_lock_destroy(&MT_system_lock);
 #if defined(USE_PTHREAD_LOCKS) && defined(ATOMIC_LOCK)
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -121,6 +121,8 @@ int mal_init(void){
  * activity first.
  * This function should be called after you have issued sql_reset();
  */
+void cleanOptimizerPipe(void);
+
 void mserver_reset(int exit)
 {
        str err = 0;
diff --git a/monetdb5/mal/mal_namespace.c b/monetdb5/mal/mal_namespace.c
--- a/monetdb5/mal/mal_namespace.c
+++ b/monetdb5/mal/mal_namespace.c
@@ -49,6 +49,7 @@ static struct namespace {
 } *namespace;
 
 void initNamespace(void) {
+       namespace = NULL;
 }
 
 void mal_namespace_reset(void) {
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -1846,12 +1846,14 @@ SQLtid(Client cntxt, MalBlkPtr mb, MalSt
        if (store_funcs.count_del(tr, t)) {
                BAT *d = store_funcs.bind_del(tr, t, RD_INS);
                BAT *diff;
-               if( d == NULL)
+               if (d == NULL)
                        throw(SQL,"sql.tid", SQLSTATE(45002) "Can not bind 
delete column");
 
                diff = BATdiff(tids, d, NULL, NULL, 0, BUN_NONE);
                BBPunfix(d->batCacheid);
                BBPunfix(tids->batCacheid);
+               if (diff == NULL)
+                       throw(SQL,"sql.tid","Cannot subtract delete column");
                BAThseqbase(diff, sb);
                tids = diff;
        }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to