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

Reply via email to