Changeset: bdc2cf595881 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bdc2cf595881
Branch: default
Log Message:
Merge with embedded_mapi.
diffs (118 lines):
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
@@ -1447,6 +1447,7 @@ char *monetdbe_error(monetdbe_database d
char *monetdbe_execute(monetdbe_statement *stmt, monetdbe_result **result,
monetdbe_cnt *affected_rows);
char *monetdbe_get_autocommit(monetdbe_database dbhdl, int *result);
char *monetdbe_get_columns(monetdbe_database dbhdl, const char *schema_name,
const char *table_name, size_t *column_count, monetdbe_column **columns);
+const char *monetdbe_get_mapi_port(void);
int monetdbe_in_transaction(monetdbe_database dbhdl);
const void *monetdbe_null(monetdbe_database dbhdl, monetdbe_types t);
int monetdbe_open(monetdbe_database *db, char *url, monetdbe_options *opts);
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -273,21 +273,24 @@ MSscheduleClient(str command, str challe
return;
} else {
str err;
- oid uid;
+ oid uid = 0;
sabdb *stats = NULL;
- /* access control: verify the credentials supplied by the user,
- * no need to check for database stuff, because that is done per
- * database itself (one gets a redirect) */
- err = AUTHcheckCredentials(&uid, NULL, user, passwd, challenge,
algo);
- if (err != MAL_SUCCEED) {
- mnstr_printf(fout, "!%s\n", err);
- exit_streams(fin, fout);
- freeException(err);
- GDKfree(command);
- return;
+ if (!GDKembedded()) {
+ /* access control: verify the credentials supplied by
the user,
+ * no need to check for database stuff, because that is
done per
+ * database itself (one gets a redirect) */
+ err = AUTHcheckCredentials(&uid, NULL, user, passwd,
challenge, algo);
+ if (err != MAL_SUCCEED) {
+ mnstr_printf(fout, "!%s\n", err);
+ exit_streams(fin, fout);
+ freeException(err);
+ GDKfree(command);
+ return;
+ }
}
+
if (!GDKinmemory(0) && !GDKembedded()) {
err = msab_getMyStatus(&stats);
if (err != NULL) {
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -617,7 +617,7 @@ monetdbe_startup(monetdbe_database_inter
goto cleanup;
}
- with_mapi_server = false;
+ with_mapi_server = false;
if (monetdbe_embedded_initialized) {
set_error(mdbe, createException(MAL,
"monetdbe.monetdbe_startup", "MonetDBe is already initialized"));
@@ -646,8 +646,18 @@ monetdbe_startup(monetdbe_database_inter
if (opts && opts->mapi_server) {
/*This monetdbe instance wants to listen to external mapi
client connections.*/
- with_mapi_server = true;
+ if (opts->mapi_server->host) {
+ with_mapi_server = true;
+ int psetlen = setlen;
+ setlen = mo_add_option(&set, setlen, opt_cmdline,
"mapi_listenaddr", opts->mapi_server->host);
+ if (setlen == psetlen) {
+ mo_free_options(set, setlen);
+ set_error(mdbe, createException(MAL,
"monetdbe.monetdbe_startup", MAL_MALLOC_FAIL));
+ goto cleanup;
+ }
+ }
if (opts->mapi_server->port) {
+ with_mapi_server = true;
int psetlen = setlen;
setlen = mo_add_option(&set, setlen, opt_cmdline,
"mapi_port", opts->mapi_server->port);
if (setlen == psetlen) {
@@ -657,6 +667,7 @@ monetdbe_startup(monetdbe_database_inter
}
}
if (opts->mapi_server->usock) {
+ with_mapi_server = true;
int psetlen = setlen;
setlen = mo_add_option(&set, setlen, opt_cmdline,
"mapi_usock", opts->mapi_server->usock);
if (setlen == psetlen) {
@@ -2831,3 +2842,8 @@ timestamp_from_data(monetdbe_data_timest
date_create(ptr->date.year, ptr->date.month, ptr->date.day),
daytime_create(ptr->time.hours, ptr->time.minutes,
ptr->time.seconds, ptr->time.ms * 1000));
}
+
+const char*
+monetdbe_get_mapi_port(void) {
+ return GDKgetenv("mapi_port");
+}
diff --git a/tools/monetdbe/monetdbe.h b/tools/monetdbe/monetdbe.h
--- a/tools/monetdbe/monetdbe.h
+++ b/tools/monetdbe/monetdbe.h
@@ -103,6 +103,7 @@ typedef struct {
} monetdbe_remote;
typedef struct {
+ const char *host;
const char* port;
const char* usock;
} monetdbe_mapi_server;
@@ -179,6 +180,7 @@ 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 const char* monetdbe_get_mapi_port(void);
#ifdef __cplusplus
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]