Changeset: fc43ad705838 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fc43ad705838
Added Files:
        sql/test/BugTracker-2019/Tests/All
        
sql/test/BugTracker-2019/Tests/copy-into-from-stdin-empty-line.Bug-67999.sql
        
sql/test/BugTracker-2019/Tests/copy-into-from-stdin-empty-line.Bug-67999.stable.err
        
sql/test/BugTracker-2019/Tests/copy-into-from-stdin-empty-line.Bug-67999.stable.out
Removed Files:
        monetdb5/extras/rapi/Tests/rapi06.malC
        monetdb5/extras/rapi/Tests/rapi06.stable.err
        monetdb5/extras/rapi/Tests/rapi06.stable.out
        sql/backends/monet5/Tests/rapi04.sql
        sql/backends/monet5/Tests/rapi04.stable.err
        sql/backends/monet5/Tests/rapi04.stable.out
        sql/backends/monet5/prog.c
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/mhelp.c
        clients/mapilib/mapi.c
        clients/odbc/driver/ODBCUtil.h
        clients/odbc/driver/SQLColumnPrivileges.c
        clients/odbc/driver/SQLColumns.c
        clients/odbc/driver/SQLConnect.c
        clients/odbc/driver/SQLForeignKeys.c
        clients/odbc/driver/SQLPrimaryKeys.c
        clients/odbc/driver/SQLProcedureColumns.c
        clients/odbc/driver/SQLProcedures.c
        clients/odbc/driver/SQLSpecialColumns.c
        clients/odbc/driver/SQLStatistics.c
        clients/odbc/driver/SQLTablePrivileges.c
        clients/odbc/driver/SQLTables.c
        common/options/monet_options.c
        common/stream/stream.c
        common/utils/mcrypt.c
        common/utils/msabaoth.c
        configure.ag
        gdk/gdk.h
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_bbp.h
        gdk/gdk_group.c
        gdk/gdk_hash.c
        gdk/gdk_heap.c
        gdk/gdk_imprints.c
        gdk/gdk_interprocess.c
        gdk/gdk_interprocess.h
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_logger.h
        gdk/gdk_orderidx.c
        gdk/gdk_posix.c
        gdk/gdk_private.h
        gdk/gdk_select.c
        gdk/gdk_storage.c
        gdk/gdk_system.c
        gdk/gdk_system_private.h
        gdk/gdk_tm.c
        gdk/gdk_unique.c
        gdk/gdk_utils.c
        gdk/gdk_utils.h
        geom/lib/libgeom.c
        geom/lib/libgeom.h
        geom/monetdb5/geom.c
        monetdb5/ChangeLog.Apr2019
        monetdb5/extras/rapi/Tests/All
        monetdb5/extras/rapi/converters.c.h
        monetdb5/extras/rapi/rapi.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_authorize.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_import.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_linker.c
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_namespace.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/mtime.h
        monetdb5/modules/atoms/mtime_analytic.c
        monetdb5/modules/atoms/streams.c
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/kernel/alarm.c
        monetdb5/modules/kernel/alarm.mal
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/bat5.h
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/batExtensions.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        rpm.mk.in
        sql/backends/monet5/Tests/All
        sql/backends/monet5/Tests/rapi17.stable.out
        sql/backends/monet5/UDF/capi/capi.c
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/UDF/pyapi/pyapi_locatepython2.bat
        sql/backends/monet5/UDF/pyapi3/pyapi_locatepython3.bat
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_gencode.h
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_statistics.h
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/scripts/26_sysmon.sql
        sql/server/rel_optimizer.c
        sql/server/rel_optimizer.h
        sql/server/rel_schema.c
        sql/server/sql_mvc.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_utils.c
        sql/storage/bat/bat_utils.h
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.sql
        sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.stable.err
        sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.sql
        sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.err
        sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.out
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/orderidx/Tests/imprints_all_types.stable.out
        sql/test/orderidx/Tests/oidx_all_types.stable.out
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.powerpc64.int128
        testing/Mtest.py.in
        tools/merovingian/daemon/client.c
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/forkmserver.c
        tools/mserver/mserver5.1.in
        tools/mserver/mserver5.c
        tools/mserver/shutdowntest.c
Branch: translate-scripts
Log Message:

Merge with default.


diffs (truncated from 11047 to 300 lines):

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
@@ -513,9 +513,7 @@ Ready.
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:sht], 
g:bat[:oid], e:bat[:any_1]):bat[:dbl] ",   "AGGRvariancep3_dbl;",  "Grouped 
tail variance (population/biased) on sht"      ]
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:any_2]):dbl ",   
"ALGvariancep;",        "Gives the variance of all tail values" ]
 [ "alarm",     "ctime",        "unsafe command alarm.ctime():str ",    
"ALARMctime;",  "Return the current time as a C-time string."   ]
-[ "alarm",     "epilogue",     "command alarm.epilogue():void ",       
"ALARMepilogue;",       "Finalize alarm module."        ]
 [ "alarm",     "epoch",        "unsafe command alarm.epoch():int ",    
"ALARMepoch;",  "Return the current time as UNIX epoch."        ]
-[ "alarm",     "prelude",      "command alarm.prelude():void ",        
"ALARMprelude;",        "Initialize alarm module."      ]
 [ "alarm",     "sleep",        "unsafe command alarm.sleep(secs:int):void ",   
"ALARMsleep;",  "Sleep a few seconds"   ]
 [ "alarm",     "time", "unsafe command alarm.time():int ",     "ALARMtime;",   
"Return time in milliseconds."  ]
 [ "alarm",     "usec", "unsafe command alarm.usec():lng ",     "ALARMusec;",   
"Return time in microseconds."  ]
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
@@ -617,9 +617,7 @@ Ready.
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:sht], 
g:bat[:oid], e:bat[:any_1]):bat[:dbl] ",   "AGGRvariancep3_dbl;",  "Grouped 
tail variance (population/biased) on sht"      ]
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:any_2]):dbl ",   
"ALGvariancep;",        "Gives the variance of all tail values" ]
 [ "alarm",     "ctime",        "unsafe command alarm.ctime():str ",    
"ALARMctime;",  "Return the current time as a C-time string."   ]
-[ "alarm",     "epilogue",     "command alarm.epilogue():void ",       
"ALARMepilogue;",       "Finalize alarm module."        ]
 [ "alarm",     "epoch",        "unsafe command alarm.epoch():int ",    
"ALARMepoch;",  "Return the current time as UNIX epoch."        ]
-[ "alarm",     "prelude",      "command alarm.prelude():void ",        
"ALARMprelude;",        "Initialize alarm module."      ]
 [ "alarm",     "sleep",        "unsafe command alarm.sleep(secs:int):void ",   
"ALARMsleep;",  "Sleep a few seconds"   ]
 [ "alarm",     "time", "unsafe command alarm.time():int ",     "ALARMtime;",   
"Return time in milliseconds."  ]
 [ "alarm",     "usec", "unsafe command alarm.usec():lng ",     "ALARMusec;",   
"Return time in microseconds."  ]
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
@@ -19,7 +19,7 @@ int ATOMprint(int id, const void *val, s
 gdk_return BATappend(BAT *b, BAT *n, BAT *s, bool force) 
__attribute__((__warn_unused_result__));
 void BATassertProps(BAT *b);
 atomDesc BATatoms[];
-BAT *BATattach(int tt, const char *heapfile, int role);
+BAT *BATattach(int tt, const char *heapfile, role_t role);
 gdk_return BATbandjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
const void *c1, const void *c2, bool li, bool hi, BUN estimate) 
__attribute__((__warn_unused_result__));
 BAT *BATcalcabsolute(BAT *b, BAT *s);
 BAT *BATcalcadd(BAT *b1, BAT *b2, BAT *s, int tp, bool abort_on_error);
@@ -108,7 +108,7 @@ BAT *BATcalcxor(BAT *b1, BAT *b2, BAT *s
 BAT *BATcalcxorcst(BAT *b, const ValRecord *v, BAT *s);
 gdk_return BATclear(BAT *b, bool force);
 void BATcommit(BAT *b);
-BAT *BATconstant(oid hseq, int tt, const void *val, BUN cnt, int role);
+BAT *BATconstant(oid hseq, int tt, const void *val, BUN cnt, role_t role);
 BAT *BATconvert(BAT *b, BAT *s, int tp, bool abort_on_error);
 BUN BATcount_no_nil(BAT *b);
 gdk_return BATdel(BAT *b, BAT *d) __attribute__((__warn_unused_result__));
@@ -148,7 +148,7 @@ gdk_return BATleftjoin(BAT **r1p, BAT **
 void *BATmax(BAT *b, void *aggr);
 BAT *BATmergecand(BAT *a, BAT *b);
 void *BATmin(BAT *b, void *aggr);
-gdk_return BATmode(BAT *b, int mode);
+gdk_return BATmode(BAT *b, bool transient);
 void BATmsync(BAT *b);
 bool BATordered(BAT *b);
 bool BATordered_rev(BAT *b);
@@ -182,7 +182,7 @@ void BATtseqbase(BAT *b, oid o);
 void BATundo(BAT *b);
 BAT *BATunique(BAT *b, BAT *s);
 BBPrec *BBP[N_BBPINIT];
-void BBPaddfarm(const char *dirname, int rolemask);
+gdk_return BBPaddfarm(const char *dirname, int rolemask);
 void BBPclear(bat bid);
 BAT *BBPdescriptor(bat b);
 int BBPfix(bat b);
@@ -207,11 +207,10 @@ gdk_return BUNappend(BAT *b, const void 
 gdk_return BUNdelete(BAT *b, oid o) __attribute__((__warn_unused_result__));
 BUN BUNfnd(BAT *b, const void *right);
 gdk_return BUNinplace(BAT *b, BUN p, const void *right, bool force) 
__attribute__((__warn_unused_result__));
-BAT *COLcopy(BAT *b, int tt, bool writable, int role);
-BAT *COLnew(oid hseq, int tltype, BUN capacity, int role) 
__attribute__((__warn_unused_result__));
+BAT *COLcopy(BAT *b, int tt, bool writable, role_t role);
+BAT *COLnew(oid hseq, int tltype, BUN capacity, role_t role) 
__attribute__((__warn_unused_result__));
 size_t GDK_mem_maxsize;
 size_t GDK_vm_maxsize;
-int GDK_vm_trim;
 gdk_return GDKanalyticalavg(BAT *r, BAT *b, BAT *s, BAT *e, int tpe);
 gdk_return GDKanalyticalcount(BAT *r, BAT *b, BAT *s, BAT *e, const bit 
*restrict ignore_nils, int tpe);
 gdk_return GDKanalyticaldiff(BAT *r, BAT *b, BAT *p, int tpe);
@@ -230,11 +229,12 @@ int GDKatomcnt;
 size_t GDKbatcopy(char *dest, BAT *bat, str colname);
 size_t GDKbatcopysize(BAT *bat, str colname);
 size_t GDKbatread(char *src, BAT **bat, str *colname);
-gdk_return GDKchangesemval(int sem_id, int number, int change, str *msg);
-gdk_return GDKchangesemval_timeout(int sem_id, int number, int change, int 
timeout_mseconds, bool *succeed, str *msg);
+gdk_return GDKchangesemval(int sem_id, int number, int change);
+gdk_return GDKchangesemval_timeout(int sem_id, int number, int change, int 
timeout_mseconds, bool *succeed);
 void GDKclrerr(void);
+gdk_return GDKcopyenv(BAT **key, BAT **val, bool writable);
 gdk_return GDKcreatedir(const char *nme);
-gdk_return GDKcreatesem(int id, int count, int *semid, str *msg);
+gdk_return GDKcreatesem(int id, int count, int *semid);
 int GDKdebug;
 void GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 void GDKexit(int status) __attribute__((__noreturn__));
@@ -248,17 +248,16 @@ bit GDKfataljumpenable;
 str GDKfatalmsg;
 char *GDKfilepath(int farmid, const char *dir, const char *nme, const char 
*ext);
 void GDKfree(void *blk);
-char *GDKgetenv(const char *name);
+const char *GDKgetenv(const char *name);
 int GDKgetenv_int(const char *name, int def);
 bool GDKgetenv_istext(const char *name, const char *text);
 bool GDKgetenv_istrue(const char *name);
 bool GDKgetenv_isyes(const char *name);
-gdk_return GDKgetsem(int sem_id, int count, int *semid, str *msg);
-gdk_return GDKgetsemval(int sem_id, int number, int *semval, str *msg);
-bool GDKinit(opt *set, int setlen);
-gdk_return GDKinitmmap(size_t id, size_t size, void **return_ptr, size_t 
*return_size, str *msg);
+gdk_return GDKgetsem(int sem_id, int count, int *semid);
+gdk_return GDKgetsemval(int sem_id, int number, int *semval);
+gdk_return GDKinit(opt *set, int setlen);
+void *GDKinitmmap(size_t id, size_t size, size_t *return_size);
 bool GDKinmemory(void);
-BAT *GDKkey;
 ATOMIC_TYPE volatile GDKlockcnt;
 ATOMIC_TYPE volatile GDKlockcontentioncnt;
 MT_Lock *volatile GDKlocklist;
@@ -276,9 +275,9 @@ void GDKprepareExit(void);
 void GDKqsort(void *restrict h, void *restrict t, const void *restrict base, 
size_t n, int hs, int ts, int tpe, bool reverse, bool nilslast);
 void *GDKrealloc(void *pold, size_t size) __attribute__((__alloc_size__(2))) 
__attribute__((__warn_unused_result__));
 void GDKregister(MT_Id pid);
-gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id, str *msg);
-gdk_return GDKreleasesem(int sem_id, str *msg);
-void GDKreset(int status, int exit);
+gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id);
+gdk_return GDKreleasesem(int sem_id);
+void GDKreset(int status);
 gdk_return GDKsetenv(const char *name, const char *value);
 void GDKsetmallocsuccesscount(lng count);
 ssize_t GDKstrFromStr(unsigned char *restrict dst, const unsigned char 
*restrict src, ssize_t len);
@@ -288,7 +287,6 @@ void GDKsyserror(_In_z_ _Printf_format_s
 size_t GDKuniqueid(size_t offset);
 gdk_return GDKupgradevarheap(BAT *b, var_t v, bool copyall, bool mayshare) 
__attribute__((__warn_unused_result__));
 lng GDKusec(void);
-BAT *GDKval;
 const char *GDKversion(void);
 size_t GDKvm_cursize(void);
 void *GDKzalloc(size_t size) __attribute__((__malloc__)) 
__attribute__((__alloc_size__(1))) __attribute__((__warn_unused_result__));
@@ -325,6 +323,7 @@ void PROPdestroy(BAT *b);
 BUN SORTfnd(BAT *b, const void *v);
 BUN SORTfndfirst(BAT *b, const void *v);
 BUN SORTfndlast(BAT *b, const void *v);
+MT_Id THRcreate(void (*f)(void *), void *arg, enum MT_thr_detach d, const char 
*name);
 void *THRdata[THREADDATA];
 void THRdel(Thread t);
 Thread THRget(int tid);
@@ -438,7 +437,7 @@ gdk_return logger_del_bat(logger *lg, lo
 void logger_destroy(logger *lg);
 gdk_return logger_exit(logger *lg);
 log_bid logger_find_bat(logger *lg, const char *name, char tpe, oid id);
-lng logger_read_last_transaction_id(logger *lg, char *dir, char *logger_file, 
int role);
+lng logger_read_last_transaction_id(logger *lg, char *dir, char *logger_file, 
role_t role);
 gdk_return logger_reload(logger *lg);
 gdk_return logger_restart(logger *lg);
 int logger_sequence(logger *lg, int seq, lng *id);
@@ -698,13 +697,9 @@ str AGGRsum3_sht(bat *retval, const bat 
 str AGGRvariance3_dbl(bat *retval, const bat *bid, const bat *gid, const bat 
*eid);
 str AGGRvariancep3_dbl(bat *retval, const bat *bid, const bat *gid, const bat 
*eid);
 str ALARMctime(str *res);
-str ALARMepilogue(void *ret);
 str ALARMepoch(int *res);
-str ALARMprelude(void *ret);
-str ALARMsetalarm(void *res, int *secs, str *action);
 str ALARMsleep(void *res, int *secs);
 str ALARMtime(int *res);
-str ALARMtimers(bat *res, bat *actions);
 str ALARMusec(lng *ret);
 str ALGbandjoin(bat *r1, bat *r2, const bat *lid, const bat *rid, const bat 
*slid, const bat *srid, const void *low, const void *high, const bit *li, const 
bit *hi, const lng *estimate);
 str ALGcard(lng *result, const bat *bid);
@@ -834,7 +829,7 @@ str BKCisSynced(bit *ret, const bat *bid
 str BKCisTransient(bit *res, const bat *bid);
 str BKCmergecand(bat *ret, const bat *aid, const bat *bid);
 str BKCmirror(bat *ret, const bat *bid);
-str BKCnewBAT(bat *res, const int *tt, const BUN *cap, int role);
+str BKCnewBAT(bat *res, const int *tt, const BUN *cap, role_t role);
 str BKCreuseBAT(bat *ret, const bat *bid, const bat *did);
 str BKCreuseBATmap(bat *ret, const bat *bid, const bat *did);
 str BKCsave(bit *res, const char *const *input);
@@ -2189,6 +2184,7 @@ str expandRef;
 str exportOperationRef;
 str export_tableRef;
 str fcnDefinition(MalBlkPtr mb, InstrPtr p, str s, int flg, str base, size_t 
len);
+str fetchRef;
 int findGDKtype(int type);
 Module findModule(Module scope, str name);
 str findRef;
@@ -2374,7 +2370,7 @@ MT_Lock mal_contextLock;
 MT_Lock mal_copyLock;
 void mal_dataflow_reset(void) __attribute__((__visibility__("hidden")));
 MT_Lock mal_delayLock;
-void mal_exit(void);
+void mal_exit(int status);
 void mal_factory_reset(void) __attribute__((__visibility__("hidden")));
 int mal_init(void);
 void mal_instruction_reset(void);
@@ -2453,7 +2449,7 @@ char *msab_registerStop(void);
 char *msab_retreatScenario(const char *lang);
 char *msab_serialise(char **ret, const sabdb *db);
 char *msab_wildRetreat(void);
-void mserver_reset(int exit);
+void mserver_reset(void);
 str mtimeRef;
 str mulRef;
 str multicolumnRef;
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -53,8 +53,8 @@ SQLhelp sqlhelp1[] = {
         "ALTER TABLE [ IF EXISTS ] qname RENAME [ COLUMN ] ident TO ident\n"
         "ALTER TABLE [ IF EXISTS ] qname DROP [ COLUMN ] ident [ RESTRICT | 
CASCADE ]\n"
         "ALTER TABLE [ IF EXISTS ] qname DROP CONSTRAINT ident [ RESTRICT | 
CASCADE ]\n"
+        "ALTER TABLE [ IF EXISTS ] qname RENAME TO ident\n"
         "ALTER TABLE [ IF EXISTS ] qname SET { { READ | INSERT } ONLY | READ 
WRITE }\n"
-        "ALTER TABLE [ IF EXISTS ] qname RENAME TO ident\n"
         "ALTER TABLE [ IF EXISTS ] qname SET SCHEMA ident",
         "qname,column_def,table_constraint,ident",
         "See also https://www.monetdb.org/Documentation/SQLreference/Alter"},
@@ -542,9 +542,9 @@ SQLhelp sqlhelp2[] = {
         NULL},
        {"column_constraint",
         NULL,
-        "NULL | NOT NULL | UNIQUE | PRIMARY KEY | CHECK '(' search_condition 
')' |\n"
-        " REFERENCES qname [ column_list ] [ MATCH {FULL|PARTIAL|SIMPLE} ] 
reference_action ...\n",
-        "column_list,search_condition,reference_action",
+        "[ CONSTRAINT ident ] { NOT NULL | NULL | UNIQUE | PRIMARY KEY | CHECK 
'(' search_condition ')' |\n"
+        "    REFERENCES qname [ column_list ] [ match_options ] [ 
reference_action ] }\n",
+        "column_list,search_condition,match_options,reference_action",
         "See also 
https://www.monetdb.org/Documentation/SQLreference/TableIdentityColumn"},
        {"control_statement",
         NULL,
@@ -636,7 +636,12 @@ SQLhelp sqlhelp2[] = {
         NULL},
        {"isolevel",
         NULL,
-        "READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE ",
+        "READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE",
+        NULL,
+        NULL},
+       {"match_options",
+        NULL,
+        "MATCH { FULL | PARTIAL | SIMPLE }",
         NULL,
         NULL},
        {"merge_clause",
@@ -744,9 +749,9 @@ SQLhelp sqlhelp2[] = {
         NULL,},
        {"table_constraint",
         NULL,
-        "CONSTRAINT [ ident ] { PRIMARY KEY column_list | UNIQUE column_list 
|\n"
-        "    FOREIGN KEY column_list REFERENCES qname [ column_list ] [ MATCH 
{FULL|PARTIAL|SIMPLE} ] }",
-        "column_list",
+        "[ CONSTRAINT ident ] { PRIMARY KEY column_list | UNIQUE column_list 
|\n"
+        "    FOREIGN KEY column_list REFERENCES qname [ column_list ] [ 
match_options ] [ reference_action ] }",
+        "column_list,match_options,reference_action",
         "See also 
https://www.monetdb.org/Documentation/SQLreference/TableIdentityColumn"},
        {"table_element",
         NULL,
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -2328,7 +2328,6 @@ mapi_reconnect(Mapi mid)
                userver.sun_path[sizeof(userver.sun_path) - 1] = 0;
 
                if (connect(s, serv, sizeof(struct sockaddr_un)) == 
SOCKET_ERROR) {
-                       closesocket(s);
                        snprintf(errbuf, sizeof(errbuf),
                                 "initiating connection on socket failed: %s",
 #ifdef _MSC_VER
@@ -2337,6 +2336,7 @@ mapi_reconnect(Mapi mid)
                                 strerror(errno)
 #endif
                                );
+                       closesocket(s);
                        return mapi_setError(mid, errbuf, "mapi_reconnect", 
MERROR);
                }
 
@@ -2353,7 +2353,6 @@ mapi_reconnect(Mapi mid)
                msg.msg_flags = 0;
 
                if (sendmsg(s, &msg, 0) < 0) {
-                       closesocket(s);
                        snprintf(errbuf, sizeof(errbuf), "could not send 
initial byte: %s",
 #ifdef _MSC_VER
                                 wsaerror(WSAGetLastError())
@@ -2361,6 +2360,7 @@ mapi_reconnect(Mapi mid)
                                 strerror(errno)
 #endif
                                );
+                       closesocket(s);
                        return mapi_setError(mid, errbuf, "mapi_reconnect", 
MERROR);
                }
        } else
@@ -2385,31 +2385,38 @@ mapi_reconnect(Mapi mid)
                        snprintf(errbuf, sizeof(errbuf), "getaddrinfo failed: 
%s", gai_strerror(ret));
                        return mapi_setError(mid, errbuf, "mapi_reconnect", 
MERROR);
                }
+               errbuf[0] = 0;
                for (rp = res; rp; rp = rp->ai_next) {
                        s = socket(rp->ai_family, rp->ai_socktype
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to