Changeset: 528d8847aa86 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=528d8847aa86
Modified Files:
        gdk/gdk_heap.c
        monetdb5/extras/rapi/converters.c
        tools/embedded/embedded.c
        tools/embedded/embeddedr.h
Branch: embedded
Log Message:

no memory mapping for transients and direct array access through USE_RINTERNALS


diffs (110 lines):

diff --git a/gdk/gdk_heap.c b/gdk/gdk_heap.c
--- a/gdk/gdk_heap.c
+++ b/gdk/gdk_heap.c
@@ -101,7 +101,6 @@ HEAPalloc(Heap *h, size_t nitems, size_t
                GDKerror("HEAPalloc: allocating more than heap can 
accomodate\n");
                return GDK_FAIL;
        }
-
        if (h->filename == NULL || h->size < GDK_mmap_minsize) {
                h->storage = STORE_MEM;
                h->base = (char *) GDKmallocmax(h->size, &h->size, 0);
diff --git a/monetdb5/extras/rapi/converters.c 
b/monetdb5/extras/rapi/converters.c
--- a/monetdb5/extras/rapi/converters.c
+++ b/monetdb5/extras/rapi/converters.c
@@ -112,7 +112,7 @@ static SEXP bat_to_sexp(BAT* b) {
                        break;
                case TYPE_str: { // there is only one string type, thus no 
macro here
                        // this was found to be always slower.
-                       /*if (GDK_ELIMDOUBLES(b->T->vheap)) {
+                       if (GDK_ELIMDOUBLES(b->T->vheap) && BATcount(b) > 0) {
                                BAT *grp, *ext;
                                BUN p, q;
                                BATiter b_it, ext_it, grp_it;
@@ -153,14 +153,14 @@ static SEXP bat_to_sexp(BAT* b) {
                                }
 
                                BATloop(grp, p, q) {
-                                       SET_STRING_ELT(varvalue, p,  
sptrs[*((oid*) BUNtail(grp_it, p))]);
+                                       STRING_ELT(varvalue, p) = 
sptrs[*((oid*) BUNtail(grp_it, p))];
                                }
 
                                GDKfree(sptrs);
                                BBPunfix(grp->batCacheid);
                                BBPunfix(ext->batCacheid);
                        }
-                       else {*/
+                       else {
                                BUN p, q, j = 0;
                                BATiter li = bat_iterator(b);
                                varvalue = PROTECT(NEW_STRING(BATcount(b)));
@@ -169,21 +169,21 @@ static SEXP bat_to_sexp(BAT* b) {
                                }
                                if (b->T->nonil) {
                                        BATloop(b, p, q) {
-                                               SET_STRING_ELT(varvalue, j++, 
mkCharCE(
-                                                       (const char *) 
BUNtail(li, p), CE_UTF8));
+                                               STRING_ELT(varvalue, j++) = 
mkCharCE(
+                                                       (const char *) 
BUNtail(li, p), CE_UTF8);
                                        }
                                }
                                else {
                                        BATloop(b, p, q) {
                                                const char *t = (const char *) 
BUNtail(li, p);
                                                if (strcmp(t, str_nil) == 0) {
-                                                       
SET_STRING_ELT(varvalue, j++, NA_STRING);
+                                                       STRING_ELT(varvalue, 
j++) = NA_STRING;
                                                } else {
-                                                       
SET_STRING_ELT(varvalue, j++, mkCharCE(t, CE_UTF8));
+                                                       STRING_ELT(varvalue, 
j++) = mkCharCE(t, CE_UTF8);
                                                }
                                        }
                                }
-                       //}
+                       }
                }       break;
        }
        return varvalue;
diff --git a/tools/embedded/embedded.c b/tools/embedded/embedded.c
--- a/tools/embedded/embedded.c
+++ b/tools/embedded/embedded.c
@@ -89,7 +89,6 @@ char* monetdb_startup(char* dbdir, char 
                retval = GDKstrdup("setlocale() failed");
                goto cleanup;
        }
-
        GDKfataljumpenable = 1;
        if(setjmp(GDKfataljump) != 0) {
                retval = GDKfatalmsg;
@@ -105,17 +104,18 @@ char* monetdb_startup(char* dbdir, char 
 
        setlen = mo_builtin_settings(&set);
        setlen = mo_add_option(&set, setlen, opt_cmdline, "gdk_dbpath", dbdir);
+       setlen = mo_add_option(&set, setlen, opt_cmdline, "gdk_mmap_minsize", 
"18446744073709551615");
+
        BBPaddfarm(dbdir, (1 << PERSISTENT) | (1 << TRANSIENT));
-
        if (GDKinit(set, setlen) == 0) {
                retval = GDKstrdup("GDKinit() failed");
                goto cleanup;
        }
        GDKsetenv("monet_mod_path", "");
        GDKsetenv("mapi_disable", "true");
-       GDKsetenv("max_clients", "0");
        GDKsetenv("sql_optimizer", "sequential_pipe");
 
+
        if (silent) THRdata[0] = stream_blackhole_create();
        msab_dbpathinit(dbdir);
 
diff --git a/tools/embedded/embeddedr.h b/tools/embedded/embeddedr.h
--- a/tools/embedded/embeddedr.h
+++ b/tools/embedded/embeddedr.h
@@ -13,6 +13,7 @@
 #ifndef _EMBEDDED_R_LIB_
 #define _EMBEDDED_R_LIB_
 
+#define USE_RINTERNALS 1
 #include <Rdefines.h>
 #include "embedded.h"
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to