Changeset: d4d6a601a125 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d4d6a601a125
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/odbc/driver/README
clients/odbc/driver/SQLParamData.c
clients/odbc/driver/SQLPutData.c
configure.ag
gdk/gdk_atomic.h
gdk/gdk_bbp.c
gdk/gdk_sample.c
gdk/gdk_system.c
gdk/gdk_system.h
gdk/gdk_utils.c
monetdb5/extras/rapi/rapi.c
monetdb5/mal/mal.c
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_private.h
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_resource.c
monetdb5/mal/mal_runtime.c
monetdb5/mal/mal_scenario.c
monetdb5/modules/kernel/mmath.c
monetdb5/modules/mal/mal_mapi.c
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tablet.h
monetdb5/modules/mal/wlc.c
monetdb5/modules/mal/wlc.mal
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/optimizer.c
monetdb5/optimizer/optimizer_private.h
sql/backends/monet5/UDF/pyapi/pyapi.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/vaults/lidar/lidar.c
sql/backends/monet5/vaults/lidar/lidar.h
sql/backends/monet5/vaults/lidar/lidar.mal
sql/server/rel_propagate.c
sql/server/rel_updates.c
sql/server/sql_mvc.c
sql/server/sql_partition.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/test/merge-partitions/Tests/mergepart23.py
sql/test/merge-partitions/Tests/mergepart23.stable.out
sql/test/merge-statements/Tests/mergestmt03.sql
sql/test/merge-statements/Tests/mergestmt03.stable.out
Branch: default
Log Message:
Merge with Apr2019 branch.
diffs (truncated from 3175 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
@@ -11187,7 +11187,6 @@ Ready.
[ "lidar", "attach", "pattern lidar.attach(fname:str):void ",
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"
]
[ "lidar", "export", "pattern lidar.export(tablename:str, fname:str,
type:str):void ", "LIDARexportTable;", "Exporta LIDAR table to a
LAS/LAZ file" ]
[ "lidar", "load", "pattern lidar.load(tablename:str):void ",
"LIDARloadTable;", "Load a LIDAR table from an attached file" ]
-[ "lidar", "prelude", "command lidar.prelude():void ",
"LIDARprelude;", "" ]
[ "mal", "manifold", "pattern mal.manifold(mod:str, fcn:str,
a:any...):bat[:any] ", "MANIFOLDevaluate;", "" ]
[ "mal", "multiplex", "pattern mal.multiplex(mod:str, fcn:str,
a:any...):any... ", "MANIFOLDremapMultiplex;", "" ]
[ "manual", "functions", "pattern manual.functions() (mod:bat[:str],
fcn:bat[:str], sig:bat[:str], adr:bat[:str], com:bat[:str]) ",
"MANUALcreateOverview;", "Produces a table with all MAL functions known"
]
@@ -12118,7 +12117,6 @@ Ready.
[ "wlc", "init", "pattern wlc.init():void ", "WLCinitCmd;", "Test
for running as master" ]
[ "wlc", "master", "pattern wlc.master():void ", "WLCmaster;",
"Activate the workload-capture-replay process" ]
[ "wlc", "master", "pattern wlc.master(path:str):void ",
"WLCmaster;", "Activate the workload-capture-replay process. Use a different
location for the logs." ]
-[ "wlc", "prelude", "command wlc.prelude():void ", "WLCprelude;",
"Initialization of wlc module" ]
[ "wlc", "query", "pattern wlc.query(q:str):void ",
"WLCquery;", "Keep the queries for replay." ]
[ "wlc", "rename_column", "pattern wlc.rename_column(sname:str,
tname:str, cname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation
rename_column" ]
[ "wlc", "rename_schema", "pattern wlc.rename_schema(sname:str,
newnme:str):void ", "WLCgeneric;", "Catalog operation rename_schema"
]
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
@@ -15597,7 +15597,6 @@ Ready.
[ "lidar", "attach", "pattern lidar.attach(fname:str):void ",
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"
]
[ "lidar", "export", "pattern lidar.export(tablename:str, fname:str,
type:str):void ", "LIDARexportTable;", "Exporta LIDAR table to a
LAS/LAZ file" ]
[ "lidar", "load", "pattern lidar.load(tablename:str):void ",
"LIDARloadTable;", "Load a LIDAR table from an attached file" ]
-[ "lidar", "prelude", "command lidar.prelude():void ",
"LIDARprelude;", "" ]
[ "mal", "manifold", "pattern mal.manifold(mod:str, fcn:str,
a:any...):bat[:any] ", "MANIFOLDevaluate;", "" ]
[ "mal", "multiplex", "pattern mal.multiplex(mod:str, fcn:str,
a:any...):any... ", "MANIFOLDremapMultiplex;", "" ]
[ "manual", "functions", "pattern manual.functions() (mod:bat[:str],
fcn:bat[:str], sig:bat[:str], adr:bat[:str], com:bat[:str]) ",
"MANUALcreateOverview;", "Produces a table with all MAL functions known"
]
@@ -16546,7 +16545,6 @@ Ready.
[ "wlc", "init", "pattern wlc.init():void ", "WLCinitCmd;", "Test
for running as master" ]
[ "wlc", "master", "pattern wlc.master():void ", "WLCmaster;",
"Activate the workload-capture-replay process" ]
[ "wlc", "master", "pattern wlc.master(path:str):void ",
"WLCmaster;", "Activate the workload-capture-replay process. Use a different
location for the logs." ]
-[ "wlc", "prelude", "command wlc.prelude():void ", "WLCprelude;",
"Initialization of wlc module" ]
[ "wlc", "query", "pattern wlc.query(q:str):void ",
"WLCquery;", "Keep the queries for replay." ]
[ "wlc", "rename_column", "pattern wlc.rename_column(sname:str,
tname:str, cname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation
rename_column" ]
[ "wlc", "rename_schema", "pattern wlc.rename_schema(sname:str,
newnme:str):void ", "WLCgeneric;", "Catalog operation rename_schema"
]
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
@@ -254,11 +254,11 @@ gdk_return GDKgetsem(int sem_id, int cou
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);
-ATOMIC_TYPE volatile GDKlockcnt;
-ATOMIC_TYPE volatile GDKlockcontentioncnt;
+ATOMIC_TYPE GDKlockcnt;
+ATOMIC_TYPE GDKlockcontentioncnt;
MT_Lock *volatile GDKlocklist;
-ATOMIC_FLAG volatile GDKlocklistlock;
-ATOMIC_TYPE volatile GDKlocksleepcnt;
+ATOMIC_FLAG GDKlocklistlock;
+ATOMIC_TYPE GDKlocksleepcnt;
void GDKlockstatistics(int);
void *GDKmalloc(size_t size) __attribute__((__malloc__))
__attribute__((__alloc_size__(1))) __attribute__((__warn_unused_result__));
size_t GDKmem_cursize(void);
@@ -1974,7 +1974,6 @@ str WLCgetmastertick(Client cntxt, MalBl
str WLCinit(void);
str WLCinitCmd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str WLCmaster(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str WLCprelude(void *ret);
str WLCquery(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
void WLCreadConfig(FILE *fd);
void WLCreset(void);
@@ -2282,7 +2281,6 @@ void initNamespace(void);
void initParser(void);
void initProfiler(void);
str initQlog(void);
-void initTablet(void);
int initTrace(void);
int inlineMALblock(MalBlkPtr mb, int pc, MalBlkPtr mc);
str inplaceRef;
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -392,7 +392,7 @@ SQLhelp sqlhelp1[] = {
"Define access privileges",
"GRANT privileges TO grantee [',' ...] [ WITH GRANT OPTION ]\n"
"GRANT role [',' ...] TO grantee [',' ...] [ WITH ADMIN OPTION]",
- "privileges,role,grantee",
+ "privileges,table_privileges,global_privileges,role,grantee",
"See also
https://www.monetdb.org/Documentation/SQLreference/Permissions"},
{"MERGE",
"",
@@ -413,7 +413,7 @@ SQLhelp sqlhelp1[] = {
"Remove some privileges",
"REVOKE [GRANT OPTION FOR] privileges FROM { grantee [',' ...] |
CURRENT_USER | CURRENT_ROLE }\n"
"REVOKE [ADMIN OPTION FOR] role [',' ...] FROM { grantee [',' ...] |
CURRENT_USER | CURRENT_ROLE }",
- "privileges,grantee,role",
+ "privileges,table_privileges,global_privileges,grantee,role",
"See also
https://www.monetdb.org/Documentation/SQLreference/Permissions"},
{"ROLLBACK",
"Rollback the current transaction",
diff --git a/clients/odbc/driver/README b/clients/odbc/driver/README
--- a/clients/odbc/driver/README
+++ b/clients/odbc/driver/README
@@ -195,7 +195,7 @@ The next ODBC API functions always retur
- SQLGetCursorName()
- SQLSetCursorName()
- SQLSetScrollOptions()
-- SQLSetParam()
+- SQLSetParam() It is mapped to SQLBindParameter(...,
SQL_PARAM_INPUT_OUTPUT, ...).
- SQLDrivers() Note on MS Windows this is implemented by the ODBC Driver
Manager
- SQLDataSources() Note on MS Windows this is implemented by the ODBC Driver
Manager
diff --git a/clients/odbc/driver/SQLParamData.c
b/clients/odbc/driver/SQLParamData.c
--- a/clients/odbc/driver/SQLParamData.c
+++ b/clients/odbc/driver/SQLParamData.c
@@ -50,8 +50,8 @@ SQLParamData(SQLHSTMT StatementHandle,
/* TODO: implement this function and corresponding behavior */
- /* Function sequence error */
- addStmtError(stmt, "HY010", NULL, 0);
+ /* Driver does not support this function */
+ addStmtError(stmt, "IM001", NULL, 0);
return SQL_ERROR;
}
diff --git a/clients/odbc/driver/SQLPutData.c b/clients/odbc/driver/SQLPutData.c
--- a/clients/odbc/driver/SQLPutData.c
+++ b/clients/odbc/driver/SQLPutData.c
@@ -52,8 +52,8 @@ SQLPutData(SQLHSTMT StatementHandle,
/* TODO: implement this function and corresponding behavior */
- /* Function sequence error */
- addStmtError(stmt, "HY010", NULL, 0);
+ /* Driver does not support this function */
+ addStmtError(stmt, "IM001", NULL, 0);
return SQL_ERROR;
}
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -1686,7 +1686,7 @@ org_have_regex=auto
dft_regex=auto
AC_ARG_WITH([regex],
[AS_HELP_STRING([--with-regex=TYPE],
- [use either PRCE or POSIX regular expressions (default=PCRE if
available)])],
+ [use either PCRE or POSIX regular expressions (default=PCRE if
available)])],
[AS_CASE([$withval],
[pcre|PCRE], [have_regex=pcre],
[posix|POSIX], [have_regex=posix],
diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h
--- a/gdk/gdk_atomic.h
+++ b/gdk/gdk_atomic.h
@@ -11,13 +11,9 @@
* performed in one thread shows up in another thread either
* completely or not at all.
*
- * If the symbol ATOMIC_LOCK is defined, a variable of type MT_Lock
- * must be declared and initialized. The latter can be done using the
- * macro ATOMIC_INIT which expands to nothing if ATOMIC_LOCK is not
- * defined.
- *
* The following operations are defined:
- * ATOMIC_VAR_INIT -- initialize the variable (not necessarily atomic!);
+ * ATOMIC_VAR_INIT -- initializer for the variable (not necessarily atomic!);
+ * ATOMIC_INIT -- initialize the variable (not necessarily atomic!);
* ATOMIC_GET -- return the value of a variable;
* ATOMIC_SET -- set the value of a variable;
* ATOMIC_ADD -- add a value to a variable, return original value;
@@ -48,20 +44,19 @@
#define ATOMIC_TYPE AO_t
#define ATOMIC_VAR_INIT(val) (val)
+#define ATOMIC_INIT(var, val) (*(var) = (val))
-#define ATOMIC_GET(var, lck) AO_load_full(&var)
-#define ATOMIC_SET(var, val, lck) AO_store_full(&var, (AO_t) (val))
-#define ATOMIC_ADD(var, val, lck) AO_fetch_and_add(&var, (AO_t) (val))
-#define ATOMIC_SUB(var, val, lck) AO_fetch_and_add(&var, (AO_t) -(val))
-#define ATOMIC_INC(var, lck) (AO_fetch_and_add1(&var) + 1)
-#define ATOMIC_DEC(var, lck) (AO_fetch_and_sub1(&var) - 1)
-
-#define ATOMIC_INIT(lck) ((void) 0)
+#define ATOMIC_GET(var) AO_load_full(var)
+#define ATOMIC_SET(var, val) AO_store_full(var, (AO_t) (val))
+#define ATOMIC_ADD(var, val) AO_fetch_and_add(var, (AO_t) (val))
+#define ATOMIC_SUB(var, val) AO_fetch_and_add(var, (AO_t) -(val))
+#define ATOMIC_INC(var) (AO_fetch_and_add1(var) + 1)
+#define ATOMIC_DEC(var) (AO_fetch_and_sub1(var) - 1)
#define ATOMIC_FLAG AO_TS_t
#define ATOMIC_FLAG_INIT { AO_TS_INITIALIZER }
-#define ATOMIC_CLEAR(var, lck) AO_CLEAR(&var)
-#define ATOMIC_TAS(var, lck) (AO_test_and_set_full(&var) != AO_TS_CLEAR)
+#define ATOMIC_CLEAR(var) AO_CLEAR(var)
+#define ATOMIC_TAS(var) (AO_test_and_set_full(var) != AO_TS_CLEAR)
#elif defined(HAVE_STDATOMIC_H) && !defined(__INTEL_COMPILER) &&
!defined(__STDC_NO_ATOMICS__) && !defined(NO_ATOMIC_INSTRUCTIONS)
@@ -90,19 +85,18 @@
#define ATOMIC_CAST unsigned long long
#endif
-#define ATOMIC_GET(var, lck) atomic_load(&var)
-#define ATOMIC_SET(var, val, lck) atomic_store(&var, (ATOMIC_CAST) (val))
-#define ATOMIC_ADD(var, val, lck) atomic_fetch_add(&var, (ATOMIC_CAST)
(val))
-#define ATOMIC_SUB(var, val, lck) atomic_fetch_sub(&var, (ATOMIC_CAST)
(val))
-#define ATOMIC_INC(var, lck) (atomic_fetch_add(&var, 1) + 1)
-#define ATOMIC_DEC(var, lck) (atomic_fetch_sub(&var, 1) - 1)
+#define ATOMIC_INIT(var, val) atomic_init(var, (ATOMIC_CAST) (val))
+#define ATOMIC_GET(var) atomic_load(var)
+#define ATOMIC_SET(var, val) atomic_store(var, (ATOMIC_CAST) (val))
+#define ATOMIC_ADD(var, val) atomic_fetch_add(var, (ATOMIC_CAST) (val))
+#define ATOMIC_SUB(var, val) atomic_fetch_sub(var, (ATOMIC_CAST) (val))
+#define ATOMIC_INC(var) (atomic_fetch_add(var, 1) + 1)
+#define ATOMIC_DEC(var) (atomic_fetch_sub(var, 1) - 1)
-#define ATOMIC_INIT(lck) ((void) 0)
-
-#define ATOMIC_FLAG atomic_flag
+#define ATOMIC_FLAG atomic_flag
/* ATOMIC_FLAG_INIT is already defined by the include file */
-#define ATOMIC_CLEAR(var, lck) atomic_flag_clear(&var)
-#define ATOMIC_TAS(var, lck) atomic_flag_test_and_set(&var)
+#define ATOMIC_CLEAR(var) atomic_flag_clear(var)
+#define ATOMIC_TAS(var) atomic_flag_test_and_set(var)
#elif defined(_MSC_VER) && !defined(__INTEL_COMPILER) &&
!defined(NO_ATOMIC_INSTRUCTIONS)
@@ -110,15 +104,17 @@
#if SIZEOF_SSIZE_T == 8
-#define ATOMIC_TYPE int64_t
-#define ATOMIC_VAR_INIT(val) (val)
+#define ATOMIC_TYPE volatile int64_t
+#define ATOMIC_VAR_INIT(val) (val)
+#define ATOMIC_INIT(var, val) (*(var) = (val))
-#define ATOMIC_GET(var, lck) var
-#define ATOMIC_SET(var, val, lck) _InterlockedExchange64(&var, (int64_t)
(val))
-#define ATOMIC_ADD(var, val, lck) _InterlockedExchangeAdd64(&var,
(int64_t) (val))
-#define ATOMIC_SUB(var, val, lck) _InterlockedExchangeAdd64(&var,
-(int64_t) (val))
-#define ATOMIC_INC(var, lck) _InterlockedIncrement64(&var)
-#define ATOMIC_DEC(var, lck) _InterlockedDecrement64(&var)
+#define ATOMIC_GET(var) (*(var))
+/* should we use _InterlockedExchangeAdd64(var, 0) instead? */
+#define ATOMIC_SET(var, val) _InterlockedExchange64(var, (int64_t) (val))
+#define ATOMIC_ADD(var, val) _InterlockedExchangeAdd64(var, (int64_t) (val))
+#define ATOMIC_SUB(var, val) _InterlockedExchangeAdd64(var, -(int64_t) (val))
+#define ATOMIC_INC(var) _InterlockedIncrement64(var)
+#define ATOMIC_DEC(var) _InterlockedDecrement64(var)
#pragma intrinsic(_InterlockedExchange64)
#pragma intrinsic(_InterlockedExchangeAdd64)
@@ -128,15 +124,17 @@
#else
-#define ATOMIC_TYPE int
-#define ATOMIC_VAR_INIT(val) (val)
+#define ATOMIC_TYPE volatile int
+#define ATOMIC_VAR_INIT(val) (val)
+#define ATOMIC_INIT(var, val) (*(var) = (val))
-#define ATOMIC_GET(var, lck) var
-#define ATOMIC_SET(var, val, lck) _InterlockedExchange(&var, (int) (val))
-#define ATOMIC_ADD(var, val, lck) _InterlockedExchangeAdd(&var, (int)
(val))
-#define ATOMIC_SUB(var, val, lck) _InterlockedExchangeAdd(&var, -(int)
(val))
-#define ATOMIC_INC(var, lck) _InterlockedIncrement(&var)
-#define ATOMIC_DEC(var, lck) _InterlockedDecrement(&var)
+#define ATOMIC_GET(var) (*(var))
+/* should we use _InterlockedExchangeAdd(var, 0) instead? */
+#define ATOMIC_SET(var, val) _InterlockedExchange(var, (int) (val))
+#define ATOMIC_ADD(var, val) _InterlockedExchangeAdd(var, (int) (val))
+#define ATOMIC_SUB(var, val) _InterlockedExchangeAdd(var, -(int) (val))
+#define ATOMIC_INC(var) _InterlockedIncrement(var)
+#define ATOMIC_DEC(var) _InterlockedDecrement(var)
#pragma intrinsic(_InterlockedExchange)
#pragma intrinsic(_InterlockedExchangeAdd)
@@ -145,161 +143,146 @@
#endif
-#define ATOMIC_INIT(lck) ((void) 0)
-
-#define ATOMIC_FLAG int
-#define ATOMIC_FLAG_INIT { 0 }
-#define ATOMIC_CLEAR(var, lck) _InterlockedExchange(&var, 0)
-#define ATOMIC_TAS(var, lck) _InterlockedCompareExchange(&var, 1, 0)
+#define ATOMIC_FLAG int
+#define ATOMIC_FLAG_INIT { 0 }
+#define ATOMIC_CLEAR(var) _InterlockedExchange(var, 0)
+#define ATOMIC_TAS(var) _InterlockedCompareExchange(var, 1, 0)
#pragma intrinsic(_InterlockedCompareExchange)
#elif (defined(__GNUC__) || defined(__INTEL_COMPILER)) && !(defined(__sun__)
&& SIZEOF_SIZE_T == 8) && !defined(_MSC_VER) && !defined(NO_ATOMIC_INSTRUCTIONS)
-#if SIZEOF_SSIZE_T == 8
-#define ATOMIC_TYPE int64_t
-#else
-#define ATOMIC_TYPE int
-#endif
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list