Changeset: 65e2a349fdcc for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=65e2a349fdcc Added Files: sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.sql sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.err sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.out Modified Files: gdk/gdk_aggr.c monetdb5/mal/mal_box.c monetdb5/modules/atoms/mtime.c sql/test/BugTracker-2013/Tests/All sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out tools/mserver/mserver5.c Branch: default Log Message:
Merge with Feb2013 branch. diffs (truncated from 312 to 300 lines): diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -2145,7 +2145,7 @@ BATgroupmedian(BAT *b, BAT *g, BAT *e, B } /* ---------------------------------------------------------------------- */ -/* standard deviation (both biases and non-biased) */ +/* standard deviation (both biased and non-biased) */ #define AGGR_STDEV_SINGLE(TYPE) \ do { \ diff --git a/monetdb5/mal/mal_box.c b/monetdb5/mal/mal_box.c --- a/monetdb5/mal/mal_box.c +++ b/monetdb5/mal/mal_box.c @@ -342,7 +342,6 @@ closeBox(str name, int flag) if ((box = findBox(name))) { saveBox(box, flag); - MT_lock_destroy(&box->lock); return 0; } return -1; diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c --- a/monetdb5/modules/atoms/mtime.c +++ b/monetdb5/modules/atoms/mtime.c @@ -1476,7 +1476,7 @@ date_adddays(date *ret, date *v, int *de } /* returns the date that comes a number of months after 'v' (or before - * iff *delta < 0). */ + * if *delta < 0). */ static str date_addmonths(date *ret, date *v, int *delta) { @@ -1490,14 +1490,18 @@ date_addmonths(date *ret, date *v, int * while (z > 0) { z--; x = MONTHDAYS(m, y); - if (++m == 13) + if (++m == 13) { m = 1; + y++; + } date_adddays(ret, ret, &x); } while (z < 0) { z++; - if (--m == 0) + if (--m == 0) { m = 12; + y--; + } x = -MONTHDAYS(m, y); date_adddays(ret, ret, &x); } diff --git a/sql/test/BugTracker-2013/Tests/All b/sql/test/BugTracker-2013/Tests/All --- a/sql/test/BugTracker-2013/Tests/All +++ b/sql/test/BugTracker-2013/Tests/All @@ -1,3 +1,4 @@ HAVE_PHP?php-size-limit-bug select-around-zero.Bug-3220 segfault_in_aggregation.Bug-3225 +subtract-one-year.Bug-3215 diff --git a/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.sql b/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.sql @@ -0,0 +1,1 @@ +select cast ('2013-01-01' as date) + interval '-1' year; diff --git a/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.err b/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.err @@ -0,0 +1,37 @@ +stderr of test 'subtract-one-year.Bug-3215` in directory 'test/BugTracker-2013` itself: + + +# 10:20:45 > +# 10:20:45 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/ufs/sjoerd/Monet-stable/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=31449" "--set" "mapi_usock=/var/tmp/mtest-17694/.s.monetdb.31449" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_test_BugTracker-2013" "--set" "mal_listing=0" +# 10:20:45 > + +# builtin opt gdk_dbname = demo +# builtin opt gdk_dbfarm = /ufs/sjoerd/Monet-stable/var/monetdb5/dbfarm +# 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 gdk_dbfarm = /ufs/sjoerd/Monet-stable/var/MonetDB +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 31449 +# cmdline opt mapi_usock = /var/tmp/mtest-17694/.s.monetdb.31449 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbname = mTests_test_BugTracker-2013 +# cmdline opt mal_listing = 0 + +# 10:20:45 > +# 10:20:45 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-17694" "--port=31449" +# 10:20:45 > + + +# 10:20:46 > +# 10:20:46 > "Done." +# 10:20:46 > + diff --git a/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.out b/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.out @@ -0,0 +1,60 @@ +stdout of test 'subtract-one-year.Bug-3215` in directory 'test/BugTracker-2013` itself: + + +# 10:20:45 > +# 10:20:45 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/ufs/sjoerd/Monet-stable/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=31449" "--set" "mapi_usock=/var/tmp/mtest-17694/.s.monetdb.31449" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_test_BugTracker-2013" "--set" "mal_listing=0" +# 10:20:45 > + +# MonetDB 5 server v11.13.10 (hg id: 4ee6c3c855fa+) +# This is an unreleased version +# Serving database 'mTests_test_BugTracker-2013', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked +# Found 15.629 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://madrid.ins.cwi.nl:31449/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-17694/.s.monetdb.31449 +# MonetDB/GIS module loaded +# MonetDB/JAQL module loaded +# MonetDB/SQL 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_history.sql +# loading sql script: 16_tracelog.sql +# loading sql script: 17_compress.sql +# loading sql script: 18_dictionary.sql +# loading sql script: 19_cluster.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: 39_analytics.sql +# loading sql script: 40_geom.sql +# loading sql script: 80_udf.sql +# loading sql script: 99_system.sql + +# 10:20:45 > +# 10:20:45 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-17694" "--port=31449" +# 10:20:45 > + +#select cast ('2013-01-01' as date) + interval '-1' year; +% . # table_name +% sql_add_single_value # name +% date # type +% 10 # length +[ 2012-01-01 ] + +# 10:20:46 > +# 10:20:46 > "Done." +# 10:20:46 > + diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out --- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out +++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out @@ -23,16 +23,43 @@ Running database upgrade commands: drop function sys.zorder_slice; Running database upgrade commands: -create aggregate sys.stddev(val TINYINT) returns TINYINT external name "aggr"."stddev"; -create aggregate sys.stddev(val SMALLINT) returns SMALLINT external name "aggr"."stddev"; -create aggregate sys.stddev(val INTEGER) returns INTEGER external name "aggr"."stddev"; -create aggregate sys.stddev(val BIGINT) returns BIGINT external name "aggr"."stddev"; -create aggregate sys.stddev(val REAL) returns REAL external name "aggr"."stddev"; -create aggregate sys.stddev(val DOUBLE) returns DOUBLE external name "aggr"."stddev"; -create aggregate sys.stddev(val DATE) returns DATE external name "aggr"."stddev"; -create aggregate sys.stddev(val TIME) returns TIME external name "aggr"."stddev"; -create aggregate sys.stddev(val TIMESTAMP) returns TIMESTAMP external name "aggr"."stddev"; -insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name = 'stddev' and f.type = 3 and f.schema_id = s.id and s.name = 'sys'); +create aggregate sys.stddev_samp(val TINYINT) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val SMALLINT) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val INTEGER) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val BIGINT) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val REAL) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val DOUBLE) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val DATE) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val TIME) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val TIMESTAMP) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_pop(val TINYINT) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val SMALLINT) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val INTEGER) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val BIGINT) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val REAL) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val DOUBLE) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val DATE) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val TIME) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val TIMESTAMP) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.var_samp(val TINYINT) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val SMALLINT) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val INTEGER) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val BIGINT) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val REAL) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val DOUBLE) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val DATE) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val TIME) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val TIMESTAMP) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_pop(val TINYINT) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val SMALLINT) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val INTEGER) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val BIGINT) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val REAL) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val DOUBLE) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val DATE) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val TIME) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val TIMESTAMP) returns DOUBLE external name "aggr"."variancep"; +insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('stddev_samp', 'stddev_pop', 'var_samp', 'var_pop') and f.type = 3 and f.schema_id = s.id and s.name = 'sys'); # 15:17:06 > diff --git a/sql/test/testdb-upgrade/Tests/upgrade.stable.out b/sql/test/testdb-upgrade/Tests/upgrade.stable.out --- a/sql/test/testdb-upgrade/Tests/upgrade.stable.out +++ b/sql/test/testdb-upgrade/Tests/upgrade.stable.out @@ -23,16 +23,43 @@ Running database upgrade commands: drop function sys.zorder_slice; Running database upgrade commands: -create aggregate sys.stddev(val TINYINT) returns TINYINT external name "aggr"."stddev"; -create aggregate sys.stddev(val SMALLINT) returns SMALLINT external name "aggr"."stddev"; -create aggregate sys.stddev(val INTEGER) returns INTEGER external name "aggr"."stddev"; -create aggregate sys.stddev(val BIGINT) returns BIGINT external name "aggr"."stddev"; -create aggregate sys.stddev(val REAL) returns REAL external name "aggr"."stddev"; -create aggregate sys.stddev(val DOUBLE) returns DOUBLE external name "aggr"."stddev"; -create aggregate sys.stddev(val DATE) returns DATE external name "aggr"."stddev"; -create aggregate sys.stddev(val TIME) returns TIME external name "aggr"."stddev"; -create aggregate sys.stddev(val TIMESTAMP) returns TIMESTAMP external name "aggr"."stddev"; -insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name = 'stddev' and f.type = 3 and f.schema_id = s.id and s.name = 'sys'); +create aggregate sys.stddev_samp(val TINYINT) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val SMALLINT) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val INTEGER) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val BIGINT) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val REAL) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val DOUBLE) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val DATE) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val TIME) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_samp(val TIMESTAMP) returns DOUBLE external name "aggr"."stdev"; +create aggregate sys.stddev_pop(val TINYINT) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val SMALLINT) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val INTEGER) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val BIGINT) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val REAL) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val DOUBLE) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val DATE) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val TIME) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.stddev_pop(val TIMESTAMP) returns DOUBLE external name "aggr"."stdevp"; +create aggregate sys.var_samp(val TINYINT) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val SMALLINT) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val INTEGER) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val BIGINT) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val REAL) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val DOUBLE) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val DATE) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val TIME) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_samp(val TIMESTAMP) returns DOUBLE external name "aggr"."variance"; +create aggregate sys.var_pop(val TINYINT) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val SMALLINT) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val INTEGER) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val BIGINT) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val REAL) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val DOUBLE) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val DATE) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val TIME) returns DOUBLE external name "aggr"."variancep"; +create aggregate sys.var_pop(val TIMESTAMP) returns DOUBLE external name "aggr"."variancep"; +insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('stddev_samp', 'stddev_pop', 'var_samp', 'var_pop') and f.type = 3 and f.schema_id = s.id and s.name = 'sys'); # 14:40:54 > diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c --- a/tools/mserver/mserver5.c +++ b/tools/mserver/mserver5.c @@ -419,7 +419,7 @@ main(int argc, char **av) setlen = mo_add_option(&set, setlen, opt_cmdline, "gdk_debug", buf); } - monet_script = (str *) GDKmalloc(sizeof(str) * (argc + 1)); + monet_script = (str *) malloc(sizeof(str) * (argc + 1)); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list