Changeset: b961deeb2b18 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b961deeb2b18
Branch: multi-cachelock
Log Message:

Merge with default.


diffs (truncated from 5866 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -783,3 +783,4 @@ ea797696d5e8d8d550f21f09b98d3bcade1d001d
 68c0e35095ad6a58766c6c1e77229d73148433e2 Sep2022_5
 47675351fec22d5d5dc81eec03dfa08f505afc99 Sep2022_7
 47675351fec22d5d5dc81eec03dfa08f505afc99 Sep2022_release
+44e45c9a451f6afd933773094ec25723f713d3be Jan2022_23
diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog
--- a/buildtools/conf/Maddlog
+++ b/buildtools/conf/Maddlog
@@ -74,10 +74,6 @@ vcs_current_branch() {
     if [[ "$vcs_kind" == "hg" ]] ; then
         tag=$(hg branch)
     else
-        if [[ ! -d "$root_dir/.git" ]] ; then
-            echo "Cannot use this script in a git worktree" >&2
-            exit 2
-        fi
         tag=$(git rev-parse --abbrev-ref HEAD)
         tag=${tag#branches/}
         if [[ "$tag" == "master" ]] ; then
diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -47259,16 +47259,6 @@ pattern optimizer.aliases(X_0:str, X_1:s
 OPTwrapper;
 Alias removal optimizer
 optimizer
-bincopyfrom
-pattern optimizer.bincopyfrom():str 
-OPTwrapper;
-(empty)
-optimizer
-bincopyfrom
-pattern optimizer.bincopyfrom(X_0:str, X_1:str):str 
-OPTwrapper;
-Parallellize column loading
-optimizer
 candidates
 pattern optimizer.candidates():str 
 OPTwrapper;
@@ -48554,6 +48544,16 @@ unsafe pattern sql.exportResult(X_0:stre
 mvc_export_result_wrap;
 Export a result (in order) to stream s
 sql
+export_bin_column
+unsafe pattern sql.export_bin_column(X_0:any_1, X_1:bit, X_2:str, X_3:int):lng 
+mvc_bin_export_column_wrap;
+export column as binary
+sql
+export_bin_column
+unsafe pattern sql.export_bin_column(X_0:bat[:any_1], X_1:bit, X_2:str, 
X_3:int):lng 
+mvc_bin_export_column_wrap;
+export column as binary
+sql
 export_table
 unsafe pattern sql.export_table(X_0:str, X_1:str, X_2:str, X_3:str, X_4:str, 
X_5:str, X_6:int, X_7:bat[:str], X_8:bat[:str], X_9:bat[:str], X_10:bat[:int], 
X_11:bat[:int], X_12:any...):int 
 mvc_export_row_wrap;
@@ -48600,15 +48600,10 @@ SQLhot_snapshot_wrap;
 Write db snapshot to the given tar(.gz/.lz4/.bz/.xz) file on either server or 
client
 sql
 importColumn
-pattern sql.importColumn(X_0:str, X_1:bit, X_2:str, X_3:int, X_4:oid) 
(X_5:bat[:any], X_6:oid) 
+pattern sql.importColumn(X_0:str, X_1:int, X_2:bit, X_3:str, X_4:int, X_5:oid) 
(X_6:bat[:any], X_7:oid) 
 mvc_bin_import_column_wrap;
 Import a column from the given file
 sql
-importTable
-unsafe pattern sql.importTable(X_0:str, X_1:str, X_2:int, X_3:bit, 
X_4:str...):bat[:any]... 
-mvc_bin_import_table_wrap;
-Import a table from the files (fname)
-sql
 include
 unsafe pattern sql.include(X_0:str):void 
 SQLinclude;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -35684,16 +35684,6 @@ pattern optimizer.aliases(X_0:str, X_1:s
 OPTwrapper;
 Alias removal optimizer
 optimizer
-bincopyfrom
-pattern optimizer.bincopyfrom():str 
-OPTwrapper;
-(empty)
-optimizer
-bincopyfrom
-pattern optimizer.bincopyfrom(X_0:str, X_1:str):str 
-OPTwrapper;
-Parallellize column loading
-optimizer
 candidates
 pattern optimizer.candidates():str 
 OPTwrapper;
@@ -36954,6 +36944,16 @@ unsafe pattern sql.exportResult(X_0:stre
 mvc_export_result_wrap;
 Export a result (in order) to stream s
 sql
+export_bin_column
+unsafe pattern sql.export_bin_column(X_0:any_1, X_1:bit, X_2:str, X_3:int):lng 
+mvc_bin_export_column_wrap;
+export column as binary
+sql
+export_bin_column
+unsafe pattern sql.export_bin_column(X_0:bat[:any_1], X_1:bit, X_2:str, 
X_3:int):lng 
+mvc_bin_export_column_wrap;
+export column as binary
+sql
 export_table
 unsafe pattern sql.export_table(X_0:str, X_1:str, X_2:str, X_3:str, X_4:str, 
X_5:str, X_6:int, X_7:bat[:str], X_8:bat[:str], X_9:bat[:str], X_10:bat[:int], 
X_11:bat[:int], X_12:any...):int 
 mvc_export_row_wrap;
@@ -37000,15 +37000,10 @@ SQLhot_snapshot_wrap;
 Write db snapshot to the given tar(.gz/.lz4/.bz/.xz) file on either server or 
client
 sql
 importColumn
-pattern sql.importColumn(X_0:str, X_1:bit, X_2:str, X_3:int, X_4:oid) 
(X_5:bat[:any], X_6:oid) 
+pattern sql.importColumn(X_0:str, X_1:int, X_2:bit, X_3:str, X_4:int, X_5:oid) 
(X_6:bat[:any], X_7:oid) 
 mvc_bin_import_column_wrap;
 Import a column from the given file
 sql
-importTable
-unsafe pattern sql.importTable(X_0:str, X_1:str, X_2:int, X_3:bit, 
X_4:str...):bat[:any]... 
-mvc_bin_import_table_wrap;
-Import a table from the files (fname)
-sql
 include
 unsafe pattern sql.include(X_0:str):void 
 SQLinclude;
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
@@ -701,6 +701,7 @@ MapiMsg mapi_set_size_header(Mapi mid, b
 MapiMsg mapi_set_time_zone(Mapi mid, int seconds_east_of_utc) 
__attribute__((__nonnull__(1)));
 MapiMsg mapi_set_timeout(Mapi mid, unsigned int timeout, bool (*callback)(void 
*), void *callback_data) __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)));
+void mapi_setfilecallback2(Mapi mid, char *(*getfunc)(void *priv, const char 
*filename, bool binary, uint64_t offset, size_t *size), char *(*putfunc)(void 
*priv, const char *filename, bool binary, 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)));
@@ -964,6 +965,7 @@ const char *evalRef;
 const char *execRef;
 const char *expandRef;
 const char *exportOperationRef;
+const char *export_bin_columnRef;
 const char *export_tableRef;
 str fcnDefinition(MalBlkPtr mb, InstrPtr p, str s, int flg, str base, size_t 
len);
 const char *fetchRef;
@@ -1057,7 +1059,6 @@ const char *hgeRef;
 const char *identityRef;
 const char *ifthenelseRef;
 const char *importColumnRef;
-const char *importTableRef;
 void initHeartbeat(void);
 void initNamespace(void);
 void initParser(void);
@@ -1778,6 +1779,7 @@ stream *iconv_rstream(stream *restrict s
 stream *iconv_wstream(stream *restrict ss, const char *restrict charset, const 
char *restrict name);
 bool isa_block_stream(const stream *s);
 stream *lz4_stream(stream *inner, int preset);
+stream *mapi_request_download(const char *filename, bool binary, bstream *rs, 
stream *ws);
 stream *mapi_request_upload(const char *filename, bool binary, bstream *rs, 
stream *ws);
 void mnstr_clearerr(stream *s);
 void mnstr_close(stream *s);
diff --git a/clients/examples/C/bincopytemporaldata.c 
b/clients/examples/C/bincopytemporaldata.c
--- a/clients/examples/C/bincopytemporaldata.c
+++ b/clients/examples/C/bincopytemporaldata.c
@@ -23,7 +23,7 @@ random_timestamp(struct rng *rng)
                .date = {
                        .day = 0, // determine later
                        .month = 1 + rng_next(rng) % 12,
-                       .year = 2030 - (int16_t)rng_next(rng),
+                       .year = 2030 - (int16_t)rng_next(rng) % 2300,
                },
        };
 
@@ -32,11 +32,11 @@ random_timestamp(struct rng *rng)
                31, 30, 31, 31,
                30, 31, 30, 31,
        };
-       uint32_t year = ts.date.year;
+       int16_t year = ts.date.year;
        uint32_t days = durations[ts.date.month];
        bool leap_year = (
                days == 28 &&
-               year % 4 == 0 &&
+               year > 0 && year % 4 == 0 &&
                (year % 100 != 0 || year % 400 == 0)
        );
        if (leap_year)
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -331,6 +331,42 @@ bailout:
 }
 
 static bool
+has_schema_max_memory(Mapi mid)
+{
+       MapiHdl hdl;
+       bool ret;
+       static int answer = -1;
+
+       if (answer >= 0)
+               return answer;
+
+       if ((hdl = mapi_query(mid, "select id from sys._columns where table_id 
= (select id from sys._tables where name = 'db_user_info' and schema_id = 
(select id from sys.schemas where name = 'sys')) and name = 'max_memory'")) == 
NULL ||
+           mapi_error(mid))
+               goto bailout;
+       ret = mapi_get_row_count(hdl) == 1;
+       while ((mapi_fetch_row(hdl)) != 0) {
+               if (mapi_error(mid))
+                       goto bailout;
+       }
+       if (mapi_error(mid))
+               goto bailout;
+       mapi_close_handle(hdl);
+       answer = ret;
+       return ret;
+
+bailout:
+       if (hdl) {
+               if (mapi_result_error(hdl))
+                       mapi_explain_result(hdl, stderr);
+               else
+                       mapi_explain_query(hdl, stderr);
+               mapi_close_handle(hdl);
+       } else
+               mapi_explain(mid, stderr);
+       return false;
+}
+
+static bool
 has_table_partitions(Mapi mid)
 {
        MapiHdl hdl;
@@ -2534,11 +2570,28 @@ dump_database(Mapi mid, stream *toConsol
                "ORDER BY s.name, t.sqlname";
        const char *users =
                has_schema_path(mid) ?
+               has_schema_max_memory(mid) ?
                "SELECT ui.name, "
                       "ui.fullname, "
                       "sys.password_hash(ui.name), "
                       "s.name, "
-                          "ui.schema_path "
+                          "ui.schema_path, "
+                          "ui.max_memory, "
+                          "ui.max_workers, "
+                          "ui.optimizer, "
+                          "au.name "
+               "FROM sys.db_user_info ui LEFT OUTER JOIN sys.auths au on 
ui.default_role = au.id, "
+                    "sys.schemas s "
+               "WHERE ui.default_schema = s.id "
+                 "AND ui.name <> 'monetdb' "
+                 "AND ui.name <> '.snapshot' "
+               "ORDER BY ui.name" :
+               "SELECT ui.name, "
+                      "ui.fullname, "
+                      "sys.password_hash(ui.name), "
+                      "s.name, "
+                          "ui.schema_path, "
+                          "0, 0, 'default_pipe', cast(null as clob) "
                "FROM sys.db_user_info ui, "
                     "sys.schemas s "
                "WHERE ui.default_schema = s.id "
@@ -2549,7 +2602,8 @@ dump_database(Mapi mid, stream *toConsol
                       "ui.fullname, "
                       "sys.password_hash(ui.name), "
                       "s.name, "
-                          "cast(null as clob) "
+                          "cast(null as clob), "
+                          "0, 0, 'default_pipe', cast(null as clob) "
                "FROM sys.db_user_info ui, "
                     "sys.schemas s "
                "WHERE ui.default_schema = s.id "
@@ -2824,6 +2878,10 @@ dump_database(Mapi mid, stream *toConsol
                        const char *pwhash = mapi_fetch_field(hdl, 2);
                        const char *sname = mapi_fetch_field(hdl, 3);
                        const char *spath = mapi_fetch_field(hdl, 4);
+                       const char *mmemory = mapi_fetch_field(hdl, 5);
+                       const char *mworkers = mapi_fetch_field(hdl, 6);
+                       const char *optimizer = mapi_fetch_field(hdl, 7);
+                       const char *defrole = mapi_fetch_field(hdl, 8);
 
                        mnstr_printf(toConsole, "CREATE USER ");
                        dquoted_print(toConsole, uname, " ");
@@ -2837,6 +2895,20 @@ dump_database(Mapi mid, stream *toConsol
                                mnstr_printf(toConsole, " SCHEMA PATH ");
                                squoted_print(toConsole, spath, '\'', false);
                        }
+                       if (mmemory && strcmp(mmemory, "0") != 0) {
+                               mnstr_printf(toConsole, " MAX_MEMORY %s", 
mmemory);
+                       }
+                       if (mworkers && strcmp(mworkers, "0") != 0) {
+                               mnstr_printf(toConsole, " MAX_WORKERS %s", 
mworkers);
+                       }
+                       if (optimizer && strcmp(optimizer, "default_pipe") != 
0) {
+                               mnstr_printf(toConsole, " OPTIMIZER ");
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to