Changeset: 90aac855f1ea for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=90aac855f1ea
Modified Files:
        monetdb5/modules/atoms/mtime.c
        sql/backends/monet5/sql.c
Branch: clean-candidates
Log Message:

Merged with default


diffs (truncated from 32607 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
@@ -6175,6 +6175,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch",        "command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",       
"MTIMEseconds_since_epoch_bulk;",       ""      ]
 [ "batmtime",  "epoch",        "command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",       
"MTIMEtimestamp_frommsec_bulk;",        ""      ]
 [ "batmtime",  "epoch",        "command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",       
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;",     ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",      
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;",     ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",    
"MTIMEtimestamp_extract_epoch_ms_bulk;",        ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;",     ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ",     "MTIMEsql_hours_bulk;", ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_hours_bulk;",   ""      ]
@@ -8939,6 +8943,10 @@ stdout of test 'MAL-signatures` in direc
 [ "mtime",     "epoch",        "command mtime.epoch(X_1:timestamp):int ",      
"MTIMEseconds_since_epoch;",    ""      ]
 [ "mtime",     "epoch",        "command mtime.epoch(X_1:lng):timestamp ",      
"MTIMEtimestamp_frommsec;",     ""      ]
 [ "mtime",     "epoch",        "command mtime.epoch(X_1:int):timestamp ",      
"MTIMEtimestamp_fromsecond;",   ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:date):lng ",        
"MTIMEdate_extract_epoch_ms;",  ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:daytime):lng ",     
"MTIMEdaytime_extract_epoch_ms;",       ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:lng):lng ", 
"MTIMEmsec_extract_epoch_ms;",  ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:timestamp):lng ",   
"MTIMEtimestamp_extract_epoch_ms;",     ""      ]
 [ "mtime",     "hours",        "command mtime.hours(X_1:daytime):int ",        
"MTIMEdaytime_extract_hours;",  ""      ]
 [ "mtime",     "hours",        "command mtime.hours(X_1:lng):int ",    
"MTIMEsql_hours;",      ""      ]
 [ "mtime",     "hours",        "command mtime.hours(X_1:timestamp):int ",      
"MTIMEtimestamp_hours;",        ""      ]
@@ -9114,13 +9122,14 @@ stdout of test 'MAL-signatures` in direc
 [ "remote",    "batbincopy",   "pattern remote.batbincopy(X_1:bat[:any]):void 
",       "RMTbincopyto;",        ""      ]
 [ "remote",    "batload",      "pattern remote.batload(X_1:any_1, 
X_2:int):bat[:any_1] ",      "RMTbatload;",  ""      ]
 [ "remote",    "bintype",      "pattern remote.bintype():void ",       
"RMTbintype;",  ""      ]
-[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str):str ",       "RMTconnect;",  ""      ]
-[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",      "RMTconnectScen;",      ""      ]
+[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",      "RMTconnect;",  ""      ]
+[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str, X_5:bit):str ",     "RMTconnectScen;",      ""      ]
 [ "remote",    "connect",      "pattern remote.connect(X_1:str, X_2:str):str 
",        "RMTconnectTable;",     ""      ]
 [ "remote",    "disconnect",   "command remote.disconnect(X_1:str):void ",     
"RMTdisconnect;",       ""      ]
 [ "remote",    "epilogue",     "command remote.epilogue():void ",      
"RMTepilogue;", ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str ",  
"RMTexec;",     ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str... 
",       "RMTexec;",     ""      ]
+[ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:ptr, X_5:str...):void ",    "RMTexec;",     ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str ",      "RMTexec;",     ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str... ",   "RMTexec;",     ""      ]
 [ "remote",    "get",  "pattern remote.get(X_1:str, X_2:str):any ",    
"RMTget;",      ""      ]
@@ -9308,6 +9317,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "rt_credentials",       "pattern sql.rt_credentials(X_3:str) 
(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ",   "sql_rt_credentials_wrap;",  
   ""      ]
 [ "sql",       "sessions",     "pattern sql.sessions() (X_0:bat[:int], 
X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], 
X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ",  
"sql_sessions_wrap;",   ""      ]
 [ "sql",       "setVariable",  "unsafe pattern sql.setVariable(X_1:int, 
X_2:str, X_3:str, X_4:any_1):int ",    "setVariable;", ""      ]
+[ "sql",       "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int 
",        "SQLset_protocol;",     ""      ]
 [ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:int):void ",     "SQLsetmemorylimit;",   ""      ]
 [ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:sht, X_2:int):void ",    "SQLsetmemorylimit;",   ""      
]
 [ "sql",       "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, 
X_2:str):void ",      "SQLsetoptimizer;",     ""      ]
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
@@ -8744,6 +8744,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch",        "command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",       
"MTIMEseconds_since_epoch_bulk;",       ""      ]
 [ "batmtime",  "epoch",        "command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",       
"MTIMEtimestamp_frommsec_bulk;",        ""      ]
 [ "batmtime",  "epoch",        "command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",       
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;",     ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",      
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;",     ""      ]
+[ "batmtime",  "epoch_ms",     "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",    
"MTIMEtimestamp_extract_epoch_ms_bulk;",        ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;",     ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ",     "MTIMEsql_hours_bulk;", ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_hours_bulk;",   ""      ]
@@ -12280,6 +12284,10 @@ stdout of test 'MAL-signatures` in direc
 [ "mtime",     "epoch",        "command mtime.epoch(X_1:timestamp):int ",      
"MTIMEseconds_since_epoch;",    ""      ]
 [ "mtime",     "epoch",        "command mtime.epoch(X_1:lng):timestamp ",      
"MTIMEtimestamp_frommsec;",     ""      ]
 [ "mtime",     "epoch",        "command mtime.epoch(X_1:int):timestamp ",      
"MTIMEtimestamp_fromsecond;",   ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:date):lng ",        
"MTIMEdate_extract_epoch_ms;",  ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:daytime):lng ",     
"MTIMEdaytime_extract_epoch_ms;",       ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:lng):lng ", 
"MTIMEmsec_extract_epoch_ms;",  ""      ]
+[ "mtime",     "epoch_ms",     "command mtime.epoch_ms(X_1:timestamp):lng ",   
"MTIMEtimestamp_extract_epoch_ms;",     ""      ]
 [ "mtime",     "hours",        "command mtime.hours(X_1:daytime):int ",        
"MTIMEdaytime_extract_hours;",  ""      ]
 [ "mtime",     "hours",        "command mtime.hours(X_1:lng):int ",    
"MTIMEsql_hours;",      ""      ]
 [ "mtime",     "hours",        "command mtime.hours(X_1:timestamp):int ",      
"MTIMEtimestamp_hours;",        ""      ]
@@ -12455,13 +12463,14 @@ stdout of test 'MAL-signatures` in direc
 [ "remote",    "batbincopy",   "pattern remote.batbincopy(X_1:bat[:any]):void 
",       "RMTbincopyto;",        ""      ]
 [ "remote",    "batload",      "pattern remote.batload(X_1:any_1, 
X_2:int):bat[:any_1] ",      "RMTbatload;",  ""      ]
 [ "remote",    "bintype",      "pattern remote.bintype():void ",       
"RMTbintype;",  ""      ]
-[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str):str ",       "RMTconnect;",  ""      ]
-[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",      "RMTconnectScen;",      ""      ]
+[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",      "RMTconnect;",  ""      ]
+[ "remote",    "connect",      "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str, X_5:bit):str ",     "RMTconnectScen;",      ""      ]
 [ "remote",    "connect",      "pattern remote.connect(X_1:str, X_2:str):str 
",        "RMTconnectTable;",     ""      ]
 [ "remote",    "disconnect",   "command remote.disconnect(X_1:str):void ",     
"RMTdisconnect;",       ""      ]
 [ "remote",    "epilogue",     "command remote.epilogue():void ",      
"RMTepilogue;", ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str ",  
"RMTexec;",     ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str... 
",       "RMTexec;",     ""      ]
+[ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:ptr, X_5:str...):void ",    "RMTexec;",     ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str ",      "RMTexec;",     ""      ]
 [ "remote",    "exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str... ",   "RMTexec;",     ""      ]
 [ "remote",    "get",  "pattern remote.get(X_1:str, X_2:str):any ",    
"RMTget;",      ""      ]
@@ -12661,6 +12670,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "rt_credentials",       "pattern sql.rt_credentials(X_3:str) 
(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ",   "sql_rt_credentials_wrap;",  
   ""      ]
 [ "sql",       "sessions",     "pattern sql.sessions() (X_0:bat[:int], 
X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], 
X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ",  
"sql_sessions_wrap;",   ""      ]
 [ "sql",       "setVariable",  "unsafe pattern sql.setVariable(X_1:int, 
X_2:str, X_3:str, X_4:any_1):int ",    "setVariable;", ""      ]
+[ "sql",       "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int 
",        "SQLset_protocol;",     ""      ]
 [ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:int):void ",     "SQLsetmemorylimit;",   ""      ]
 [ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:sht, X_2:int):void ",    "SQLsetmemorylimit;",   ""      
]
 [ "sql",       "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, 
X_2:str):void ",      "SQLsetoptimizer;",     ""      ]
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
@@ -602,6 +602,7 @@ int mapi_fetch_row(MapiHdl hdl) __attrib
 MapiMsg mapi_finish(MapiHdl hdl) __attribute__((__nonnull__(1)));
 MapiHdl mapi_get_active(Mapi mid) __attribute__((__nonnull__(1)));
 bool mapi_get_autocommit(Mapi mid) __attribute__((__nonnull__(1)));
+bool mapi_get_columnar_protocol(Mapi mid) __attribute__((__nonnull__(1)));
 const char *mapi_get_dbname(Mapi mid) __attribute__((__nonnull__(1)));
 int mapi_get_digits(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
 int mapi_get_field_count(MapiHdl hdl) __attribute__((__nonnull__(1)));
@@ -660,9 +661,11 @@ int64_t mapi_rows_affected(MapiHdl hdl) 
 MapiMsg mapi_seek_row(MapiHdl hdl, int64_t rowne, int whence) 
__attribute__((__nonnull__(1)));
 MapiHdl mapi_send(Mapi mid, const char *cmd) __attribute__((__nonnull__(1)));
 MapiMsg mapi_setAutocommit(Mapi mid, bool autocommit) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_set_columnar_protocol(Mapi mid, bool columnar_protocol) 
__attribute__((__nonnull__(1)));
 MapiMsg mapi_set_size_header(Mapi mid, bool value) 
__attribute__((__nonnull__(1)));
 void mapi_setfilecallback(Mapi mid, char *(*getfunc)(void *priv, const char 
*filename, bool binary, uint64_t offset, size_t *size), char *(*putfunc)(void 
*priv, const char *filename, const void *data, size_t size), void *priv) 
__attribute__((__nonnull__(1)));
 int mapi_split_line(MapiHdl hdl) __attribute__((__nonnull__(1)));
+
 MapiMsg mapi_store_field(MapiHdl hdl, int fnr, int outtype, void *outparam) 
__attribute__((__nonnull__(1)));
 MapiMsg mapi_timeout(Mapi mid, unsigned int time) 
__attribute__((__nonnull__(1)));
 void mapi_trace(Mapi mid, bool flag) __attribute__((__nonnull__(1)));
@@ -949,6 +952,7 @@ int QLOGisset(void);
 str QLOGissetFcn(int *ret);
 str QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 QueryQueue QRYqueue;
+str RMTdisconnect(void *ret, str *conn);
 str SERVERbindBAT(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str SERVERclient(void *res, const Stream *In, const Stream *Out);
 str SERVERconnect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pc);
@@ -1623,6 +1627,7 @@ str setVariableRef;
 void setVariableScope(MalBlkPtr mb);
 void setVariableType(MalBlkPtr mb, const int idx, malType type);
 str setWriteModeRef;
+str set_protocolRef;
 void setprofilerlimit(int limit);
 void showAllScenarios(stream *f);
 void showCurrentScenario(void);
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -13,6 +13,37 @@
 #include <unistd.h>
 #include <string.h>
 #include <ctype.h>
+
+// TODO get rid of this ugly work around: Properly factor out mapi cals from 
dump.c
+#ifdef COMPILING_MONETDBE
+
+#define Mapi monetdbe_Mapi
+#define MapiHdl monetdbe_MapiHdl
+#define MapiHdl monetdbe_MapiHdl
+#define MapiMsg monetdbe_MapiMsg
+
+#define mapi_error monetdbe_mapi_error
+#define mapi_query monetdbe_mapi_query
+#define mapi_error monetdbe_mapi_error
+#define mapi_close_handle monetdbe_mapi_close_handle
+#define mapi_fetch_row monetdbe_mapi_fetch_row
+#define mapi_fetch_field monetdbe_mapi_fetch_field
+#define mapi_get_type monetdbe_mapi_get_type
+#define mapi_seek_row monetdbe_mapi_seek_row
+#define mapi_get_row_count monetdbe_mapi_get_row_count
+#define mapi_rows_affected monetdbe_mapi_rows_affected
+#define mapi_get_field_count monetdbe_mapi_get_field_count
+#define mapi_result_error monetdbe_mapi_result_error
+#define mapi_get_len monetdbe_mapi_get_len
+#define mapi_explain monetdbe_mapi_explain
+#define mapi_explain_query monetdbe_mapi_explain_query
+#define mapi_explain_result monetdbe_mapi_explain_result
+
+#include "monetdbe_mapi.h"
+#else
+#include "mapi.h"
+#endif
+
 #include "msqldump.h"
 
 static const char *
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -399,7 +399,7 @@ SQLhelp sqlhelp1[] = {
         "See also 
https://www.monetdb.org/Documentation/Manuals/SQLreference/Explain"},
        {"EXTRACT",
         "Built-in function",
-        "EXTRACT '(' { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | CENTURY | 
DECADE | QUARTER | WEEK | DOW | DOY } FROM scalar_expression ')'",
+        "EXTRACT '(' { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | CENTURY | 
DECADE | QUARTER | WEEK | DOW | DOY | EPOCH } FROM scalar_expression ')'",
         NULL,
         NULL},
        {"INSERT",
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -880,6 +880,7 @@ struct MapiStruct {
        bool connected;
        bool trace;             /* Trace Mapi interaction */
        bool auto_commit;
+       bool columnar_protocol;
        MapiHdl first;          /* start of doubly-linked list */
        MapiHdl active;         /* set when not all rows have been received */
 
@@ -1371,6 +1372,13 @@ mapi_get_autocommit(Mapi mid)
        return mid->auto_commit;
 }
 
+bool
+mapi_get_columnar_protocol(Mapi mid)
+{
+       mapi_check0(mid);
+       return mid->columnar_protocol;
+}
+
 static int64_t
 usec(void)
 {
@@ -3633,6 +3641,18 @@ mapi_setAutocommit(Mapi mid, bool autoco
 }
 
 MapiMsg
+mapi_set_columnar_protocol(Mapi mid, bool columnar_protocol)
+{
+       if (mid->columnar_protocol == columnar_protocol)
+               return MOK;
+       mid->columnar_protocol = columnar_protocol;
+       if (columnar_protocol)
+               return mapi_Xcommand(mid, "columnar_protocol", "1");
+       else
+               return mapi_Xcommand(mid, "columnar_protocol", "0");
+}
+
+MapiMsg
 mapi_set_size_header(Mapi mid, bool value)
 {
        if (mid->languageId != LANG_SQL) {
diff --git a/clients/mapilib/mapi.h b/clients/mapilib/mapi.h
--- a/clients/mapilib/mapi.h
+++ b/clients/mapilib/mapi.h
@@ -105,10 +105,14 @@ mapi_export bool mapi_get_trace(Mapi mid
        __attribute__((__nonnull__(1)));
 mapi_export bool mapi_get_autocommit(Mapi mid)
        __attribute__((__nonnull__(1)));
+mapi_export bool mapi_get_columnar_protocol(Mapi mid)
+       __attribute__((__nonnull__(1)));
 mapi_export MapiMsg mapi_log(Mapi mid, const char *nme)
        __attribute__((__nonnull__(1)));
 mapi_export MapiMsg mapi_setAutocommit(Mapi mid, bool autocommit)
        __attribute__((__nonnull__(1)));
+mapi_export MapiMsg mapi_set_columnar_protocol(Mapi mid, bool 
columnar_protocol)
+       __attribute__((__nonnull__(1)));
 mapi_export MapiMsg mapi_set_size_header(Mapi mid, bool value)
        __attribute__((__nonnull__(1)));
 mapi_export MapiMsg mapi_release_id(Mapi mid, int id)
diff --git a/cmake/Modules/FindUUID.cmake b/cmake/Modules/FindUUID.cmake
--- a/cmake/Modules/FindUUID.cmake
+++ b/cmake/Modules/FindUUID.cmake
@@ -19,6 +19,8 @@ if(NOT UUID_LIBRARIES)
   set(UUID_LIBRARIES "" CACHE INTERNAL "uuid libraries path")
 endif()
 # Find uuid_generate symbol, which we require and some platforms don't have it
+set(CMAKE_REQUIRED_LIBRARIES ${UUID_LIBRARIES})
+set(CMAKE_REQUIRED_INCLUDES ${UUID_INCLUDE_DIR})
 check_symbol_exists("uuid_generate" "uuid/uuid.h" HAVE_UUID_GENERATE)
 cmake_pop_check_state()
 
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -43,7 +43,6 @@ function(monetdb_configure_defines)
   check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
   check_include_file("sys/uio.h" HAVE_SYS_UIO_H)
   check_include_file("sys/un.h" HAVE_SYS_UN_H)
-  check_include_file("sys/utime.h" HAVE_SYS_UTIME_H)
   check_include_file("sys/wait.h" HAVE_SYS_WAIT_H)
   check_include_file("unistd.h" HAVE_UNISTD_H)
   check_include_file("uuid/uuid.h" HAVE_UUID_UUID_H)
@@ -116,8 +115,11 @@ function(monetdb_configure_defines)
   check_function_exists("uname" HAVE_UNAME)
   # Some libc versions on Linux distributions don't have it
   check_symbol_exists("semtimedop" "sys/types.h;sys/ipc.h;sys/sem.h" 
HAVE_SEMTIMEDOP)
-  check_function_exists("pthread_kill" HAVE_PTHREAD_KILL)
-  check_function_exists("pthread_sigmask" HAVE_PTHREAD_SIGMASK)
+  cmake_push_check_state()
+    set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
+    check_function_exists("pthread_kill" HAVE_PTHREAD_KILL)
+    check_function_exists("pthread_sigmask" HAVE_PTHREAD_SIGMASK)
+  cmake_pop_check_state()
   check_symbol_exists("regcomp" "regex.h" HAVE_POSIX_REGEX)
 endfunction()
 
diff --git a/common/stream/stream.h b/common/stream/stream.h
--- a/common/stream/stream.h
+++ b/common/stream/stream.h
@@ -232,7 +232,8 @@ stream_export stream *bs_stream(stream *
 typedef enum {
        PROTOCOL_AUTO = 0, // unused
        PROTOCOL_9 = 1, // mal_mapi.c, mal_client.c;
-       PROTOCOL_10 = 2 // mal_mapi.c, sql_result.c
+       PROTOCOL_10 = 2, // mal_mapi.c, sql_result.c
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to