Changeset: bb9147180e61 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bb9147180e61
Removed Files:
monetdb5/mal/mal_readline.c
monetdb5/mal/mal_readline.h
Modified Files:
NT/monetdb_config.h.in
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/mclient.c
clients/mapilib/mapi.c
common/options/monet_options.c
common/utils/msabaoth.c
common/utils/msabaoth.h
configure.ag
monetdb5/mal/Makefile.ag
monetdb5/mal/Tests/tst251.stable.out
monetdb5/mal/mal.c
monetdb5/mal/mal.h
monetdb5/mal/mal_client.c
monetdb5/mal/mal_client.h
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_resource.c
monetdb5/mal/mal_session.c
monetdb5/modules/atoms/mtime.c
monetdb5/modules/atoms/uuid.c
monetdb5/modules/mal/clients.c
monetdb5/tools/Tests/mserver5--help.stable.err
monetdb5/tools/Tests/mserver5--help.stable.err.Windows
sql/backends/monet5/Tests/simpleSQL.malC
sql/backends/monet5/Tests/simpleSQL.stable.out
sql/backends/monet5/mal_backend.c
sql/backends/monet5/mal_backend.h
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_scenario.h
sql/backends/monet5/vaults/bam/Tests/bam_lib_mal.stable.err
sql/backends/monet5/vaults/bam/Tests/bam_lib_mal.stable.out
sql/test/BugTracker-2016/Tests/convert-function-test-hge.Bug-3460.stable.out.int128
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
testing/Mtest.py.in
tools/merovingian/daemon/forkmserver.c
tools/mserver/mserver5.c
Branch: context
Log Message:
merged with default
diffs (truncated from 1878 to 300 lines):
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -136,9 +136,6 @@
/* Define if you have the CommonCrypto library */
/* #undef HAVE_COMMONCRYPTO */
-/* If the console should be used */
-#define HAVE_CONSOLE 1
-
/* Define to 1 if you have the `ctime_r' function. */
#define HAVE_CTIME_R 1
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -11724,7 +11724,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",
"mvc_grow_wrap;", "Resize the tid column of a declared table." ]
[ "sql", "importTable", "unsafe pattern sql.importTable(sname:str,
tname:str, onclient:int, fname:str...):bat[:any]... ",
"mvc_bin_import_table_wrap;", "Import a table from the files (fname)" ]
[ "sql", "include", "pattern sql.include(fname:str):void ",
"SQLinclude;", "Compile and execute a sql statements on the file" ]
-[ "sql", "init", "pattern sql.init():void ", "SQLinitEnvironment;",
"Initialize the environment for MAL" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row in
the partition or 'd' if non existent" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:bat[:any_1],
p:any_3, o:any_4):any_1 ", "SQLlag;", "return the value in the previous
'l' row in the partition or 'd' if non existent" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row
in the partition or NULL if non existent" ]
@@ -11801,8 +11800,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "single", "pattern sql.single(x:any_2):bat[:any_2] ",
"CMDBATsingle;", "" ]
[ "sql", "sql_environment", "inline function sql.sql_environment()
(name:bat[:str], value:bat[:str]);", "", "" ]
[ "sql", "sql_variables", "pattern sql.sql_variables():bat[:str]
", "sql_variables;", "return the table with session variables"
]
-[ "sql", "start", "pattern sql.start():void ", "SQLsession;",
"Switch to processing SQL statements" ]
-[ "sql", "start2", "pattern sql.start2():void ", "SQLsession2;",
"Switch to processing precompiled sql statements" ]
[ "sql", "storage", "pattern sql.storage() (schema:bat[:str],
table:bat[:str], column:bat[:str], type:bat[:str], mode:bat[:str],
location:bat[:str], count:bat[:lng], atomwidth:bat[:int], columnsize:bat[:lng],
heap:bat[:lng], hashes:bat[:lng], phash:bat[:bit], imprints:bat[:lng],
sorted:bat[:bit], revsorted:bat[:bit], key:bat[:bit], orderidx:bat[:lng]) ",
"sql_storage;", "return a table with storage information " ]
[ "sql", "storage", "pattern sql.storage(sname:str)
(schema:bat[:str], table:bat[:str], column:bat[:str], type:bat[:str],
mode:bat[:str], location:bat[:str], count:bat[:lng], atomwidth:bat[:int],
columnsize:bat[:lng], heap:bat[:lng], hashes:bat[:lng], phash:bat[:bit],
imprints:bat[:lng], sorted:bat[:bit], revsorted:bat[:bit], key:bat[:bit],
orderidx:bat[:lng]) ", "sql_storage;", "return a table with storage
information for a particular schema " ]
[ "sql", "storage", "pattern sql.storage(sname:str, tname:str)
(schema:bat[:str], table:bat[:str], column:bat[:str], type:bat[:str],
mode:bat[:str], location:bat[:str], count:bat[:lng], atomwidth:bat[:int],
columnsize:bat[:lng], heap:bat[:lng], hashes:bat[:lng], phash:bat[:bit],
imprints:bat[:lng], sorted:bat[:bit], revsorted:bat[:bit], key:bat[:bit],
orderidx:bat[:lng]) ", "sql_storage;", "return a table with storage
information for a particular table" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -16138,7 +16138,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",
"mvc_grow_wrap;", "Resize the tid column of a declared table." ]
[ "sql", "importTable", "unsafe pattern sql.importTable(sname:str,
tname:str, onclient:int, fname:str...):bat[:any]... ",
"mvc_bin_import_table_wrap;", "Import a table from the files (fname)" ]
[ "sql", "include", "pattern sql.include(fname:str):void ",
"SQLinclude;", "Compile and execute a sql statements on the file" ]
-[ "sql", "init", "pattern sql.init():void ", "SQLinitEnvironment;",
"Initialize the environment for MAL" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row in
the partition or 'd' if non existent" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:bat[:any_1],
p:any_3, o:any_4):any_1 ", "SQLlag;", "return the value in the previous
'l' row in the partition or 'd' if non existent" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row
in the partition or NULL if non existent" ]
@@ -16221,8 +16220,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "single", "pattern sql.single(x:any_2):bat[:any_2] ",
"CMDBATsingle;", "" ]
[ "sql", "sql_environment", "inline function sql.sql_environment()
(name:bat[:str], value:bat[:str]);", "", "" ]
[ "sql", "sql_variables", "pattern sql.sql_variables():bat[:str]
", "sql_variables;", "return the table with session variables"
]
-[ "sql", "start", "pattern sql.start():void ", "SQLsession;",
"Switch to processing SQL statements" ]
-[ "sql", "start2", "pattern sql.start2():void ", "SQLsession2;",
"Switch to processing precompiled sql statements" ]
[ "sql", "storage", "pattern sql.storage() (schema:bat[:str],
table:bat[:str], column:bat[:str], type:bat[:str], mode:bat[:str],
location:bat[:str], count:bat[:lng], atomwidth:bat[:int], columnsize:bat[:lng],
heap:bat[:lng], hashes:bat[:lng], phash:bat[:bit], imprints:bat[:lng],
sorted:bat[:bit], revsorted:bat[:bit], key:bat[:bit], orderidx:bat[:lng]) ",
"sql_storage;", "return a table with storage information " ]
[ "sql", "storage", "pattern sql.storage(sname:str)
(schema:bat[:str], table:bat[:str], column:bat[:str], type:bat[:str],
mode:bat[:str], location:bat[:str], count:bat[:lng], atomwidth:bat[:int],
columnsize:bat[:lng], heap:bat[:lng], hashes:bat[:lng], phash:bat[:bit],
imprints:bat[:lng], sorted:bat[:bit], revsorted:bat[:bit], key:bat[:bit],
orderidx:bat[:lng]) ", "sql_storage;", "return a table with storage
information for a particular schema " ]
[ "sql", "storage", "pattern sql.storage(sname:str, tname:str)
(schema:bat[:str], table:bat[:str], column:bat[:str], type:bat[:str],
mode:bat[:str], location:bat[:str], count:bat[:lng], atomwidth:bat[:int],
columnsize:bat[:lng], heap:bat[:lng], hashes:bat[:lng], phash:bat[:bit],
imprints:bat[:lng], sorted:bat[:bit], revsorted:bat[:bit], key:bat[:bit],
orderidx:bat[:lng]) ", "sql_storage;", "return a table with storage
information for a particular table" ]
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
@@ -2217,7 +2217,6 @@ int getBitConstant(MalBlkPtr mb, bit val
int getBlockBegin(MalBlkPtr mb, int pc);
int getBlockExit(MalBlkPtr mb, int pc);
int getBteConstant(MalBlkPtr mb, bte val);
-char *getConsoleInput(Client c, const char *prompt, int linemode, int
exit_on_error);
int getDblConstant(MalBlkPtr mb, dbl val);
lng getDiskReads(void);
lng getDiskSpace(void);
@@ -2375,8 +2374,6 @@ str mal_quote(const char *msg, size_t si
MT_Lock mal_remoteLock;
void mal_resource_reset(void) __attribute__((__visibility__("hidden")));
void mal_runtime_reset(void) __attribute__((__visibility__("hidden")));
-str mal_session_uuid;
-int mal_trace;
void mal_unquote(char *msg);
str manifoldRef;
str mapiRef;
@@ -2432,6 +2429,7 @@ char *msab_getDBfarm(char **ret);
char *msab_getDBname(char **ret);
char *msab_getMyStatus(sabdb **ret);
char *msab_getStatus(sabdb **ret, char *dbname);
+char *msab_getUUID(char **ret);
char *msab_getUplogInfo(sabuplog *ret, const sabdb *db);
char *msab_marchConnection(const char *host, const int port);
char *msab_marchScenario(const char *lang);
@@ -2553,7 +2551,6 @@ str raiseRef;
str rangejoinRef;
str rankRef;
str rapiRef;
-int readConsole(Client cntxt);
MalStkPtr reallocGlobalStack(MalStkPtr s, int cnt);
str reconnectRef;
str reenterMAL(Client cntxt, MalBlkPtr mb, int startpc, int stoppc, MalStkPtr
stk);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -27,6 +27,7 @@
#ifdef HAVE_STRINGS_H
#include <strings.h> /* strcasecmp */
#endif
+#include <sys/stat.h>
#ifdef HAVE_LIBREADLINE
#include <readline/readline.h>
@@ -3241,6 +3242,18 @@ usage(const char *prog, int xit)
/* hardwired defaults, only used if monet environment cannot be found */
#define defaultPort 50000
+static inline bool
+isfile(FILE *fp)
+{
+ struct stat stb;
+ if (fstat(fileno(fp), &stb) < 0 ||
+ (stb.st_mode & S_IFMT) != S_IFREG) {
+ fclose(fp);
+ return false;
+ }
+ return true;
+}
+
int
main(int argc, char **argv)
{
@@ -3559,7 +3572,8 @@ main(int argc, char **argv)
has_fileargs = optind != argc;
if (dbname == NULL && has_fileargs &&
- (fp = fopen(argv[optind], "r")) == NULL) {
+ ((fp = fopen(argv[optind], "r")) == NULL || !isfile(fp))) {
+ fp = NULL;
dbname = strdup(argv[optind]);
optind++;
has_fileargs = optind != argc;
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -3649,7 +3649,7 @@ slice_row(const char *reply, char *null,
i = 0;
anchors = length == 0 ? NULL : malloc(length * sizeof(*anchors));
lens = length == 0 ? NULL : malloc(length * sizeof(*lens));
- do {
+ for (;;) {
if (i >= length) {
length = i + 1;
REALLOC(anchors, length);
@@ -3663,9 +3663,17 @@ slice_row(const char *reply, char *null,
}
lens[i] = len;
anchors[i++] = start;
- while (reply && *reply && isspace((unsigned char) *reply))
+ if (reply == NULL)
+ break;
+ while (*reply && isspace((unsigned char) *reply))
+ reply++;
+ if (*reply == ',') {
reply++;
- } while (reply && *reply && *reply != endchar);
+ while (*reply && isspace((unsigned char) *reply))
+ reply++;
+ } else if (*reply == 0 || *reply == endchar)
+ break;
+ }
*anchorsp = anchors;
*lensp = lens;
return i;
@@ -4774,8 +4782,6 @@ unquote(const char *msg, char **str, con
/* skip over trailing junk (presumably white space) */
while (*p && *p != ',' && *p != endchar)
p++;
- if (*p == ',')
- p++;
if (next)
*next = p;
*str = start;
@@ -4797,8 +4803,7 @@ unquote(const char *msg, char **str, con
;
if (s < msg || !isspace((unsigned char) *s)) /* gone one too
far */
s++;
- if (*p == ',' || *p == '\t') {
- /* there is more to come; skip over separator */
+ if (*p == '\t') {
p++;
}
len = s - msg;
diff --git a/common/options/monet_options.c b/common/options/monet_options.c
--- a/common/options/monet_options.c
+++ b/common/options/monet_options.c
@@ -219,7 +219,7 @@ mo_builtin_settings(opt **Set)
if (Set == NULL)
return 0;
-#define N_OPTIONS 9 /*MUST MATCH # OPTIONS BELOW */
+#define N_OPTIONS 8 /*MUST MATCH # OPTIONS BELOW */
set = malloc(sizeof(opt) * N_OPTIONS);
if (set == NULL)
return 0;
@@ -234,10 +234,6 @@ mo_builtin_settings(opt **Set)
set[i].value = strdup(">");
i++;
set[i].kind = opt_builtin;
- set[i].name = strdup("monet_daemon");
- set[i].value = strdup("no");
- i++;
- set[i].kind = opt_builtin;
set[i].name = strdup("mapi_port");
set[i].value = strdup("50000");
i++;
diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c
--- a/common/utils/msabaoth.c
+++ b/common/utils/msabaoth.c
@@ -45,7 +45,7 @@ char *_sabaoth_internal_dbfarm = NULL;
/** the database which is "active" */
char *_sabaoth_internal_dbname = NULL;
/** identifier of the current process */
-char *_sabaoth_internal_uuid = NULL;
+static char *_sabaoth_internal_uuid = NULL;
/**
* Retrieves the dbfarm path plus an optional extra component added
@@ -242,6 +242,15 @@ msab_getDBname(char **ret)
return(NULL);
}
+char *
+msab_getUUID(char **ret)
+{
+ if (_sabaoth_internal_uuid == NULL)
+ return(strdup("sabaoth not initialized"));
+ *ret = strdup(_sabaoth_internal_uuid);
+ return NULL;
+}
+
#define SCENARIOFILE ".scen"
/**
diff --git a/common/utils/msabaoth.h b/common/utils/msabaoth.h
--- a/common/utils/msabaoth.h
+++ b/common/utils/msabaoth.h
@@ -65,6 +65,7 @@ msab_export void msab_dbpathinit(const c
msab_export void msab_dbfarminit(const char *dbfarm);
msab_export char *msab_getDBfarm(char **ret);
msab_export char *msab_getDBname(char **ret);
+msab_export char *msab_getUUID(char **ret);
msab_export char *msab_marchScenario(const char *lang);
msab_export char *msab_retreatScenario(const char *lang);
msab_export char *msab_marchConnection(const char *host, const int port);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -300,21 +300,6 @@ AC_ARG_ENABLE(py3integration,
enable_py3integration=$enableval,
enable_py3integration=$dft_py3integration)
-# The console is a direct client hooked onto the kernel with full
-# administrative privileges, bypassing any security checks. It is
-# handy only during development.
-# We simply can't disable it for now because Testing gets hopelessly
-# upset about it, but we can offer to the user to disable it for
-# increased security.
-dft_console=yes
-AC_ARG_ENABLE([console],
- [AS_HELP_STRING([--enable-console],
- [enables direct console on the server (involves security risks)
(default=yes)])],
- [enable_console="$enableval"],
- [enable_console=$dft_console])
-AS_VAR_IF([enable_console], [no], [],
- [AC_DEFINE([HAVE_CONSOLE], 1, [If the console should be used])])
-
dft_int128=auto
AC_ARG_ENABLE([int128],
[AS_HELP_STRING([--enable-int128],
@@ -2954,7 +2939,6 @@ for comp in \
'monetdb5 ' \
'sql ' \
'geom ' \
- 'console ' \
'py2integration' \
'py3integration' \
'rintegration ' \
diff --git a/monetdb5/mal/Makefile.ag b/monetdb5/mal/Makefile.ag
--- a/monetdb5/mal/Makefile.ag
+++ b/monetdb5/mal/Makefile.ag
@@ -38,7 +38,6 @@ lib_mal = {
mal_namespace.c mal_namespace.h \
mal_parser.c mal_parser.h \
mal_profiler.c mal_profiler.h \
- mal_readline.c mal_readline.h \
mal_resolve.c mal_resolve.h \
mal_sabaoth.c mal_sabaoth.h \
mal_scenario.c mal_scenario.h \
diff --git a/monetdb5/mal/Tests/tst251.stable.out
b/monetdb5/mal/Tests/tst251.stable.out
--- a/monetdb5/mal/Tests/tst251.stable.out
+++ b/monetdb5/mal/Tests/tst251.stable.out
@@ -43,7 +43,7 @@ stdout of test 'tst251` in directory 'mo
[ 0, "hello" ]
[ 1, "brave" ]
[ 2, "world" ]
-[ 3 ]
+[ 3, "" ]
[ 4, nil ]
[ 5, "!" ]
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list