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

Reply via email to