Changeset: 045ed91ead43 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=045ed91ead43 Added Files: sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.err sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.out Modified Files: gdk/gdk_batop.c sql/test/BugTracker-2013/Tests/Cannot_Find_Column_Type.Bug-3394.stable.out sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out sql/test/Tests/setoptimizer.stable.out sql/test/Tests/systemfunctions.stable.out sql/test/leaks/Tests/check0.stable.out sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check5.stable.out Branch: default Log Message:
fixed crash in BATappend (cannot use memcpy on void bat) approved output after addition of quantile aggregate after readded groups optimizer approved output for bug 3396 (fix came from merge with feb2013, proper handling of variable overwriting in mergetable optimizer) diffs (truncated from 515 to 300 lines): diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -606,7 +606,7 @@ BATappend(BAT *b, BAT *n, bit force) } else if (b->htype == TYPE_void) { if (!ATOMvarsized(b->ttype) && BATatoms[b->ttype].atomFix == NULL && - n->ttype != TYPE_void) { + b->ttype != TYPE_void && n->ttype != TYPE_void) { /* use fast memcpy if we can */ memcpy(Tloc(b, BUNlast(b)), Tloc(n, BUNfirst(n)), diff --git a/sql/test/BugTracker-2013/Tests/Cannot_Find_Column_Type.Bug-3394.stable.out b/sql/test/BugTracker-2013/Tests/Cannot_Find_Column_Type.Bug-3394.stable.out --- a/sql/test/BugTracker-2013/Tests/Cannot_Find_Column_Type.Bug-3394.stable.out +++ b/sql/test/BugTracker-2013/Tests/Cannot_Find_Column_Type.Bug-3394.stable.out @@ -80,7 +80,7 @@ Ready. # return true; #end; % .L # table_name -% tmp1 # name +% tmp2 # name % boolean # type % 5 # length [ true ] @@ -109,7 +109,7 @@ Ready. # return true; #end; % .L # table_name -% tmp1 # name +% tmp4 # name % boolean # type % 5 # length [ true ] diff --git a/sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.err b/sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.err @@ -0,0 +1,35 @@ +stderr of test 'udf_error.Bug-3396` in directory 'sql/test/BugTracker-2013` itself: + + +# 10:07:53 > +# 10:07:53 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=37280" "--set" "mapi_usock=/var/tmp/mtest-18528/.s.monetdb.37280" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2013" "--set" "mal_listing=0" +# 10:07:53 > + +# builtin opt gdk_dbpath = /home/niels/scratch/monetdb/Linux-x86_64/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = yes +# 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 = 37280 +# cmdline opt mapi_usock = /var/tmp/mtest-18528/.s.monetdb.37280 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2013 +# cmdline opt mal_listing = 0 + +# 10:07:54 > +# 10:07:54 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-18528" "--port=37280" +# 10:07:54 > + + +# 10:07:54 > +# 10:07:54 > "Done." +# 10:07:54 > + diff --git a/sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.out b/sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2013/Tests/udf_error.Bug-3396.stable.out @@ -0,0 +1,69 @@ +stdout of test 'udf_error.Bug-3396` in directory 'sql/test/BugTracker-2013` itself: + + +# 10:07:53 > +# 10:07:53 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=37280" "--set" "mapi_usock=/var/tmp/mtest-18528/.s.monetdb.37280" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2013" "--set" "mal_listing=0" +# 10:07:53 > + +# MonetDB 5 server v11.16.0 +# This is an unreleased version +# Serving database 'mTests_sql_test_BugTracker-2013', using 4 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked +# Found 3.775 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2013 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://niels.nesco.mine.nu:37280/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-18528/.s.monetdb.37280 +# MonetDB/GIS module loaded +# MonetDB/JAQL module loaded +# MonetDB/SQL module loaded + +Ready. + +# 10:07:54 > +# 10:07:54 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-18528" "--port=37280" +# 10:07:54 > + +#CREATE TABLE TEST_UDF ( +#x float, +#y float +#); +#COPY 5 RECORDS INTO TEST_UDF from stdin USING DELIMITERS ',','\n','"' NULL AS ''; +#0.1,0.2 +#0.118605379902,0.933008230218 +#0.504782158934,0.0927420819153 +#0.36667111241,0.216447762367 +#0.538823741129,0.794452784083 +# +[ 5 ] +#CREATE FUNCTION MY_UDF (x float, y float) +#RETURNS float +#BEGIN +#DECLARE ret float; +#set ret = LOG(x/y); +#RETURN ret; +#END; +#SELECT 'udf alone',MY_UDF(0.1,0.2); +% .L1, .L1 # table_name +% L1, my_udf_single_value # name +% char, double # type +% 9, 24 # length +[ "udf alone", -0.6931471806 ] +#SELECT 'udf from table',MY_UDF(t.x,t.y) FROM TEST_UDF as t; +% .L1, sys.L1 # table_name +% L1, my_udf_x # name +% char, double # type +% 14, 24 # length +[ "udf from table", -0.6931471806 ] +[ "udf from table", -2.062612175 ] +[ "udf from table", 1.69430464 ] +[ "udf from table", 0.5271160588 ] +[ "udf from table", -0.3882650492 ] +#DROP FUNCTION MY_UDF; +#DROP TABLE TEST_UDF; + +# 10:07:54 > +# 10:07:54 > "Done." +# 10:07:54 > + diff --git a/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out b/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out --- a/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out +++ b/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out @@ -35,7 +35,7 @@ stdout of test 'set_sql_debug_64__breaki % name, fullname, default_schema # name % varchar, varchar, int # type % 9, 10, 4 # length -[ "skyserver", "sky server", 7834 ] +[ "skyserver", "sky server", 7893 ] #alter user "skyserver" set schema "sys"; #drop schema sky; #drop user skyserver; diff --git a/sql/test/Tests/setoptimizer.stable.out b/sql/test/Tests/setoptimizer.stable.out --- a/sql/test/Tests/setoptimizer.stable.out +++ b/sql/test/Tests/setoptimizer.stable.out @@ -66,7 +66,7 @@ Ready. % clob, clob, clob # type % 15, 469, 12 # length [ "minimal_pipe", "optimizer.inline();optimizer.remap();optimizer.deadcode();optimizer.multiplex();optimizer.garbageCollector();", "stable" ] -[ "default_pipe", "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptySet();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();", "stable" ] +[ "default_pipe", "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptySet();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.groups();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();", "stable" ] [ "no_mitosis_pipe", "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptySet();optimizer.aliases();optimizer.pushselect();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();", "stable" ] [ "sequential_pipe", "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptySet();optimizer.aliases();optimizer.pushselect();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();", "stable" ] [ "recycler_pipe", "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptySet();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.recycler();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();", "stable" ] diff --git a/sql/test/Tests/systemfunctions.stable.out b/sql/test/Tests/systemfunctions.stable.out --- a/sql/test/Tests/systemfunctions.stable.out +++ b/sql/test/Tests/systemfunctions.stable.out @@ -294,6 +294,8 @@ Ready. [ "sys", "median", 1, "wrd", "" ] [ "sys", "median", 0, "bigint", "create aggregate median(val bigint) returns bigint\n\texternal name \"aggr\".\"median\";" ] [ "sys", "median", 1, "bigint", "" ] +[ "sys", "median", 0, "decimal", "create aggregate median(val decimal) returns decimal\n \texternal name \"aggr\".\"median\";" ] +[ "sys", "median", 1, "decimal", "" ] [ "sys", "median", 0, "real", "create aggregate median(val real) returns real\n\texternal name \"aggr\".\"median\";" ] [ "sys", "median", 1, "real", "" ] [ "sys", "median", 0, "double", "create aggregate median(val double) returns double\n\texternal name \"aggr\".\"median\";" ] @@ -365,6 +367,39 @@ Ready. [ "sys", "polygonfromtext", 0, "polygon", "-- alias\ncreate function polygonfromtext(wkt string, srid smallint) returns polygon external name geom.\"PolyFromText\";" ] [ "sys", "polygonfromtext", 1, "clob", "" ] [ "sys", "polygonfromtext", 2, "smallint", "" ] +[ "sys", "quantile", 0, "tinyint", "create aggregate quantile(val tinyint, q double) returns tinyint\n \texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "tinyint", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "smallint", "create aggregate quantile(val smallint, q double) returns smallint\n \texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "smallint", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "int", "create aggregate quantile(val integer, q double) returns integer\n \texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "int", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "wrd", "create aggregate quantile(val wrd, q double) returns wrd\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "wrd", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "bigint", "create aggregate quantile(val bigint, q double) returns bigint\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "bigint", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "decimal", "create aggregate quantile(val decimal, q double) returns decimal\n \texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "decimal", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "real", "create aggregate quantile(val real, q double) returns real\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "real", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "double", "create aggregate quantile(val double, q double) returns double\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "double", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "date", "create aggregate quantile(val date, q double) returns date\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "date", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "time", "create aggregate quantile(val time, q double) returns time\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "time", "" ] +[ "sys", "quantile", 2, "double", "" ] +[ "sys", "quantile", 0, "timestamp", "create aggregate quantile(val timestamp, q double) returns timestamp\n\texternal name \"aggr\".\"quantile\";" ] +[ "sys", "quantile", 1, "timestamp", "" ] +[ "sys", "quantile", 2, "double", "" ] [ "sys", "querycache", 0, "table", "-- SQL QUERY CACHE\n-- The SQL query cache returns a table with the query plans kept\n\ncreate function sys.querycache() \n\treturns table (query string, count int) \n\texternal name sql.dump_cache;" ] [ "sys", "querylog", 0, "clob", "-- Trace the SQL input\ncreate procedure sys.querylog(filename string) \n\texternal name sql.logfile;" ] [ "sys", "querylog_calls", 0, "table", "-- Each query call is stored in the table calls\n-- At regular intervals the query history table should be cleaned.\n-- This can be done manually on the SQL console, or be integrated\n-- in the keepQuery and keepCall upon need.\n-- The parameters are geared at understanding the resource claims\n-- They reflect the effect of the total workload mix during execution.\n-- The 'cpu' gives the average cpu load percentage over all cores on the \n-- server during execution phase. \n-- increasing cpu load indicates better use of multi-cores.\n-- The 'io' indicate IOs during complete query run.\n-- The 'space' is the total amount of intermediates created in MB.\n-- Reducing the space component improves performance/\n-- All timing in usec and all storage in bytes.\n\ncreate function sys.querylog_calls()\nreturns table(\n\tid oid,\t\t\t\t -- references query plan\n\t\"start\" timestamp,\t-- time the statement was started\n\t\"stop\" timestamp,\t-- time th e statement was completely finished\n\targuments string,\t-- actual call structure\n\ttuples wrd,\t\t\t-- number of tuples in the result set\n\trun bigint,\t\t-- time spent (in usec) until the result export\n\tship bigint,\t\t-- time spent (in usec) to ship the result set\n\tcpu int, \t\t-- average cpu load percentage during execution\n\tio int,\t\t\t-- percentage time waiting for IO to finish \n\tspace bigint\t\t-- total storage size of intermediates created (in MB)\n)\nexternal name sql.querylog_calls;" ] diff --git a/sql/test/leaks/Tests/check0.stable.out b/sql/test/leaks/Tests/check0.stable.out --- a/sql/test/leaks/Tests/check0.stable.out +++ b/sql/test/leaks/Tests/check0.stable.out @@ -65,7 +65,7 @@ Ready. % L1, L2 # name % char, wrd # type % 9, 3 # length -[ "transient", 362 ] +[ "transient", 363 ] #select 'persistent', count(*) from bbp() as bbp where kind like 'pers%'; % .L1, .L2 # table_name % L1, L2 # name diff --git a/sql/test/leaks/Tests/check1.stable.out b/sql/test/leaks/Tests/check1.stable.out --- a/sql/test/leaks/Tests/check1.stable.out +++ b/sql/test/leaks/Tests/check1.stable.out @@ -35,8 +35,8 @@ Ready. [ "oid", "bit", 72 ] [ "oid", "bit", 72 ] [ "oid", "bit", 418 ] -[ "oid", "bit", 1254 ] -[ "oid", "bit", 1254 ] +[ "oid", "bit", 1266 ] +[ "oid", "bit", 1266 ] [ "oid", "int", 0 ] [ "oid", "int", 0 ] [ "oid", "int", 0 ] @@ -90,15 +90,15 @@ Ready. [ "oid", "int", 418 ] [ "oid", "int", 418 ] [ "oid", "int", 418 ] -[ "oid", "int", 1254 ] -[ "oid", "int", 1254 ] -[ "oid", "int", 1254 ] -[ "oid", "int", 1254 ] -[ "oid", "int", 3388 ] -[ "oid", "int", 3388 ] -[ "oid", "int", 3388 ] -[ "oid", "int", 3388 ] -[ "oid", "int", 3388 ] +[ "oid", "int", 1266 ] +[ "oid", "int", 1266 ] +[ "oid", "int", 1266 ] +[ "oid", "int", 1266 ] +[ "oid", "int", 3423 ] +[ "oid", "int", 3423 ] +[ "oid", "int", 3423 ] +[ "oid", "int", 3423 ] +[ "oid", "int", 3423 ] [ "oid", "lng", 0 ] [ "oid", "lng", 0 ] [ "oid", "lng", 0 ] @@ -179,11 +179,11 @@ Ready. [ "oid", "str", 418 ] [ "oid", "str", 418 ] [ "oid", "str", 418 ] -[ "oid", "str", 1254 ] -[ "oid", "str", 1254 ] -[ "oid", "str", 1254 ] -[ "oid", "str", 3388 ] -[ "oid", "str", 3388 ] +[ "oid", "str", 1266 ] +[ "oid", "str", 1266 ] +[ "oid", "str", 1266 ] +[ "oid", "str", 3423 ] +[ "oid", "str", 3423 ] [ "oid", "timestamp", 0 ] #select 'transient', count(*) from bbp() as bbp where kind like 'tran%'; % .L1, .L2 # table_name diff --git a/sql/test/leaks/Tests/check2.stable.out b/sql/test/leaks/Tests/check2.stable.out --- a/sql/test/leaks/Tests/check2.stable.out +++ b/sql/test/leaks/Tests/check2.stable.out @@ -35,8 +35,8 @@ Ready. [ "oid", "bit", 72 ] [ "oid", "bit", 72 ] [ "oid", "bit", 418 ] -[ "oid", "bit", 1254 ] -[ "oid", "bit", 1254 ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list