Changeset: 881276547470 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=881276547470
Added Files:
        ChangeLog.Jun2016
        gdk/gdk_interprocess.c
        gdk/gdk_interprocess.h
        java/tests/Test_PSgetObject.java
        sql/backends/monet5/Tests/pyapi31.sql
        sql/jdbc/tests/Tests/Test_PSgetObject.SQL.bat
        sql/jdbc/tests/Tests/Test_PSgetObject.SQL.sh
        sql/jdbc/tests/Tests/Test_PSgetObject.stable.err
        sql/jdbc/tests/Tests/Test_PSgetObject.stable.out
        sql/test/mergetables/Tests/mergedropcascade.sql
        sql/test/mergetables/Tests/mergedropcascade.stable.err
        sql/test/mergetables/Tests/mergedropcascade.stable.out
Removed Files:
        gdk/interprocess.c
        gdk/interprocess.h
Modified Files:
        clients/Tests/exports.stable.out
        clients/mapiclient/mclient.c
        common/stream/stream.c
        gdk/Makefile.ag
        gdk/gdk.h
        gdk/gdk_aggr.c
        gdk/gdk_align.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_calc.c
        gdk/gdk_calc_compare.h
        gdk/gdk_cross.c
        gdk/gdk_delta.c
        gdk/gdk_delta.h
        gdk/gdk_firstn.c
        gdk/gdk_group.c
        gdk/gdk_hash.c
        gdk/gdk_hash.h
        gdk/gdk_heap.c
        gdk/gdk_imprints.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_orderidx.c
        gdk/gdk_private.h
        gdk/gdk_project.c
        gdk/gdk_sample.c
        gdk/gdk_select.c
        gdk/gdk_storage.c
        gdk/gdk_unique.c
        java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
        java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
        monetdb5/extras/pyapi/connection.c
        monetdb5/extras/pyapi/pyapi.c
        monetdb5/extras/rapi/converters.c.h
        monetdb5/extras/sphinx/sphinx.c
        monetdb5/mal/mal_authorize.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_module.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_resource.c
        monetdb5/mal/mal_runtime.c
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/batcolor.c
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/batstr.c
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/mkey.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tokenizer.c
        monetdb5/modules/mal/zorder.c
        monetdb5/optimizer/opt_reorder.c
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cast_impl_down_from_int.h
        sql/backends/monet5/sql_cast_impl_up_to_flt.h
        sql/backends/monet5/sql_cast_impl_up_to_int.h
        sql/backends/monet5/sql_fround_impl.h
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_rank.c
        sql/backends/monet5/sql_round_impl.h
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/vaults/bam/bam_lib.c
        sql/backends/monet5/vaults/netcdf/netcdf.c
        sql/jdbc/tests/Tests/All
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_optimizer.c
        sql/server/rel_planner.c
        sql/server/rel_schema.c
        sql/server/sql_atom.c
        sql/server/sql_atom.h
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_table.c
        sql/storage/store.c
        sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        sql/test/mergetables/Tests/All
        sql/test/mergetables/Tests/part-elim.sql
        sql/test/pg_regress/Tests/point.sql
        sql/test/pg_regress/Tests/point.stable.err
        sql/test/pg_regress/Tests/point.stable.out
        testing/Mtest.py.in
Branch: sfcgal
Log Message:

merged with default


diffs (truncated from 13368 to 300 lines):

diff --git a/ChangeLog.Jun2016 b/ChangeLog.Jun2016
new file mode 100644
--- /dev/null
+++ b/ChangeLog.Jun2016
@@ -0,0 +1,6 @@
+# ChangeLog file for candidate
+# This file is updated with Maddlog
+
+* Fri Jul  1 2016 Sjoerd Mullender <sjo...@acm.org>
+- Lots of memory leaks have been plugged across the whole system.
+
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -211,7 +211,13 @@ size_t GDK_mem_maxsize;
 size_t GDK_vm_maxsize;
 int GDK_vm_trim;
 int GDKatomcnt;
+size_t GDKbatcopy(char *dest, BAT *bat, str colname);
+size_t GDKbatcopysize(BAT *bat, str colname);
+size_t GDKbatread(char *src, BAT **bat, str *colname);
+gdk_return GDKchangesemval(int sem_id, int number, int change, str *msg);
+gdk_return GDKchangesemval_timeout(int sem_id, int number, int change, int 
timeout_mseconds, bool *succeed, str *msg);
 gdk_return GDKcreatedir(const char *nme);
+gdk_return GDKcreatesem(int id, int count, int *semid, str *msg);
 int GDKdebug;
 void GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 void GDKexit(int status) __attribute__((__noreturn__));
@@ -229,7 +235,10 @@ char *GDKgetenv(const char *name);
 int GDKgetenv_int(const char *name, int def);
 int GDKgetenv_istrue(const char *name);
 int GDKgetenv_isyes(const char *name);
+gdk_return GDKgetsem(int sem_id, int count, int *semid, str *msg);
+gdk_return GDKgetsemval(int sem_id, int number, int *semval, str *msg);
 int GDKinit(opt *set, int setlen);
+gdk_return GDKinitmmap(size_t id, size_t size, void **return_ptr, size_t 
*return_size, str *msg);
 BAT *GDKkey;
 ATOMIC_TYPE volatile GDKlockcnt;
 ATOMIC_TYPE volatile GDKlockcontentioncnt;
@@ -241,6 +250,7 @@ void *GDKmalloc(size_t size) __attribute
 size_t GDKmem_cursize(void);
 gdk_return GDKmergeidx(BAT *b, BAT **a, int n_ar);
 void *GDKmmap(const char *path, int mode, size_t len);
+gdk_return GDKmmapfile(str buffer, size_t max, size_t id);
 int GDKms(void);
 int GDKnr_threads;
 void GDKprepareExit(void);
@@ -248,6 +258,8 @@ void GDKqsort(void *h, void *t, const vo
 void GDKqsort_rev(void *h, void *t, const void *base, size_t n, int hs, int 
ts, int tpe);
 void *GDKrealloc(void *pold, size_t size) 
__attribute__((__warn_unused_result__));
 void GDKregister(MT_Id pid);
+gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id, str *msg);
+gdk_return GDKreleasesem(int sem_id, str *msg);
 void GDKreset(int status);
 void GDKsetenv(str name, str value);
 ssize_t GDKstrFromStr(unsigned char *dst, const unsigned char *src, ssize_t 
len);
@@ -255,7 +267,8 @@ str GDKstrdup(const char *s) __attribute
 str GDKstrndup(const char *s, size_t n) 
__attribute__((__warn_unused_result__));
 void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 ThreadRec GDKthreads[THREADS];
-gdk_return GDKupgradevarheap(COLrec *c, var_t v, int copyall, int mayshare);
+size_t GDKuniqueid(size_t offset);
+gdk_return GDKupgradevarheap(BAT *b, var_t v, int copyall, int mayshare);
 lng GDKusec(void);
 BAT *GDKval;
 const char *GDKversion(void);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -1995,6 +1995,8 @@ doFileBulk(Mapi mid, stream *fp)
        buf = malloc(bufsize + 1);
        if (!buf) {
                fprintf(stderr, "cannot allocate memory for send buffer\n");
+               if (fp)
+                       close_stream(fp);
                return 1;
        }
 
@@ -2067,6 +2069,8 @@ doFileBulk(Mapi mid, stream *fp)
 
        free(buf);
        mnstr_flush(toConsole);
+       if (fp)
+               close_stream(fp);
        return errseen;
 }
 
@@ -2637,11 +2641,12 @@ doFile(Mapi mid, stream *fp, int useinse
                                         * convert filename from UTF-8
                                         * to locale */
                                        if ((s = open_rastream(line)) == NULL ||
-                                           mnstr_errnr(s))
+                                           mnstr_errnr(s)) {
+                                               if (s)
+                                                       close_stream(s);
                                                fprintf(stderr, "%s: cannot 
open\n", line);
-                                       else
+                                       } else
                                                doFile(mid, s, 0, 0, 0);
-                                       close_stream(s);
                                        continue;
                                }
                                case '>':
@@ -2832,6 +2837,7 @@ doFile(Mapi mid, stream *fp, int useinse
        if (prompt)
                deinit_readline();
 #endif
+       close_stream(fp);
        return errseen;
 }
 
@@ -3381,7 +3387,9 @@ main(int argc, char **argv)
                        stream *s;
 
                        if (fp == NULL &&
-                           (fp = fopen(argv[optind], "r")) == NULL) {
+                           (fp = (strcmp(argv[optind], "-") == 0 ?
+                                  stdin :
+                                  fopen(argv[optind], "r"))) == NULL) {
                                fprintf(stderr, "%s: cannot open\n", 
argv[optind]);
                                c |= 1;
                        } else if ((s = file_rastream(fp, argv[optind])) == 
NULL) {
@@ -3389,7 +3397,6 @@ main(int argc, char **argv)
                                c |= 1;
                        } else {
                                c |= doFile(mid, s, useinserts, interactive, 
save_history);
-                               close_stream(s);
                        }
                        fp = NULL;
                        optind++;
@@ -3400,7 +3407,6 @@ main(int argc, char **argv)
        if (!has_fileargs && command == NULL) {
                stream *s = file_rastream(stdin, "<stdin>");
                c = doFile(mid, s, useinserts, interactive, save_history);
-               mnstr_destroy(s);
        }
 
        mapi_destroy(mid);
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -4575,6 +4575,8 @@ cb_destroy(stream *s)
 
        if (cb->destroy)
                (*cb->destroy)(cb->private);
+       free(cb);
+       s->stream_data.p = NULL;
        destroy(s);
 }
 
diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag
--- a/gdk/Makefile.ag
+++ b/gdk/Makefile.ag
@@ -30,9 +30,10 @@ lib_gdk = {
                gdk_imprints.c gdk_imprints.h \
                gdk_join.c gdk_project.c \
                gdk_unique.c \
+               gdk_interprocess.c gdk_interprocess.h \
                gdk_firstn.c \
                bat.feps bat1.feps bat2.feps \
-               libbat.rc interprocess.c interprocess.h
+               libbat.rc 
        LIBS = ../common/options/libmoptions \
                ../common/stream/libstream \
                ../common/utils/libmutils \
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -391,22 +391,18 @@
 #define GDKisalnum(c)  isalnum((int) (unsigned char) (c))
 #define GDKisdigit(c)  (((unsigned char) (c)) >= '0' && ((unsigned char) (c)) 
<= '9')
 
-#define GDKPROP                6       /* use one spare! */
-#define MONETHOME      "MONETHOME"
 #ifndef NATIVE_WIN32
 #define BATDIR         "bat"
 #define DELDIR         "bat/DELETE_ME"
 #define BAKDIR         "bat/BACKUP"
 #define SUBDIR         "bat/BACKUP/SUBCOMMIT"
 #define LEFTDIR                "bat/LEFTOVERS"
-#define HCDIR          "bat/HC"
 #else
 #define BATDIR         "bat"
 #define DELDIR         "bat\\DELETE_ME"
 #define BAKDIR         "bat\\BACKUP"
 #define SUBDIR         "bat\\BACKUP\\SUBCOMMIT"
 #define LEFTDIR                "bat\\LEFTOVERS"
-#define HCDIR          "bat\\HC"
 #endif
 
 #ifdef MAXPATHLEN
@@ -586,11 +582,9 @@ typedef oid var_t;         /* type used for hea
 #define SIZEOF_VAR_T   SIZEOF_OID
 #define VARFMT         OIDFMT
 
-#if SIZEOF_VAR_T == SIZEOF_INT /* a type compatible with var_t */
-#define TYPE_var       TYPE_int
+#if SIZEOF_VAR_T == SIZEOF_INT
 #define VAR_MAX                ((var_t) INT_MAX)
 #else
-#define TYPE_var       TYPE_lng
 #define VAR_MAX                ((var_t) LLONG_MAX)
 #endif
 
@@ -637,12 +631,13 @@ typedef enum { GDK_FAIL, GDK_SUCCEED } g
 
 /* Heap storage modes */
 typedef enum {
-       STORE_MEM     = 0,              /* load into GDKmalloced memory */
-       STORE_MMAP    = 1,              /* mmap() into virtual memory */
-       STORE_PRIV    = 2,              /* BAT copy of copy-on-write mmap */
-    STORE_CMEM    = 3,      /* Indicates the value is stored in regular C 
memory rather than GDK memory.*/
-    STORE_NOWN    = 4,      /* Indicates that the bat does not own the chunk 
of memory and is not in charge of freeing it.*/
-    STORE_MMAPABS = 5,      /* mmap() into virtual memory from an absolute 
path (not part of dbfarm) */
+       STORE_MEM     = 0,      /* load into GDKmalloced memory */
+       STORE_MMAP    = 1,      /* mmap() into virtual memory */
+       STORE_PRIV    = 2,      /* BAT copy of copy-on-write mmap */
+       STORE_CMEM    = 3,      /* load into malloc (not GDKmalloc) memory*/
+       STORE_NOWN    = 4,      /* memory not owned by the BAT */
+       STORE_MMAPABS = 5,      /* mmap() into virtual memory from an
+                                * absolute path (not part of dbfarm) */
        STORE_INVALID           /* invalid value, used to indicate error */
 } storage_t;
 
@@ -653,8 +648,8 @@ typedef struct {
        str filename;           /* file containing image of the heap */
 
        unsigned int copied:1,  /* a copy of an existing map. */
-                     hashash:1,/* the string heap contains hash values */
-                     forcemap:1;  /* force STORE_MMAP even if heap exists */
+               hashash:1,      /* the string heap contains hash values */
+               forcemap:1;     /* force STORE_MMAP even if heap exists */
        storage_t storage;      /* storage mode (mmap/malloc). */
        storage_t newstorage;   /* new desired storage mode at re-allocation. */
        bte dirty;              /* specific heap dirty marker */
@@ -886,48 +881,56 @@ typedef struct BAT {
        oid hseqbase;           /* head seq base */
 
        /* dynamic column properties */
-       COLrec *T;              /* column info */
+       COLrec T;               /* column info */
 
-       BATrec *S;              /* the BAT properties */
+       BATrec S;               /* the BAT properties */
 } BAT;
 
 typedef struct BATiter {
        BAT *b;
-       oid hvid, tvid;
+       oid tvid;
 } BATiter;
 
-typedef struct BATstore BATstore;
-#define BATSTORESIZE   (2 * (sizeof(BAT) + sizeof(COLrec)) + sizeof(BATrec))
-
-typedef int (*GDKfcn) ();
-
-/* macros's to hide complexity of BAT structure */
-#define batPersistence S->persistence
-#define batCopiedtodisk        S->copiedtodisk
-#define batDirty       S->dirty
-#define batConvert     S->convert
-#define batDirtyflushed        S->dirtyflushed
-#define batDirtydesc   S->descdirty
-#define batFirst       S->first
-#define batInserted    S->inserted
-#define batDeleted     S->deleted
-#define batCount       S->count
-#define batCapacity    S->capacity
-#define batStamp       S->stamp
-#define batSharecnt    S->sharecnt
-#define batRestricted  S->restricted
-#define batRole                S->role
-#define creator_tid    S->tid
-#define ttype          T->type
-#define tkey           T->key
-#define tvarsized      T->varsized
-#define tseqbase       T->seq
-#define tsorted                T->sorted
-#define trevsorted     T->revsorted
-#define tdense         T->dense
-#define tident         T->id
-#define talign         T->align
-#define torderidx      T->orderidx
+/* macros to hide complexity of the BAT structure */
+#define batPersistence S.persistence
+#define batCopiedtodisk        S.copiedtodisk
+#define batDirty       S.dirty
+#define batConvert     S.convert
+#define batDirtyflushed        S.dirtyflushed
+#define batDirtydesc   S.descdirty
+#define batFirst       S.first
+#define batInserted    S.inserted
+#define batDeleted     S.deleted
+#define batCount       S.count
+#define batCapacity    S.capacity
+#define batStamp       S.stamp
+#define batSharecnt    S.sharecnt
+#define batRestricted  S.restricted
+#define batRole                S.role
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to