Changeset: 9f68c24045e8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9f68c24045e8
Added Files:
sql/test/BugTracker-2019/Tests/double-free.Bug-6757.sql
sql/test/BugTracker-2019/Tests/double-free.Bug-6757.stable.err
sql/test/BugTracker-2019/Tests/double-free.Bug-6757.stable.out
sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py
sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.out
sql/test/BugTracker-2019/Tests/select-char.Bug-6761.sql
sql/test/BugTracker-2019/Tests/select-char.Bug-6761.stable.err
sql/test/BugTracker-2019/Tests/select-char.Bug-6761.stable.out
Removed Files:
sql/scripts/11_times.sql
sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.stable.out.int128
sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
sql/test/BugTracker-2016/Tests/inner_join_cross_join.Bug-6140.stable.out.int128
sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out.int128
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out.int128
sql/test/BugTracker-2017/Tests/group-by-on-constant.Bug-6082.stable.out.int128
sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.stable.out.int128
sql/test/BugTracker-2018/Tests/sqlitelogictest-coalesce-division-by-zero.Bug-6556.stable.out.int128
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out.int128
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-coalesce-error-message.Bug-6608.stable.out.int128
sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128
Modified Files:
MonetDB.spec
NT/rules.msc
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/mclient.c
clients/mapiclient/stethoscope.c
common/stream/stream.c
common/utils/matomic.h
configure.ag
debian/control
debian/fix-deb.sh
debian/monetdb-testing-python.install
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_align.c
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_calc.h
gdk/gdk_group.c
gdk/gdk_hash.c
gdk/gdk_hash.h
gdk/gdk_heap.c
gdk/gdk_imprints.c
gdk/gdk_interprocess.c
gdk/gdk_logger.c
gdk/gdk_orderidx.c
gdk/gdk_private.h
gdk/gdk_storage.c
gdk/gdk_system.h
gdk/gdk_utils.c
monetdb5/mal/mal_dataflow.c
monetdb5/modules/kernel/aggr.c
monetdb5/modules/kernel/aggr.mal
monetdb5/modules/kernel/aggr.mal.sh
monetdb5/modules/mal/mal_mapi.c
monetdb5/modules/mal/tablet.c
sql/ChangeLog.Nov2019
sql/backends/monet5/UDF/capi/capi.c
sql/backends/monet5/UDF/pyapi/pyapi.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_result.h
sql/backends/monet5/sql_upgrades.c
sql/common/sql_list.c
sql/common/sql_types.c
sql/common/sql_types.h
sql/include/sql_catalog.h
sql/include/sql_relation.h
sql/rel.txt
sql/scripts/39_analytics.sql
sql/scripts/39_analytics_hge.sql
sql/scripts/Makefile.ag
sql/server/rel_dump.c
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_optimizer.c
sql/server/rel_prop.c
sql/server/rel_prop.h
sql/server/rel_psm.c
sql/server/rel_psm.h
sql/server/rel_rel.c
sql/server/rel_schema.c
sql/server/rel_select.c
sql/server/rel_semantic.c
sql/server/rel_unnest.c
sql/server/rel_unnest.h
sql/server/rel_updates.c
sql/server/sql_env.c
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.y
sql/server/sql_qc.c
sql/server/sql_qc.h
sql/server/sql_tokens.h
sql/storage/bat/res_table.c
sql/storage/sql_catalog.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/storage/store_dependency.c
sql/test/BugDay_2005-10-06_2.9.3/Tests/union_limitation.SF-921992.stable.out
sql/test/BugTracker-2009/Tests/All
sql/test/BugTracker-2009/Tests/insert_into_done_by_procedure.SF-2607293.sql
sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.sql
sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.sql
sql/test/BugTracker-2016/Tests/inner_join_cross_join.Bug-6140.sql
sql/test/BugTracker-2016/Tests/leftjoin.Bug-3981.stable.out
sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.sql
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.sql
sql/test/BugTracker-2017/Tests/group-by-on-constant.Bug-6082.sql
sql/test/BugTracker-2018/Tests/All
sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out
sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.sql
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.sql
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-coalesce-error-message.Bug-6608.sql
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-coalesce-error-message.Bug-6608.stable.out
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out
sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql
sql/test/BugTracker-2019/Tests/All
sql/test/BugTracker-2019/Tests/cte-union.Bug-6755.stable.err
sql/test/BugTracker-2019/Tests/cte-union.Bug-6755.stable.out
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql
sql/test/BugTracker-2019/Tests/sequence-first-next-value.Bug-6743.stable.out
sql/test/BugTracker/Tests/All
sql/test/SQLite_regress/sqllogictest/sqllogictest.py
sql/test/Tests/window_functions.stable.out
sql/test/analytics/Tests/analytics09.stable.err
sql/test/analytics/Tests/analytics09.stable.out
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/mergetables/Tests/sqlsmith.Bug-6455.stable.out
sql/test/rename/Tests/All
sql/test/subquery/Tests/any.sql
sql/test/subquery/Tests/any.stable.err
sql/test/subquery/Tests/any.stable.out
sql/test/subquery/Tests/correlated.stable.err
sql/test/subquery/Tests/correlated.stable.out
sql/test/subquery/Tests/subquery.sql
sql/test/subquery/Tests/subquery.stable.err
sql/test/subquery/Tests/subquery2.sql
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out
sql/test/sys-schema/Tests/check_MaxStrLength_violations.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
sql/test/testdb-reload/Tests/reload.py
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
testing/Mtest.py.in
testing/process.py
tools/merovingian/daemon/client.c
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/discoveryrunner.c
tools/merovingian/daemon/merovingian.c
tools/merovingian/daemon/multiplex-funnel.c
Branch: mlogger
Log Message:
Merge with default
diffs (truncated from 13594 to 300 lines):
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -84,9 +84,9 @@
%bcond_without rintegration
%endif
-# On Fedora and RHEL 7, create the MonetDB-python2 package.
+# On Fedora <= 30 and RHEL 7, create the MonetDB-python2 package.
# On RHEL 6, numpy is too old.
-%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
+%if 0%{?rhel} == 7 || %{!?fedora:1000}%{?fedora} <= 30
%bcond_without py2integration
%endif
%if %{?rhel:0}%{!?rhel:1}
@@ -164,12 +164,7 @@ BuildRequires: python-devel
# RedHat Enterprise Linux calls it simply numpy
BuildRequires: numpy
%else
-%if (0%{?fedora} >= 24)
BuildRequires: python2-numpy
-%else
-# Fedora <= 23 doesn't have python2-numpy
-BuildRequires: numpy
-%endif
%endif
%endif
%if %{with py3integration}
@@ -1053,7 +1048,12 @@ do
install -p -m 644 buildtools/selinux/monetdb.pp.${selinuxvariant} \
%{buildroot}%{_datadir}/selinux/${selinuxvariant}/monetdb.pp
done
-/usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux
+if [ -x /usr/sbin/hardlink ]; then
+ /usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux
+else
+ # Fedora 31
+ /usr/bin/hardlink -cv %{buildroot}%{_datadir}/selinux
+fi
%endif
%post -p /sbin/ldconfig
diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -42,6 +42,7 @@ BITSMCHN=X64
# force W_CFLAGS off in debug builds: using icc, you get way more
# warnings about casts which results in the code being uncompilable
W_CFLAGS =
+HAVE_MAL_DEBUGGER = 1
!ENDIF
!IFDEF ENABLE_STRICT
# strict mode: treat warnings as errors
@@ -386,6 +387,11 @@ create_winconfig_conds_new_py:
!ELSE
$(ECHO) HAVE_SHP_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
!ENDIF
+!IFDEF HAVE_MAL_DEBUGGER
+ $(ECHO) HAVE_MAL_DEBUGGER_FALSE='#' >>
"$(TOPDIR)\winconfig_conds_new.py"
+!ELSE
+ $(ECHO) HAVE_MAL_DEBUGGER_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ENDIF
!IFDEF HAVE_SQL
$(ECHO) HAVE_SQL_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py"
!ELSE
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
@@ -124,6 +124,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "max", "command aggr.max(b:bat[:any_2]):any_2 ",
"ALGmaxany;", "Return the highest tail value or nil." ]
[ "aggr", "max", "command aggr.max(b:bat[:any_2], skipnil:bit):any_2 ",
"ALGmaxany_skipnil;", "Return the highest tail value or nil." ]
[ "aggr", "median", "command aggr.median(b:bat[:any_1]):any_1 ",
"AGGRmedian;", "Median aggregate" ]
+[ "aggr", "median_avg", "command aggr.median_avg(b:bat[:any_1]):dbl ",
"AGGRmedian_avg;", "Median aggregate" ]
[ "aggr", "min", "command aggr.min(b:bat[:any_1], g:bat[:oid],
e:bat[:any_2]):bat[:any_1] ", "AGGRmin3;", "" ]
[ "aggr", "min", "command aggr.min(b:bat[:any_2]):any_2 ",
"ALGminany;", "Return the lowest tail value or nil." ]
[ "aggr", "min", "command aggr.min(b:bat[:any_2], skipnil:bit):any_2 ",
"ALGminany_skipnil;", "Return the lowest tail value or nil." ]
@@ -209,6 +210,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid],
nil_if_empty:bit):lng ", "CMDBATprod;", "Calculate aggregate product of B
with candidate list." ]
[ "aggr", "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid],
nil_if_empty:bit):sht ", "CMDBATprod;", "Calculate aggregate product of B
with candidate list." ]
[ "aggr", "quantile", "command aggr.quantile(b:bat[:any_1],
q:bat[:dbl]):any_1 ", "AGGRquantile;", "Quantile aggregate" ]
+[ "aggr", "quantile_avg", "command aggr.quantile_avg(b:bat[:any_1],
q:bat[:dbl]):dbl ", "AGGRquantile_avg;", "Quantile aggregate" ]
[ "aggr", "stdev", "command aggr.stdev(b:bat[:bte], g:bat[:oid],
e:bat[:any_1]):bat[:dbl] ", "AGGRstdev3_dbl;", "Grouped tail
standard deviation (sample/non-biased) on bte" ]
[ "aggr", "stdev", "command aggr.stdev(b:bat[:dbl], g:bat[:oid],
e:bat[:any_1]):bat[:dbl] ", "AGGRstdev3_dbl;", "Grouped tail
standard deviation (sample/non-biased) on dbl" ]
[ "aggr", "stdev", "command aggr.stdev(b:bat[:flt], g:bat[:oid],
e:bat[:any_1]):bat[:dbl] ", "AGGRstdev3_dbl;", "Grouped tail
standard deviation (sample/non-biased) on flt" ]
@@ -310,6 +312,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "submax", "command aggr.submax(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",
"AGGRsubmaxcand_val;", "Grouped maximum aggregate with candidates list"
]
[ "aggr", "submedian", "command aggr.submedian(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",
"AGGRsubmedian;", "Grouped median aggregate" ]
[ "aggr", "submedian", "command aggr.submedian(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",
"AGGRsubmediancand;", "Grouped median aggregate with candidate list" ]
+[ "aggr", "submedian_avg", "command
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2],
skip_nils:bit):bat[:dbl] ", "AGGRsubmedian_avg;", "Grouped median
aggregate" ]
+[ "aggr", "submedian_avg", "command
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2], s:bat[:oid],
skip_nils:bit):bat[:dbl] ", "AGGRsubmediancand_avg;", "Grouped median
aggregate with candidate list" ]
[ "aggr", "submin", "command aggr.submin(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:oid] ", "AGGRsubmin;",
"Grouped minimum aggregate" ]
[ "aggr", "submin", "command aggr.submin(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ", "AGGRsubmin_val;",
"Grouped minimum aggregate" ]
[ "aggr", "submin", "command aggr.submin(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:oid] ",
"AGGRsubmincand;", "Grouped minimum aggregate with candidates list"
]
@@ -342,6 +346,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "subprod", "command aggr.subprod(b:bat[:sht], g:bat[:oid],
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:sht] ",
"AGGRsubprodcand_sht;", "Grouped product aggregate with candidates list"
]
[ "aggr", "subquantile", "command aggr.subquantile(b:bat[:any_1],
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",
"AGGRsubquantile;", "Grouped quantile aggregate" ]
[ "aggr", "subquantile", "command aggr.subquantile(b:bat[:any_1],
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], s:bat[:oid],
skip_nils:bit):bat[:any_1] ", "AGGRsubquantilecand;", "Grouped quantile
aggregate with candidate list" ]
+[ "aggr", "subquantile_avg", "command
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2],
skip_nils:bit):bat[:dbl] ", "AGGRsubquantile_avg;", "Grouped quantile
aggregate" ]
+[ "aggr", "subquantile_avg", "command
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2],
s:bat[:oid], skip_nils:bit):bat[:dbl] ", "AGGRsubquantilecand_avg;",
"Grouped quantile aggregate with candidate list" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:bte],
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",
"AGGRsubstdev_dbl;", "Grouped standard deviation (sample/non-biased)
aggregate" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:dbl],
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",
"AGGRsubstdev_dbl;", "Grouped standard deviation (sample/non-biased)
aggregate" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:flt],
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",
"AGGRsubstdev_dbl;", "Grouped standard deviation (sample/non-biased)
aggregate" ]
@@ -11751,6 +11757,7 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "storage", "pattern sql.storage(sname:str, tname:str,
cname:str) (schema:bat[:str], table:bat[:str], column:bat[:str],
type:bat[:str], mode:bat[:str], location:bat[:str], count:bat[:lng],
atomwidth:bat[:int], columnsize:bat[:lng], heap:bat[:lng], hashes:bat[:lng],
phash:bat[:bit], imprints:bat[:lng], sorted:bat[:bit], revsorted:bat[:bit],
key:bat[:bit], orderidx:bat[:lng]) ", "sql_storage;", "return a table with
storage information for a particular column" ]
[ "sql", "subdelta", "command sql.subdelta(col:bat[:oid],
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",
"DELTAsub2;", "Return a single bat of selected delta." ]
[ "sql", "subdelta", "command sql.subdelta(col:bat[:oid],
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid], ins:bat[:oid]):bat[:oid] ",
"DELTAsub;", "Return a single bat of selected delta." ]
+[ "sql", "subnull", "command sql.subnull(l:bat[:any_1],
gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLnil_grp;", "if
any value in l is nil with in a group return true for that group, else false"
]
[ "sql", "subzero_or_one", "inline function
sql.subzero_or_one(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid],
no_nil:bit):bat[:any_1];", "", "" ]
[ "sql", "sum", "pattern sql.sum(b:bte, s:lng, e:lng):lng ",
"SQLsum;", "return the sum of groups" ]
[ "sql", "sum", "pattern sql.sum(b:dbl, s:lng, e:lng):dbl ",
"SQLsum;", "return the sum 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
@@ -132,6 +132,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "max", "command aggr.max(b:bat[:any_2]):any_2 ",
"ALGmaxany;", "Return the highest tail value or nil." ]
[ "aggr", "max", "command aggr.max(b:bat[:any_2], skipnil:bit):any_2 ",
"ALGmaxany_skipnil;", "Return the highest tail value or nil." ]
[ "aggr", "median", "command aggr.median(b:bat[:any_1]):any_1 ",
"AGGRmedian;", "Median aggregate" ]
+[ "aggr", "median_avg", "command aggr.median_avg(b:bat[:any_1]):dbl ",
"AGGRmedian_avg;", "Median aggregate" ]
[ "aggr", "min", "command aggr.min(b:bat[:any_1], g:bat[:oid],
e:bat[:any_2]):bat[:any_1] ", "AGGRmin3;", "" ]
[ "aggr", "min", "command aggr.min(b:bat[:any_2]):any_2 ",
"ALGminany;", "Return the lowest tail value or nil." ]
[ "aggr", "min", "command aggr.min(b:bat[:any_2], skipnil:bit):any_2 ",
"ALGminany_skipnil;", "Return the lowest tail value or nil." ]
@@ -246,6 +247,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid],
nil_if_empty:bit):lng ", "CMDBATprod;", "Calculate aggregate product of B
with candidate list." ]
[ "aggr", "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid],
nil_if_empty:bit):sht ", "CMDBATprod;", "Calculate aggregate product of B
with candidate list." ]
[ "aggr", "quantile", "command aggr.quantile(b:bat[:any_1],
q:bat[:dbl]):any_1 ", "AGGRquantile;", "Quantile aggregate" ]
+[ "aggr", "quantile_avg", "command aggr.quantile_avg(b:bat[:any_1],
q:bat[:dbl]):dbl ", "AGGRquantile_avg;", "Quantile aggregate" ]
[ "aggr", "stdev", "command aggr.stdev(b:bat[:bte], g:bat[:oid],
e:bat[:any_1]):bat[:dbl] ", "AGGRstdev3_dbl;", "Grouped tail
standard deviation (sample/non-biased) on bte" ]
[ "aggr", "stdev", "command aggr.stdev(b:bat[:dbl], g:bat[:oid],
e:bat[:any_1]):bat[:dbl] ", "AGGRstdev3_dbl;", "Grouped tail
standard deviation (sample/non-biased) on dbl" ]
[ "aggr", "stdev", "command aggr.stdev(b:bat[:flt], g:bat[:oid],
e:bat[:any_1]):bat[:dbl] ", "AGGRstdev3_dbl;", "Grouped tail
standard deviation (sample/non-biased) on flt" ]
@@ -355,6 +357,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "submax", "command aggr.submax(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",
"AGGRsubmaxcand_val;", "Grouped maximum aggregate with candidates list"
]
[ "aggr", "submedian", "command aggr.submedian(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",
"AGGRsubmedian;", "Grouped median aggregate" ]
[ "aggr", "submedian", "command aggr.submedian(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",
"AGGRsubmediancand;", "Grouped median aggregate with candidate list" ]
+[ "aggr", "submedian_avg", "command
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2],
skip_nils:bit):bat[:dbl] ", "AGGRsubmedian_avg;", "Grouped median
aggregate" ]
+[ "aggr", "submedian_avg", "command
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2], s:bat[:oid],
skip_nils:bit):bat[:dbl] ", "AGGRsubmediancand_avg;", "Grouped median
aggregate with candidate list" ]
[ "aggr", "submin", "command aggr.submin(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:oid] ", "AGGRsubmin;",
"Grouped minimum aggregate" ]
[ "aggr", "submin", "command aggr.submin(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ", "AGGRsubmin_val;",
"Grouped minimum aggregate" ]
[ "aggr", "submin", "command aggr.submin(b:bat[:any_1],
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:oid] ",
"AGGRsubmincand;", "Grouped minimum aggregate with candidates list"
]
@@ -397,6 +401,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "subprod", "command aggr.subprod(b:bat[:sht], g:bat[:oid],
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:sht] ",
"AGGRsubprodcand_sht;", "Grouped product aggregate with candidates list"
]
[ "aggr", "subquantile", "command aggr.subquantile(b:bat[:any_1],
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",
"AGGRsubquantile;", "Grouped quantile aggregate" ]
[ "aggr", "subquantile", "command aggr.subquantile(b:bat[:any_1],
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], s:bat[:oid],
skip_nils:bit):bat[:any_1] ", "AGGRsubquantilecand;", "Grouped quantile
aggregate with candidate list" ]
+[ "aggr", "subquantile_avg", "command
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2],
skip_nils:bit):bat[:dbl] ", "AGGRsubquantile_avg;", "Grouped quantile
aggregate" ]
+[ "aggr", "subquantile_avg", "command
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2],
s:bat[:oid], skip_nils:bit):bat[:dbl] ", "AGGRsubquantilecand_avg;",
"Grouped quantile aggregate with candidate list" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:bte],
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",
"AGGRsubstdev_dbl;", "Grouped standard deviation (sample/non-biased)
aggregate" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:dbl],
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",
"AGGRsubstdev_dbl;", "Grouped standard deviation (sample/non-biased)
aggregate" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:flt],
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",
"AGGRsubstdev_dbl;", "Grouped standard deviation (sample/non-biased)
aggregate" ]
@@ -16163,6 +16169,7 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "storage", "pattern sql.storage(sname:str, tname:str,
cname:str) (schema:bat[:str], table:bat[:str], column:bat[:str],
type:bat[:str], mode:bat[:str], location:bat[:str], count:bat[:lng],
atomwidth:bat[:int], columnsize:bat[:lng], heap:bat[:lng], hashes:bat[:lng],
phash:bat[:bit], imprints:bat[:lng], sorted:bat[:bit], revsorted:bat[:bit],
key:bat[:bit], orderidx:bat[:lng]) ", "sql_storage;", "return a table with
storage information for a particular column" ]
[ "sql", "subdelta", "command sql.subdelta(col:bat[:oid],
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",
"DELTAsub2;", "Return a single bat of selected delta." ]
[ "sql", "subdelta", "command sql.subdelta(col:bat[:oid],
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid], ins:bat[:oid]):bat[:oid] ",
"DELTAsub;", "Return a single bat of selected delta." ]
+[ "sql", "subnull", "command sql.subnull(l:bat[:any_1],
gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLnil_grp;", "if
any value in l is nil with in a group return true for that group, else false"
]
[ "sql", "subzero_or_one", "inline function
sql.subzero_or_one(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid],
no_nil:bit):bat[:any_1];", "", "" ]
[ "sql", "sum", "pattern sql.sum(b:bte, s:lng, e:lng):hge ",
"SQLsum;", "return the sum of groups" ]
[ "sql", "sum", "pattern sql.sum(b:bte, s:lng, e:lng):lng ",
"SQLsum;", "return the sum of groups" ]
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
@@ -127,9 +127,11 @@ gdk_return BATgroupavg(BAT **bnp, BAT **
BAT *BATgroupcount(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils,
bool abort_on_error);
BAT *BATgroupmax(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils, bool
abort_on_error);
BAT *BATgroupmedian(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils,
bool abort_on_error);
+BAT *BATgroupmedian_avg(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool
skip_nils, bool abort_on_error);
BAT *BATgroupmin(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils, bool
abort_on_error);
BAT *BATgroupprod(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils, bool
abort_on_error);
BAT *BATgroupquantile(BAT *b, BAT *g, BAT *e, BAT *s, int tp, double quantile,
bool skip_nils, bool abort_on_error);
+BAT *BATgroupquantile_avg(BAT *b, BAT *g, BAT *e, BAT *s, int tp, double
quantile, bool skip_nils, bool abort_on_error);
BAT *BATgroupsize(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils, bool
abort_on_error);
BAT *BATgroupstdev_population(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool
skip_nils, bool abort_on_error);
BAT *BATgroupstdev_sample(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool
skip_nils, bool abort_on_error);
@@ -615,6 +617,7 @@ str AGGRcount3nils(bat *retval, const ba
str AGGRcount3nonils(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRmax3(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRmedian(void *retval, const bat *bid);
+str AGGRmedian_avg(dbl *retval, const bat *bid);
str AGGRmin3(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_bte(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_dbl(bat *retval, const bat *bid, const bat *gid, const bat *eid);
@@ -624,6 +627,7 @@ str AGGRprod3_int(bat *retval, const bat
str AGGRprod3_lng(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_sht(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRquantile(void *retval, const bat *bid, const bat *qid);
+str AGGRquantile_avg(dbl *retval, const bat *bid, const bat *qid);
str AGGRstdev3_dbl(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRstdevp3_dbl(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRstr_group_concat(bat *retval, const bat *bid, const bat *gid, const
bat *eid);
@@ -643,7 +647,9 @@ str AGGRsubmax_val(bat *retval, const ba
str AGGRsubmaxcand(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bat *sid, const bit *skip_nils);
str AGGRsubmaxcand_val(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bat *sid, const bit *skip_nils);
str AGGRsubmedian(bat *retval, const bat *bid, const bat *gid, const bat *eid,
const bit *skip_nils);
+str AGGRsubmedian_avg(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bit *skip_nils);
str AGGRsubmediancand(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bat *sid, const bit *skip_nils);
+str AGGRsubmediancand_avg(bat *retval, const bat *bid, const bat *gid, const
bat *eid, const bat *sid, const bit *skip_nils);
str AGGRsubmin(bat *retval, const bat *bid, const bat *gid, const bat *eid,
const bit *skip_nils);
str AGGRsubmin_val(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bit *skip_nils);
str AGGRsubmincand(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bat *sid, const bit *skip_nils);
@@ -663,7 +669,9 @@ str AGGRsubprodcand_int(bat *retval, con
str AGGRsubprodcand_lng(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bat *sid, const bit *skip_nils, const bit *abort_on_error);
str AGGRsubprodcand_sht(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bat *sid, const bit *skip_nils, const bit *abort_on_error);
str AGGRsubquantile(bat *retval, const bat *bid, const bat *quantile, const
bat *gid, const bat *eid, const bit *skip_nils);
+str AGGRsubquantile_avg(bat *retval, const bat *bid, const bat *quantile,
const bat *gid, const bat *eid, const bit *skip_nils);
str AGGRsubquantilecand(bat *retval, const bat *bid, const bat *quantile,
const bat *gid, const bat *eid, const bat *sid, const bit *skip_nils);
+str AGGRsubquantilecand_avg(bat *retval, const bat *bid, const bat *quantile,
const bat *gid, const bat *eid, const bat *sid, const bit *skip_nils);
str AGGRsubstdev_dbl(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bit *skip_nils, const bit *abort_on_error);
str AGGRsubstdevcand_dbl(bat *retval, const bat *bid, const bat *gid, const
bat *eid, const bat *sid, const bit *skip_nils, const bit *abort_on_error);
str AGGRsubstdevp_dbl(bat *retval, const bat *bid, const bat *gid, const bat
*eid, const bit *skip_nils, const bit *abort_on_error);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3664,6 +3664,9 @@ main(int argc, char **argv)
if (mode == SQL)
dump_version(mid, toConsole, "Database:");
+ mnstr_printf(toConsole, "FOLLOW US on
https://twitter.com/MonetDB ");
+ mnstr_printf(toConsole, "or
https://github.com/MonetDB/MonetDB\n");
+
mnstr_printf(toConsole, "Type \\q to quit, \\? for a list of
available commands\n");
if (mode == SQL)
mnstr_printf(toConsole, "auto commit mode: %s\n",
diff --git a/clients/mapiclient/stethoscope.c b/clients/mapiclient/stethoscope.c
--- a/clients/mapiclient/stethoscope.c
+++ b/clients/mapiclient/stethoscope.c
@@ -110,7 +110,7 @@ renderEvent(EventRecord *ev){
return;
fprintf(s, "[ ");
fprintf(s, "%"PRId64", ", ev->eventnr);
- printf("\"%s\", ", ev->time);
+ fprintf(s, "\"%s\", ", ev->time);
if( ev->function && *ev->function)
fprintf(s, "\"%s[%d]%d\", ", ev->function, ev->pc,
ev->tag);
else
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -73,6 +73,9 @@
# include <netinet/tcp.h>
# include <netdb.h>
#endif
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
#ifdef NATIVE_WIN32
#include <io.h>
@@ -2489,9 +2492,21 @@ socket_read(stream *restrict s, void *re
#endif
for (;;) {
if (s->timeout) {
+ int ret;
+#ifdef HAVE_POLL
+ struct pollfd pfd;
+
+ pfd = (struct pollfd) {.fd = s->stream_data.s,
+ .events = POLLIN};
+
+ ret = poll(&pfd, 1, (int) s->timeout);
+ if (ret == -1 || (pfd.revents & POLLERR)) {
+ s->errnr = MNSTR_READ_ERROR;
+ return -1;
+ }
+#else
struct timeval tv;
fd_set fds;
- int ret;
errno = 0;
#ifdef _MSC_VER
@@ -2512,6 +2527,7 @@ socket_read(stream *restrict s, void *re
s->errnr = MNSTR_READ_ERROR;
return -1;
}
+#endif
if (ret == 0) {
if (s->timeout_func == NULL ||
s->timeout_func()) {
s->errnr = MNSTR_TIMEOUT;
@@ -2520,7 +2536,11 @@ socket_read(stream *restrict s, void *re
continue;
}
assert(ret == 1);
+#ifdef HAVE_POLL
+ assert(pfd.revents & (POLLIN|POLLHUP));
+#else
assert(FD_ISSET(s->stream_data.s, &fds));
+#endif
}
#ifdef _MSC_VER
nr = recv(s->stream_data.s, buf, (int) size, 0);
@@ -2617,9 +2637,20 @@ static int
socket_isalive(stream *s)
{
SOCKET fd = s->stream_data.s;
- char buffer[32];
+#ifdef HAVE_POLL
+ struct pollfd pfd;
+ int ret;
+ pfd = (struct pollfd){.fd = fd};
+ if ((ret = poll(&pfd, 1, 0)) == 0)
+ return 1;
+ if (ret < 0 || pfd.revents & (POLLERR | POLLHUP))
+ return 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list