Changeset: cfa8fbc380a8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/cfa8fbc380a8 Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_upgrades.c sql/common/sql_types.c sql/include/sql_catalog.h sql/scripts/52_describe.sql sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_planner.c sql/server/rel_psm.c sql/server/rel_select.c sql/server/rel_unnest.c sql/storage/bat/bat_logger.c sql/storage/store.c sql/test/Dependencies/Tests/dependency_owner_schema_3.test sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test sql/test/sys-schema/Tests/check_Not_Nullable_columns.test Branch: mangled Log Message:
Merge with default. diffs (truncated from 147852 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -820,3 +820,5 @@ 65065954ca086d01254a20cc145695fa8b9a3db2 4b353b1f914e3c9c7493117284f9cc06677e4c71 Jul2021_SP1_release 65065954ca086d01254a20cc145695fa8b9a3db2 Jul2021_SP1_release 014b82412e664a306d2f5d3a2a2d49d75a6f8da5 Jan2022_root +1cc77329e40543d12dd9de04cbeec50d442520e9 Jul2021_13 +1cc77329e40543d12dd9de04cbeec50d442520e9 Jul2021_SP2_release diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -81,7 +81,7 @@ Group: Applications/Databases License: MPLv2.0 URL: https://www.monetdb.org/ BugURL: https://bugs.monetdb.org/ -Source: https://www.monetdb.org/downloads/sources/Jul2021-SP1/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jul2021-SP2/%{name}-%{version}.tar.bz2 # The Fedora packaging document says we need systemd-rpm-macros for # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7 @@ -823,9 +823,7 @@ install -d -m 0775 %{buildroot}%{_rundir rm -f %{buildroot}%{_libdir}/*.la rm -f %{buildroot}%{_libdir}/monetdb5/*.la rm -f %{buildroot}%{_libdir}/monetdb5/lib_opt_sql_append.so -rm -f %{buildroot}%{_libdir}/monetdb5/run_*.mal rm -f %{buildroot}%{_libdir}/monetdb5/lib_run_*.so -rm -f %{buildroot}%{_libdir}/monetdb5/microbenchmark.mal rm -f %{buildroot}%{_libdir}/monetdb5/lib_microbenchmark*.so rm -f %{buildroot}%{_libdir}/monetdb5/lib_udf*.so rm -f %{buildroot}%{_bindir}/monetdb_mtest.sh @@ -848,6 +846,40 @@ fi %endif %changelog +* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213 +- Rebuilt. +- GH#7163: Multiple sql.mvc() invocations in the same query +- GH#7167: sys.shutdown() problems +- GH#7184: Insert into query blocks all other queries +- GH#7185: GROUPING SETS on groups with aliases provided in the SELECT + returns empty result +- GH#7186: data files created with COPY SELECT .. INTO 'file.csv' fail to + be loaded using COPY INTO .. FROM 'file.csv' when double quoted string + data contains the field values delimiter character +- GH#7191: [MonetDBe] monetdbe_cleanup_statement() with bound NULLs on + variable-sized types bug +- GH#7196: BATproject2: does not match always +- GH#7198: Suboptimal query plan for query containing JSON access filter + and two negative string comparisons +- GH#7200: PRIMARY KEY unique constraint is violated with concurrent + inserts +- GH#7206: Python UDF fails when returning an empty table as a dictionary + +* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213 +- clients: Dumping the database now also dumps the read-only and insert-only + states of tables. + +* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213 +- gdk: Sometimes when the server was restarted, it wouldn't start anymore due + to an error from BBPcheckbats. We finally found and fixed a (hopefully + "the") cause of this problem. + +* Thu Oct 28 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213 +- sql: Number parsing for SQL was fixed. If a number was immediately followed + by letters (i.e. without a space), the number was accepted and the + alphanumeric string starting with the letter was interpreted as an alias + (if aliases were allowed in that position). + * Thu Sep 30 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.11-20210930 - Rebuilt. diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py --- a/NT/mkodbcwxs.py +++ b/NT/mkodbcwxs.py @@ -45,7 +45,9 @@ def main(): if vsdir is not None: vcdir = os.path.join(vsdir, 'VC') if vcdir is None: - if os.path.exists(r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC'): + if os.path.exists(r'C:\Program Files\Microsoft Visual Studio\2022\Community\VC'): + vcdir = r'C:\Program Files\Microsoft Visual Studio\2022\Community\VC' + elif os.path.exists(r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC'): vcdir = r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC' elif os.path.exists(r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC'): vcdir = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC' diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -52,7 +52,9 @@ def main(): if vsdir is not None: vcdir = os.path.join(vsdir, 'VC') if vcdir is None: - if os.path.exists(r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC'): + if os.path.exists(r'C:\Program Files\Microsoft Visual Studio\2022\Community\VC'): + vcdir = r'C:\Program Files\Microsoft Visual Studio\2022\Community\VC' + elif os.path.exists(r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC'): vcdir = r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC' elif os.path.exists(r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC'): vcdir = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC' diff --git a/clients/ChangeLog-Archive b/clients/ChangeLog-Archive --- a/clients/ChangeLog-Archive +++ b/clients/ChangeLog-Archive @@ -1,6 +1,10 @@ # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY # This file contains past ChangeLog entries +* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213 +- Dumping the database now also dumps the read-only and insert-only + states of tables. + * Tue Jul 20 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.1-20210723 - The MonetDB stethoscope has been removed. There is now a separate package available with PIP (monetdb_stethoscope) or as an RPM or DEB diff --git a/clients/ChangeLog.Jul2021 b/clients/ChangeLog.Jul2021 --- a/clients/ChangeLog.Jul2021 +++ b/clients/ChangeLog.Jul2021 @@ -1,7 +1,3 @@ # ChangeLog file for clients # This file is updated with Maddlog -* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> -- Dumping the database now also dumps the read-only and insert-only - states of tables. - 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 @@ -6350,6 +6350,8 @@ [ "batsql", "diff", "pattern batsql.diff(X_0:bat[:bit], X_1:bat[:any_1]):bat[:bit] ", "SQLdiff;", "return true if cur != prev row" ] [ "batsql", "diff", "pattern batsql.diff(X_0:bit, X_1:bat[:any_1]):bat[:bit] ", "SQLdiff;", "return true if cur != prev row" ] [ "batsql", "first_value", "pattern batsql.first_value(X_0:bat[:any_1], X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:any_1] ", "SQLfirst_value;", "return the first value of groups" ] +[ "batsql", "get_value", "pattern batsql.get_value(X_0:bat[:str], X_1:bat[:str]):bat[:lng] ", "mvc_get_value_bulk;", "return the current value of the sequence (ie the next to be used value)" ] +[ "batsql", "get_value", "pattern batsql.get_value(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng] ", "mvc_get_value_bulk;", "return the current value of the sequence (ie the next to be used value)" ] [ "batsql", "index", "command batsql.index(X_0:bat[:str], X_1:bit):bat[:bte] ", "BATSTRindex_bte;", "Return the offsets as an index bat" ] [ "batsql", "index", "command batsql.index(X_0:bat[:str], X_1:bit):bat[:int] ", "BATSTRindex_int;", "Return the offsets as an index bat" ] [ "batsql", "index", "command batsql.index(X_0:bat[:str], X_1:bit):bat[:sht] ", "BATSTRindex_sht;", "Return the offsets as an index bat" ] @@ -6386,8 +6388,6 @@ [ "batsql", "ntile", "pattern batsql.ntile(X_0:bat[:any], X_1:any_1, X_2:any_2, X_3:any_3):bat[:any_1] ", "SQLntile;", "return the groups divided as equally as possible" ] [ "batsql", "ntile", "pattern batsql.ntile(X_0:bat[:any], X_1:bat[:any_1], X_2:any_2, X_3:any_3):bat[:any_1] ", "SQLntile;", "return the groups divided as equally as possible" ] [ "batsql", "password", "pattern batsql.password(X_0:bat[:str]):bat[:str] ", "db_password_wrap;", "Return password hash of user" ] -[ "batsql", "peak_next_value", "pattern batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str]):bat[:lng] ", "mvc_peak_next_value_bulk;", "Peaks at the next value of the sequence" ] -[ "batsql", "peak_next_value", "pattern batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng] ", "mvc_peak_next_value_bulk;", "Peaks at the next value of the sequence" ] [ "batsql", "percent_rank", "pattern batsql.percent_rank(X_0:bat[:any_1], X_1:any_2, X_2:any_3):bat[:dbl] ", "SQLpercent_rank;", "return the percentage into the total number of groups for each row" ] [ "batsql", "prod", "pattern batsql.prod(X_0:bat[:bte], X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:lng] ", "SQLprod;", "return the product of groups" ] [ "batsql", "prod", "pattern batsql.prod(X_0:bat[:dbl], X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:dbl] ", "SQLprod;", "return the product of groups" ] @@ -9077,14 +9077,6 @@ [ "netcdf", "importvar", "unsafe command netcdf.importvar(X_0:str, X_1:int):str ", "NCDFimportVarStmt;", "Import variable: compose create array string" ] [ "netcdf", "importvariable", "unsafe pattern netcdf.importvariable(X_0:int, X_1:str):void ", "NCDFimportVariable;", "Import variable: create array and load data from variable varname of file fileid" ] [ "netcdf", "test", "command netcdf.test(X_0:str):int ", "NCDFtest;", "Returns number of variables in a given NetCDF dataset (file)" ] -[ "oltp", "disable", "unsafe pattern oltp.disable():void ", "OLTPdisable;", "Disable the OLTP delay monitor" ] -[ "oltp", "enable", "unsafe pattern oltp.enable():void ", "OLTPenable;", "Enable the OLTP delay monitor" ] -[ "oltp", "init", "unsafe pattern oltp.init():void ", "OLTPinit;", "Initialize the lock table" ] -[ "oltp", "isenabled", "unsafe command oltp.isenabled():int ", "OLTPis_enabled;", "Query the OLTP state" ] -[ "oltp", "lock", "unsafe pattern oltp.lock(X_0:int...):void ", "OLTPlock;", "Wait for all write locks needed" ] -[ "oltp", "release", "unsafe pattern oltp.release(X_0:int...):void ", "OLTPrelease;", "Release for all write locks needed" ] -[ "oltp", "reset", "unsafe pattern oltp.reset():void ", "OLTPreset;", "Reset the OLTP lock table" ] -[ "oltp", "table", "unsafe pattern oltp.table() (X_0:bat[:timestamp], X_1:bat[:str], X_2:bat[:int], X_3:bat[:int]) ", "OLTPtable;", "Show status of lock table" ] [ "optimizer", "aliases", "pattern optimizer.aliases():str ", "OPTwrapper;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases(X_0:str, X_1:str):str ", "OPTwrapper;", "Alias removal optimizer" ] [ "optimizer", "bincopyfrom", "pattern optimizer.bincopyfrom():str ", "OPTwrapper;", "" ] @@ -9143,9 +9135,6 @@ [ "optimizer", "multiplex", "pattern optimizer.multiplex():str ", "OPTwrapper;", "" ] [ "optimizer", "multiplex", "pattern optimizer.multiplex(X_0:str, X_1:str):str ", "OPTwrapper;", "Compiler for multiplexed instructions" ] [ "optimizer", "no_mitosis_pipe", "function optimizer.no_mitosis_pipe():void;", "", "" ] -[ "optimizer", "oltp", "pattern optimizer.oltp():str ", "OPTwrapper;", "" ] -[ "optimizer", "oltp", "pattern optimizer.oltp(X_0:str, X_1:str):str ", "OPTwrapper;", "Inject the OLTP locking primitives" ] -[ "optimizer", "oltp_pipe", "function optimizer.oltp_pipe():void;", "", "" ] [ "optimizer", "optimize", "pattern optimizer.optimize(X_0:str, X_1:str):void ", "QOToptimize;", "Optimize a specific operation" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_0:str, X_1:str):void ", "OPTorcam;", "Inverse macro processor for current function" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_0:str, X_1:str, X_2:str, X_3:str):void ", "OPTorcam;", "Inverse macro, find pattern and replace with a function call." ] @@ -9263,10 +9252,10 @@ [ "sql", "affectedRows", "unsafe pattern sql.affectedRows(X_0:int, X_1:lng):int ", "mvc_affected_rows_wrap;", "export the number of affected rows by the current query" ] [ "sql", "all", "pattern sql.all(X_0:bit, X_1:bit, X_2:bit):bit ", "SQLall_cmp;", "if !cmp then false, (nl or nr) then nil, else true" ] [ "sql", "alpha", "command sql.alpha(X_0:dbl, X_1:dbl):dbl ", "SQLcst_alpha_cst;", "Implementation of astronomy alpha function: expands the radius theta depending on the declination" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng):void ", "sql_analyze;", "" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng, X_2:str):void ", "sql_analyze;", "" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng, X_2:str, X_3:str):void ", "sql_analyze;", "" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng, X_2:str, X_3:str, X_4:str):void ", "sql_analyze;", "Update the database statistics table" ] +[ "sql", "analyze", "unsafe pattern sql.analyze():void ", "sql_analyze;", "Update statistics for every column in the database" ] +[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:str):void ", "sql_analyze;", "Update statistics for schema" ] +[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:str, X_1:str):void ", "sql_analyze;", "Update statistics for table" ] +[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:str, X_1:str, X_2:str):void ", "sql_analyze;", "Update statistics for column" ] [ "sql", "any", "pattern sql.any(X_0:bit, X_1:bit, X_2:bit):bit ", "SQLany_cmp;", "if cmp then true, (nl or nr) nil then nil, else false" ] [ "sql", "append", "pattern sql.append(X_0:int, X_1:str, X_2:str, X_3:str, X_4:oid, X_5:bat[:oid], X_6:any):int ", "mvc_append_wrap;", "Append to the column tname.cname (possibly optimized to replace the insert bat of tname.cname. Returns sequence number for order dependence." ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "Glue together the calling sequence" ] @@ -9361,7 +9350,7 @@ [ "sql", "first_value", "pattern sql.first_value(X_0:any_1, X_1:bit, X_2:bit, X_3:int, X_4:oid, X_5:oid):any_1 ", "SQLfirst_value;", "return the first value of groups" ] [ "sql", "getVariable", "pattern sql.getVariable(X_0:int, X_1:str, X_2:str):any_1 ", "getVariable;", "Get the value of a session variable" ] [ "sql", "getVersion", "command sql.getVersion(X_0:int):lng ", "mvc_getVersion;", "Return the database version identifier for a client." ] -[ "sql", "get_value", "pattern sql.get_value(X_0:str, X_1:str):lng ", "mvc_get_value;", "return the current value of the sequence" ] +[ "sql", "get_value", "pattern sql.get_value(X_0:str, X_1:str):lng ", "mvc_get_value;", "return the current value of the sequence (ie the next to be used value)" ] [ "sql", "grow", "pattern sql.grow(X_0:bat[:oid], X_1:any_1):int ", "mvc_grow_wrap;", "Resize the tid column of a declared table." ] [ "sql", "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str):void ", "SQLhot_snapshot;", "Write db snapshot to the given tar(.gz) file" ] [ "sql", "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str, X_1:bit):void ", "SQLhot_snapshot_wrap;", "Write db snapshot to the given tar(.gz/.lz4/.bz/.xz) file on either server or client" ] @@ -9390,7 +9379,6 @@ [ "sql", "optimizer_updates", "pattern sql.optimizer_updates():void ", "SQLoptimizersUpdate;", "" ] [ "sql", "optimizers", "command sql.optimizers() (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ", "getPipeCatalog;", "" ] [ "sql", "password", "pattern sql.password(X_0:str):str ", "db_password_wrap;", "Return password hash of user" ] -[ "sql", "peak_next_value", "pattern sql.peak_next_value(X_0:str, X_1:str):lng ", "mvc_peak_next_value;", "Peaks at the next value of the sequence" ] [ "sql", "percent_rank", "pattern sql.percent_rank(X_0:any_1, X_1:bit, X_2:bit):dbl ", "SQLpercent_rank;", "return the percentage into the total number of groups for each row" ] [ "sql", "prelude", "pattern sql.prelude():void ", "SQLprelude;", "" ] [ "sql", "prepared_statements", "pattern sql.prepared_statements() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:int], X_3:bat[:str], X_4:bat[:timestamp]) ", "SQLsession_prepared_statements;", "Available prepared statements in the current session" ] @@ -9430,6 +9418,10 @@ [ "sql", "shutdown", "unsafe pattern sql.shutdown(X_0:sht):str ", "SQLshutdown_wrap;", "" ] [ "sql", "shutdown", "unsafe pattern sql.shutdown(X_0:sht, X_1:bit):str ", "SQLshutdown_wrap;", "" ] [ "sql", "sql_variables", "pattern sql.sql_variables() (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str]) ", "sql_variables;", "return the table with session variables" ] +[ "sql", "statistics", "pattern sql.statistics() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:int], X_6:bat[:lng], X_7:bat[:bit], X_8:bat[:bit], X_9:bat[:str], X_10:bat[:str], X_11:bat[:bit], X_12:bat[:bit]) ", "sql_statistics;", "return a table with statistics information" ] +[ "sql", "statistics", "pattern sql.statistics(X_0:str) (X_1:bat[:int], X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:str], X_6:bat[:int], X_7:bat[:lng], X_8:bat[:bit], X_9:bat[:bit], X_10:bat[:str], X_11:bat[:str], X_12:bat[:bit], X_13:bat[:bit]) ", "sql_statistics;", "return a table with statistics information for a particular schema" ] +[ "sql", "statistics", "pattern sql.statistics(X_0:str, X_1:str) (X_2:bat[:int], X_3:bat[:str], X_4:bat[:str], X_5:bat[:str], X_6:bat[:str], X_7:bat[:int], X_8:bat[:lng], X_9:bat[:bit], X_10:bat[:bit], X_11:bat[:str], X_12:bat[:str], X_13:bat[:bit], X_14:bat[:bit]) ", "sql_statistics;", "return a table with statistics information for a particular table" ] +[ "sql", "statistics", "pattern sql.statistics(X_0:str, X_1:str, X_2:str) (X_3:bat[:int], X_4:bat[:str], X_5:bat[:str], X_6:bat[:str], X_7:bat[:str], X_8:bat[:int], X_9:bat[:lng], X_10:bat[:bit], X_11:bat[:bit], X_12:bat[:str], X_13:bat[:str], X_14:bat[:bit], X_15:bat[:bit]) ", "sql_statistics;", "return a table with statistics information for a particular column" ] [ "sql", "stdev", "pattern sql.stdev(X_0:bte, X_1:bit, X_2:bit, X_3:int, X_4:oid, X_5:oid):dbl ", "SQLstddev_samp;", "return the standard deviation sample of groups" ] [ "sql", "stdev", "pattern sql.stdev(X_0:dbl, X_1:bit, X_2:bit, X_3:int, X_4:oid, X_5:oid):dbl ", "SQLstddev_samp;", "return the standard deviation sample of groups" ] [ "sql", "stdev", "pattern sql.stdev(X_0:flt, X_1:bit, X_2:bit, X_3:int, X_4:oid, X_5:oid):dbl ", "SQLstddev_samp;", "return the standard deviation sample of groups" ] 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 @@ -8891,6 +8891,8 @@ [ "batsql", "diff", "pattern batsql.diff(X_0:bat[:bit], X_1:bat[:any_1]):bat[:bit] ", "SQLdiff;", "return true if cur != prev row" ] [ "batsql", "diff", "pattern batsql.diff(X_0:bit, X_1:bat[:any_1]):bat[:bit] ", "SQLdiff;", "return true if cur != prev row" ] [ "batsql", "first_value", "pattern batsql.first_value(X_0:bat[:any_1], X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:any_1] ", "SQLfirst_value;", "return the first value of groups" ] +[ "batsql", "get_value", "pattern batsql.get_value(X_0:bat[:str], X_1:bat[:str]):bat[:lng] ", "mvc_get_value_bulk;", "return the current value of the sequence (ie the next to be used value)" ] +[ "batsql", "get_value", "pattern batsql.get_value(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng] ", "mvc_get_value_bulk;", "return the current value of the sequence (ie the next to be used value)" ] [ "batsql", "index", "command batsql.index(X_0:bat[:str], X_1:bit):bat[:bte] ", "BATSTRindex_bte;", "Return the offsets as an index bat" ] [ "batsql", "index", "command batsql.index(X_0:bat[:str], X_1:bit):bat[:int] ", "BATSTRindex_int;", "Return the offsets as an index bat" ] [ "batsql", "index", "command batsql.index(X_0:bat[:str], X_1:bit):bat[:sht] ", "BATSTRindex_sht;", "Return the offsets as an index bat" ] @@ -8927,8 +8929,6 @@ [ "batsql", "ntile", "pattern batsql.ntile(X_0:bat[:any], X_1:any_1, X_2:any_2, X_3:any_3):bat[:any_1] ", "SQLntile;", "return the groups divided as equally as possible" ] [ "batsql", "ntile", "pattern batsql.ntile(X_0:bat[:any], X_1:bat[:any_1], X_2:any_2, X_3:any_3):bat[:any_1] ", "SQLntile;", "return the groups divided as equally as possible" ] [ "batsql", "password", "pattern batsql.password(X_0:bat[:str]):bat[:str] ", "db_password_wrap;", "Return password hash of user" ] -[ "batsql", "peak_next_value", "pattern batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str]):bat[:lng] ", "mvc_peak_next_value_bulk;", "Peaks at the next value of the sequence" ] -[ "batsql", "peak_next_value", "pattern batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng] ", "mvc_peak_next_value_bulk;", "Peaks at the next value of the sequence" ] [ "batsql", "percent_rank", "pattern batsql.percent_rank(X_0:bat[:any_1], X_1:any_2, X_2:any_3):bat[:dbl] ", "SQLpercent_rank;", "return the percentage into the total number of groups for each row" ] [ "batsql", "prod", "pattern batsql.prod(X_0:bat[:bte], X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:hge] ", "SQLprod;", "return the product of groups" ] [ "batsql", "prod", "pattern batsql.prod(X_0:bat[:bte], X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:lng] ", "SQLprod;", "return the product of groups" ] @@ -12377,14 +12377,6 @@ [ "netcdf", "importvar", "unsafe command netcdf.importvar(X_0:str, X_1:int):str ", "NCDFimportVarStmt;", "Import variable: compose create array string" ] [ "netcdf", "importvariable", "unsafe pattern netcdf.importvariable(X_0:int, X_1:str):void ", "NCDFimportVariable;", "Import variable: create array and load data from variable varname of file fileid" ] [ "netcdf", "test", "command netcdf.test(X_0:str):int ", "NCDFtest;", "Returns number of variables in a given NetCDF dataset (file)" ] -[ "oltp", "disable", "unsafe pattern oltp.disable():void ", "OLTPdisable;", "Disable the OLTP delay monitor" ] -[ "oltp", "enable", "unsafe pattern oltp.enable():void ", "OLTPenable;", "Enable the OLTP delay monitor" ] -[ "oltp", "init", "unsafe pattern oltp.init():void ", "OLTPinit;", "Initialize the lock table" ] -[ "oltp", "isenabled", "unsafe command oltp.isenabled():int ", "OLTPis_enabled;", "Query the OLTP state" ] -[ "oltp", "lock", "unsafe pattern oltp.lock(X_0:int...):void ", "OLTPlock;", "Wait for all write locks needed" ] -[ "oltp", "release", "unsafe pattern oltp.release(X_0:int...):void ", "OLTPrelease;", "Release for all write locks needed" ] -[ "oltp", "reset", "unsafe pattern oltp.reset():void ", "OLTPreset;", "Reset the OLTP lock table" ] -[ "oltp", "table", "unsafe pattern oltp.table() (X_0:bat[:timestamp], X_1:bat[:str], X_2:bat[:int], X_3:bat[:int]) ", "OLTPtable;", "Show status of lock table" ] [ "optimizer", "aliases", "pattern optimizer.aliases():str ", "OPTwrapper;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases(X_0:str, X_1:str):str ", "OPTwrapper;", "Alias removal optimizer" ] [ "optimizer", "bincopyfrom", "pattern optimizer.bincopyfrom():str ", "OPTwrapper;", "" ] @@ -12443,9 +12435,6 @@ [ "optimizer", "multiplex", "pattern optimizer.multiplex():str ", "OPTwrapper;", "" ] [ "optimizer", "multiplex", "pattern optimizer.multiplex(X_0:str, X_1:str):str ", "OPTwrapper;", "Compiler for multiplexed instructions" ] [ "optimizer", "no_mitosis_pipe", "function optimizer.no_mitosis_pipe():void;", "", "" ] -[ "optimizer", "oltp", "pattern optimizer.oltp():str ", "OPTwrapper;", "" ] -[ "optimizer", "oltp", "pattern optimizer.oltp(X_0:str, X_1:str):str ", "OPTwrapper;", "Inject the OLTP locking primitives" ] -[ "optimizer", "oltp_pipe", "function optimizer.oltp_pipe():void;", "", "" ] [ "optimizer", "optimize", "pattern optimizer.optimize(X_0:str, X_1:str):void ", "QOToptimize;", "Optimize a specific operation" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_0:str, X_1:str):void ", "OPTorcam;", "Inverse macro processor for current function" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_0:str, X_1:str, X_2:str, X_3:str):void ", "OPTorcam;", "Inverse macro, find pattern and replace with a function call." ] @@ -12563,10 +12552,10 @@ [ "sql", "affectedRows", "unsafe pattern sql.affectedRows(X_0:int, X_1:lng):int ", "mvc_affected_rows_wrap;", "export the number of affected rows by the current query" ] [ "sql", "all", "pattern sql.all(X_0:bit, X_1:bit, X_2:bit):bit ", "SQLall_cmp;", "if !cmp then false, (nl or nr) then nil, else true" ] [ "sql", "alpha", "command sql.alpha(X_0:dbl, X_1:dbl):dbl ", "SQLcst_alpha_cst;", "Implementation of astronomy alpha function: expands the radius theta depending on the declination" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng):void ", "sql_analyze;", "" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng, X_2:str):void ", "sql_analyze;", "" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng, X_2:str, X_3:str):void ", "sql_analyze;", "" ] -[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:int, X_1:lng, X_2:str, X_3:str, X_4:str):void ", "sql_analyze;", "Update the database statistics table" ] +[ "sql", "analyze", "unsafe pattern sql.analyze():void ", "sql_analyze;", "Update statistics for every column in the database" ] +[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:str):void ", "sql_analyze;", "Update statistics for schema" ] +[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:str, X_1:str):void ", "sql_analyze;", "Update statistics for table" ] +[ "sql", "analyze", "unsafe pattern sql.analyze(X_0:str, X_1:str, X_2:str):void ", "sql_analyze;", "Update statistics for column" ] [ "sql", "any", "pattern sql.any(X_0:bit, X_1:bit, X_2:bit):bit ", "SQLany_cmp;", "if cmp then true, (nl or nr) nil then nil, else false" ] [ "sql", "append", "pattern sql.append(X_0:int, X_1:str, X_2:str, X_3:str, X_4:oid, X_5:bat[:oid], X_6:any):int ", "mvc_append_wrap;", "Append to the column tname.cname (possibly optimized to replace the insert bat of tname.cname. Returns sequence number for order dependence." ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "Glue together the calling sequence" ] @@ -12666,7 +12655,7 @@ [ "sql", "first_value", "pattern sql.first_value(X_0:any_1, X_1:bit, X_2:bit, X_3:int, X_4:oid, X_5:oid):any_1 ", "SQLfirst_value;", "return the first value of groups" ] [ "sql", "getVariable", "pattern sql.getVariable(X_0:int, X_1:str, X_2:str):any_1 ", "getVariable;", "Get the value of a session variable" ] [ "sql", "getVersion", "command sql.getVersion(X_0:int):lng ", "mvc_getVersion;", "Return the database version identifier for a client." ] -[ "sql", "get_value", "pattern sql.get_value(X_0:str, X_1:str):lng ", "mvc_get_value;", "return the current value of the sequence" ] +[ "sql", "get_value", "pattern sql.get_value(X_0:str, X_1:str):lng ", "mvc_get_value;", "return the current value of the sequence (ie the next to be used value)" ] [ "sql", "grow", "pattern sql.grow(X_0:bat[:oid], X_1:any_1):int ", "mvc_grow_wrap;", "Resize the tid column of a declared table." ] [ "sql", "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str):void ", "SQLhot_snapshot;", "Write db snapshot to the given tar(.gz) file" ] [ "sql", "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str, X_1:bit):void ", "SQLhot_snapshot_wrap;", "Write db snapshot to the given tar(.gz/.lz4/.bz/.xz) file on either server or client" ] @@ -12695,7 +12684,6 @@ [ "sql", "optimizer_updates", "pattern sql.optimizer_updates():void ", "SQLoptimizersUpdate;", "" ] [ "sql", "optimizers", "command sql.optimizers() (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ", "getPipeCatalog;", "" ] [ "sql", "password", "pattern sql.password(X_0:str):str ", "db_password_wrap;", "Return password hash of user" ] -[ "sql", "peak_next_value", "pattern sql.peak_next_value(X_0:str, X_1:str):lng ", "mvc_peak_next_value;", "Peaks at the next value of the sequence" ] [ "sql", "percent_rank", "pattern sql.percent_rank(X_0:any_1, X_1:bit, X_2:bit):dbl ", "SQLpercent_rank;", "return the percentage into the total number of groups for each row" ] [ "sql", "prelude", "pattern sql.prelude():void ", "SQLprelude;", "" ] [ "sql", "prepared_statements", "pattern sql.prepared_statements() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:int], X_3:bat[:str], X_4:bat[:timestamp]) ", "SQLsession_prepared_statements;", "Available prepared statements in the current session" ] @@ -12740,6 +12728,10 @@ [ "sql", "shutdown", "unsafe pattern sql.shutdown(X_0:sht):str ", "SQLshutdown_wrap;", "" ] [ "sql", "shutdown", "unsafe pattern sql.shutdown(X_0:sht, X_1:bit):str ", "SQLshutdown_wrap;", "" ] [ "sql", "sql_variables", "pattern sql.sql_variables() (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str]) ", "sql_variables;", "return the table with session variables" ] +[ "sql", "statistics", "pattern sql.statistics() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:int], X_6:bat[:lng], X_7:bat[:bit], X_8:bat[:bit], X_9:bat[:str], X_10:bat[:str], X_11:bat[:bit], X_12:bat[:bit]) ", "sql_statistics;", "return a table with statistics information" ] +[ "sql", "statistics", "pattern sql.statistics(X_0:str) (X_1:bat[:int], X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:str], X_6:bat[:int], X_7:bat[:lng], X_8:bat[:bit], X_9:bat[:bit], X_10:bat[:str], X_11:bat[:str], X_12:bat[:bit], X_13:bat[:bit]) ", "sql_statistics;", "return a table with statistics information for a particular schema" ] +[ "sql", "statistics", "pattern sql.statistics(X_0:str, X_1:str) (X_2:bat[:int], X_3:bat[:str], X_4:bat[:str], X_5:bat[:str], X_6:bat[:str], X_7:bat[:int], X_8:bat[:lng], X_9:bat[:bit], X_10:bat[:bit], X_11:bat[:str], X_12:bat[:str], X_13:bat[:bit], X_14:bat[:bit]) ", "sql_statistics;", "return a table with statistics information for a particular table" ] +[ "sql", "statistics", "pattern sql.statistics(X_0:str, X_1:str, X_2:str) (X_3:bat[:int], X_4:bat[:str], X_5:bat[:str], X_6:bat[:str], X_7:bat[:str], X_8:bat[:int], X_9:bat[:lng], X_10:bat[:bit], X_11:bat[:bit], X_12:bat[:str], X_13:bat[:str], X_14:bat[:bit], X_15:bat[:bit]) ", "sql_statistics;", "return a table with statistics information for a particular column" ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list