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