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