Changeset: 258a558da5e8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=258a558da5e8 Modified Files: ctest/tools/monetdbe/example1.c ctest/tools/monetdbe/example2.c ctest/tools/monetdbe/example_append.c ctest/tools/monetdbe/example_backup.c ctest/tools/monetdbe/example_blob.c ctest/tools/monetdbe/example_connections.c ctest/tools/monetdbe/example_decimals.c ctest/tools/monetdbe/example_temporal.c tools/monetdbe/monetdbe.c tools/monetdbe/monetdbe.h Branch: default Log Message:
small change monetdbe_open, extra argument with monetdbe_options diffs (214 lines): diff --git a/ctest/tools/monetdbe/example1.c b/ctest/tools/monetdbe/example1.c --- a/ctest/tools/monetdbe/example1.c +++ b/ctest/tools/monetdbe/example1.c @@ -21,7 +21,7 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe, NULL, NULL)) != NULL) error(err) if ((err = monetdbe_query(mdbe, "CREATE TABLE test (x integer, y string)", NULL, NULL)) != NULL) error(err) diff --git a/ctest/tools/monetdbe/example2.c b/ctest/tools/monetdbe/example2.c --- a/ctest/tools/monetdbe/example2.c +++ b/ctest/tools/monetdbe/example2.c @@ -21,7 +21,7 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe, NULL, NULL)) != NULL) error(err) if ((err = monetdbe_query(mdbe, "CREATE TABLE test (b bool, t tinyint, s smallint, x integer, l bigint, " #ifdef HAVE_HGE diff --git a/ctest/tools/monetdbe/example_append.c b/ctest/tools/monetdbe/example_append.c --- a/ctest/tools/monetdbe/example_append.c +++ b/ctest/tools/monetdbe/example_append.c @@ -21,7 +21,7 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe, NULL, NULL)) != NULL) error(err) if ((err = monetdbe_query(mdbe, "CREATE TABLE test (x integer, y string)", NULL, NULL)) != NULL) error(err) diff --git a/ctest/tools/monetdbe/example_backup.c b/ctest/tools/monetdbe/example_backup.c --- a/ctest/tools/monetdbe/example_backup.c +++ b/ctest/tools/monetdbe/example_backup.c @@ -11,7 +11,7 @@ main(void) char *msg; monetdbe_database mdbe; - if ((msg = monetdbe_open(&mdbe, NULL)) != NULL) + if ((msg = monetdbe_open(&mdbe, NULL, NULL)) != NULL) error(msg); if ((err = monetdbe_query(mdbe, "CREATE TABLE test (b bool, t tinyint, s smallint, x integer, l bigint, " diff --git a/ctest/tools/monetdbe/example_blob.c b/ctest/tools/monetdbe/example_blob.c --- a/ctest/tools/monetdbe/example_blob.c +++ b/ctest/tools/monetdbe/example_blob.c @@ -23,7 +23,7 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe, NULL )) != NULL) + if ((err = monetdbe_open(&mdbe, NULL, NULL )) != NULL) error(err) if ((err = monetdbe_query(mdbe, "CREATE TABLE test (name string, data blob)", NULL, NULL)) != NULL) error(err) diff --git a/ctest/tools/monetdbe/example_connections.c b/ctest/tools/monetdbe/example_connections.c --- a/ctest/tools/monetdbe/example_connections.c +++ b/ctest/tools/monetdbe/example_connections.c @@ -21,9 +21,9 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe1, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe1, NULL, NULL)) != NULL) error(err) - if ((err = monetdbe_open(&mdbe2, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe2, NULL, NULL)) != NULL) error(err) if ((err = monetdbe_query(mdbe1, "CREATE TABLE test (x integer, y string)", NULL, NULL)) != NULL) error(err) diff --git a/ctest/tools/monetdbe/example_decimals.c b/ctest/tools/monetdbe/example_decimals.c --- a/ctest/tools/monetdbe/example_decimals.c +++ b/ctest/tools/monetdbe/example_decimals.c @@ -21,7 +21,7 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe, NULL, NULL)) != NULL) error(err) if ((err = monetdbe_query(mdbe, "CREATE TABLE test (b bigint, d1 decimal(15,3), m decimal(4,2), y string)", NULL, NULL)) != NULL) error(err) diff --git a/ctest/tools/monetdbe/example_temporal.c b/ctest/tools/monetdbe/example_temporal.c --- a/ctest/tools/monetdbe/example_temporal.c +++ b/ctest/tools/monetdbe/example_temporal.c @@ -24,7 +24,7 @@ main(void) monetdbe_result* result = NULL; // second argument is a string for the db directory or NULL for in-memory mode - if ((err = monetdbe_open(&mdbe, NULL)) != NULL) + if ((err = monetdbe_open(&mdbe, NULL, NULL)) != NULL) error(err) if ((err = monetdbe_query(mdbe, "CREATE TABLE test (x integer, d date, t time, ts timestamp, y string)", NULL, NULL)) != NULL) error(err) diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -412,7 +412,7 @@ monetdbe_shutdown_internal(void) // Call } static char* -monetdbe_startup(char* dbdir) +monetdbe_startup(char* dbdir, monetdbe_options *opts) { char* msg = MAL_SUCCEED, *err; monetdbe_result* res = NULL; @@ -435,10 +435,6 @@ monetdbe_startup(char* dbdir) goto done; } - //hacked - // define MT_fprintf_silent - // MT_fprintf_silent(silent); - if ((setlen = mo_builtin_settings(&set)) == 0) { msg = createException(MAL, "monetdbe.monetdbe_startup", MAL_MALLOC_FAIL); goto cleanup; @@ -448,17 +444,22 @@ monetdbe_startup(char* dbdir) msg = createException(MAL, "monetdbe.monetdbe_startup", MAL_MALLOC_FAIL); goto cleanup; } - /* get sequential and other flags from url - if (sequential) + if (opts && opts->nr_threads == 1) setlen = mo_add_option(&set, setlen, opt_cmdline, "sql_optimizer", "sequential_pipe"); else - */ setlen = mo_add_option(&set, setlen, opt_cmdline, "sql_optimizer", "default_pipe"); if (setlen == 0) { mo_free_options(set, setlen); msg = createException(MAL, "monetdbe.monetdbe_startup", MAL_MALLOC_FAIL); goto cleanup; } + if (opts && opts->nr_threads) { + GDKnr_threads = opts->nr_threads; + } + if (opts && opts->memorylimit) { + GDK_vm_maxsize = opts->memorylimit; + } + if (!dbdir) { /* in-memory */ if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT)) != GDK_SUCCEED) { mo_free_options(set, setlen); @@ -521,7 +522,7 @@ done: } char* -monetdbe_open(monetdbe_database *dbhdl, char *url) +monetdbe_open(monetdbe_database *dbhdl, char *url, monetdbe_options *opts) { char* msg = MAL_SUCCEED; if (!dbhdl) @@ -529,7 +530,7 @@ monetdbe_open(monetdbe_database *dbhdl, MT_lock_set(&embedded_lock); if (!monetdbe_embedded_initialized) { /* later handle url !*/ - msg = monetdbe_startup(url); + msg = monetdbe_startup(url, opts); } else { /* check uri */ if ((monetdbe_embedded_url && url && strcmp(monetdbe_embedded_url, url) != 0) || (monetdbe_embedded_url != url && (monetdbe_embedded_url == NULL || url == NULL))) msg = createException(MAL, "monetdbe.monetdbe_open", "monetdbe_open currently only one active database is supported"); @@ -616,14 +617,6 @@ monetdbe_dump_table(monetdbe_database db } char* -monetdbe_memorylimit(monetdbe_database dbhdl, monetdbe_cnt bytes) -{ - (void)dbhdl; - (void)bytes; - return MAL_SUCCEED; -} - -char* monetdbe_get_autocommit(monetdbe_database dbhdl, int* result) { char *msg = MAL_SUCCEED; diff --git a/tools/monetdbe/monetdbe.h b/tools/monetdbe/monetdbe.h --- a/tools/monetdbe/monetdbe.h +++ b/tools/monetdbe/monetdbe.h @@ -86,6 +86,11 @@ typedef struct { typedef void* monetdbe_database; +typedef struct { + monetdbe_cnt memorylimit; + int nr_threads; +} monetdbe_options; + #define DEFAULT_STRUCT_DEFINITION(ctype, typename) \ typedef struct \ { \ @@ -119,7 +124,7 @@ DEFAULT_STRUCT_DEFINITION(monetdbe_data_ DEFAULT_STRUCT_DEFINITION(monetdbe_data_timestamp, timestamp); // UUID, INET, XML ? -monetdbe_export char* monetdbe_open(monetdbe_database *db, char *url); +monetdbe_export char* monetdbe_open(monetdbe_database *db, char *url, monetdbe_options *opts); monetdbe_export char* monetdbe_close(monetdbe_database db); monetdbe_export char* monetdbe_get_autocommit(monetdbe_database dbhdl, int* result); @@ -143,8 +148,6 @@ monetdbe_export char* monetdbe_get_colum monetdbe_export char* monetdbe_dump_database(monetdbe_database dbhdl, const char *backupfile); monetdbe_export char* monetdbe_dump_table(monetdbe_database dbhdl, const char *schema_name, const char *table_name, const char *backupfile); -monetdbe_export char* monetdbe_memorylimit(monetdbe_database dbhdl, monetdbe_cnt bytes); - #ifdef __cplusplus } #endif _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list