Changeset: b00f98613fab for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b00f98613fab Added Files: sql/backends/monet5/Tests/rapi18.stable.err sql/backends/monet5/Tests/rapi18.stable.out Modified Files: sql/backends/monet5/Tests/rapi18.sql Branch: Jul2015 Log Message:
R UDF aggregation group size wrong - test case diffs (truncated from 1185 to 300 lines): diff --git a/sql/backends/monet5/Tests/rapi18.sql b/sql/backends/monet5/Tests/rapi18.sql --- a/sql/backends/monet5/Tests/rapi18.sql +++ b/sql/backends/monet5/Tests/rapi18.sql @@ -1,26 +1,23 @@ -- https://www.monetdb.org/pipermail/users-list/2015-October/008472.html +-- used this to create test output +--set optimizer='sequential_pipe'; START TRANSACTION; -- the (fake) aggregate function CREATE AGGREGATE rapi18(n int) RETURNS DOUBLE LANGUAGE R { - sow_aggr <- function(df) { 42.0 } - aggregate(n, list(aggr_group), sow_aggr)$x + aggregate(x=n, by=list(aggr_group), FUN=function(df){42})$x }; -- function to generate input data CREATE FUNCTION rapi18datagen() RETURNS TABLE (g int, n int) LANGUAGE R { - g <- rep(1:500, rep(400,500)) + g <- rep(1:500, rep(400, 500)) data.frame(g, 10L) }; -CREATE TABLE rapi18good as select * from rapi18datagen() limit 199999 with data; CREATE TABLE rapi18bad as select * from rapi18datagen() limit 200000 with data; -select count(distinct g) from rapi18good; select count(distinct g) from rapi18bad; - -select g, rapi18(n) from rapi18good group by g; select g, rapi18(n) from rapi18bad group by g; ROLLBACK; diff --git a/sql/backends/monet5/Tests/rapi18.stable.err b/sql/backends/monet5/Tests/rapi18.stable.err new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/rapi18.stable.err @@ -0,0 +1,37 @@ +stderr of test 'rapi18` in directory 'sql/backends/monet5` itself: + + +# 17:22:19 > +# 17:22:19 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33608" "--set" "mapi_usock=/var/tmp/mtest-93553/.s.monetdb.33608" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_sql_backends_monet5" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 17:22:19 > + +# builtin opt gdk_dbpath = /Users/hannes/monetdb-install/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 33608 +# cmdline opt mapi_usock = /var/tmp/mtest-93553/.s.monetdb.33608 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /Users/hannes/monetdb-install/var/MonetDB/mTests_sql_backends_monet5 +# cmdline opt mal_listing = 0 +# cmdline opt embedded_r = yes +# cmdline opt gdk_debug = 536870922 + +# 17:22:20 > +# 17:22:20 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-93553" "--port=33608" +# 17:22:20 > + + +# 17:22:21 > +# 17:22:21 > "Done." +# 17:22:21 > + diff --git a/sql/backends/monet5/Tests/rapi18.stable.out b/sql/backends/monet5/Tests/rapi18.stable.out new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/rapi18.stable.out @@ -0,0 +1,1104 @@ +stdout of test 'rapi18` in directory 'sql/backends/monet5` itself: + + +# 17:22:19 > +# 17:22:19 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33608" "--set" "mapi_usock=/var/tmp/mtest-93553/.s.monetdb.33608" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_sql_backends_monet5" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 17:22:19 > + +# MonetDB 5 server v11.21.8 +# This is an unreleased version +# Serving database 'mTests_sql_backends_monet5', using 4 threads +# Compiled for x86_64-apple-darwin15.0.0/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 16.000 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://dakar.da.cwi.nl:33608/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-93553/.s.monetdb.33608 +# MonetDB/GIS module loaded +# Start processing logs sql/sql_logs version 52200 +# Finished processing logs sql/sql_logs +# MonetDB/SQL module loaded +# MonetDB/R module loaded + +Ready. +# SQL catalog created, loading sql scripts once +# loading sql script: 09_like.sql +# loading sql script: 10_math.sql +# loading sql script: 11_times.sql +# loading sql script: 12_url.sql +# loading sql script: 13_date.sql +# loading sql script: 14_inet.sql +# loading sql script: 15_querylog.sql +# loading sql script: 16_tracelog.sql +# loading sql script: 17_temporal.sql +# loading sql script: 20_vacuum.sql +# loading sql script: 21_dependency_functions.sql +# loading sql script: 22_clients.sql +# loading sql script: 23_skyserver.sql +# loading sql script: 24_zorder.sql +# loading sql script: 25_debug.sql +# loading sql script: 26_sysmon.sql +# loading sql script: 27_rejects.sql +# loading sql script: 39_analytics.sql +# loading sql script: 39_analytics_hge.sql +# loading sql script: 40_geom.sql +# loading sql script: 40_json.sql +# loading sql script: 40_json_hge.sql +# loading sql script: 41_md5sum.sql +# loading sql script: 45_uuid.sql +# loading sql script: 46_gsl.sql +# loading sql script: 51_sys_schema_extension.sql +# loading sql script: 72_fits.sql +# loading sql script: 75_storagemodel.sql +# loading sql script: 80_statistics.sql +# loading sql script: 80_udf.sql +# loading sql script: 80_udf_hge.sql +# loading sql script: 90_generator.sql +# loading sql script: 90_generator_hge.sql +# loading sql script: 99_system.sql + +# 17:22:20 > +# 17:22:20 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-93553" "--port=33608" +# 17:22:20 > + +#set optimizer='sequential_pipe'; +#START TRANSACTION; +#CREATE AGGREGATE rapi18(n int) RETURNS DOUBLE LANGUAGE R { +# sow_aggr <- function(df) { 42.0 } +# aggregate(n, list(aggr_group), sow_aggr)$x +#}; +#CREATE FUNCTION rapi18datagen() RETURNS TABLE (g int, n int) LANGUAGE R { +# g <- rep(1:500, rep(400,500)) +# data.frame(g, 10L) +#}; +#CREATE TABLE rapi18good as select * from rapi18datagen() limit 199999 with data; +#CREATE TABLE rapi18bad as select * from rapi18datagen() limit 200000 with data; +#select count(distinct g) from rapi18good; +% sys.L1 # table_name +% L1 # name +% wrd # type +% 3 # length +[ 500 ] +#select count(distinct g) from rapi18bad; +% sys.L1 # table_name +% L1 # name +% wrd # type +% 3 # length +[ 500 ] +#select g, rapi18(n) from rapi18good group by g; +% sys.rapi18good, sys.L1 # table_name +% g, L1 # name +% int, double # type +% 3, 24 # length +[ 1, 42 ] +[ 2, 42 ] +[ 3, 42 ] +[ 4, 42 ] +[ 5, 42 ] +[ 6, 42 ] +[ 7, 42 ] +[ 8, 42 ] +[ 9, 42 ] +[ 10, 42 ] +[ 11, 42 ] +[ 12, 42 ] +[ 13, 42 ] +[ 14, 42 ] +[ 15, 42 ] +[ 16, 42 ] +[ 17, 42 ] +[ 18, 42 ] +[ 19, 42 ] +[ 20, 42 ] +[ 21, 42 ] +[ 22, 42 ] +[ 23, 42 ] +[ 24, 42 ] +[ 25, 42 ] +[ 26, 42 ] +[ 27, 42 ] +[ 28, 42 ] +[ 29, 42 ] +[ 30, 42 ] +[ 31, 42 ] +[ 32, 42 ] +[ 33, 42 ] +[ 34, 42 ] +[ 35, 42 ] +[ 36, 42 ] +[ 37, 42 ] +[ 38, 42 ] +[ 39, 42 ] +[ 40, 42 ] +[ 41, 42 ] +[ 42, 42 ] +[ 43, 42 ] +[ 44, 42 ] +[ 45, 42 ] +[ 46, 42 ] +[ 47, 42 ] +[ 48, 42 ] +[ 49, 42 ] +[ 50, 42 ] +[ 51, 42 ] +[ 52, 42 ] +[ 53, 42 ] +[ 54, 42 ] +[ 55, 42 ] +[ 56, 42 ] +[ 57, 42 ] +[ 58, 42 ] +[ 59, 42 ] +[ 60, 42 ] +[ 61, 42 ] +[ 62, 42 ] +[ 63, 42 ] +[ 64, 42 ] +[ 65, 42 ] +[ 66, 42 ] +[ 67, 42 ] +[ 68, 42 ] +[ 69, 42 ] +[ 70, 42 ] +[ 71, 42 ] +[ 72, 42 ] +[ 73, 42 ] +[ 74, 42 ] +[ 75, 42 ] +[ 76, 42 ] +[ 77, 42 ] +[ 78, 42 ] +[ 79, 42 ] +[ 80, 42 ] +[ 81, 42 ] +[ 82, 42 ] +[ 83, 42 ] +[ 84, 42 ] +[ 85, 42 ] +[ 86, 42 ] +[ 87, 42 ] +[ 88, 42 ] +[ 89, 42 ] +[ 90, 42 ] +[ 91, 42 ] +[ 92, 42 ] +[ 93, 42 ] +[ 94, 42 ] +[ 95, 42 ] +[ 96, 42 ] +[ 97, 42 ] +[ 98, 42 ] +[ 99, 42 ] +[ 100, 42 ] +[ 101, 42 ] +[ 102, 42 ] +[ 103, 42 ] +[ 104, 42 ] +[ 105, 42 ] +[ 106, 42 ] +[ 107, 42 ] +[ 108, 42 ] +[ 109, 42 ] +[ 110, 42 ] +[ 111, 42 ] +[ 112, 42 ] +[ 113, 42 ] +[ 114, 42 ] +[ 115, 42 ] +[ 116, 42 ] +[ 117, 42 ] +[ 118, 42 ] +[ 119, 42 ] +[ 120, 42 ] +[ 121, 42 ] +[ 122, 42 ] +[ 123, 42 ] +[ 124, 42 ] +[ 125, 42 ] +[ 126, 42 ] _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
