Changeset: 04a5ee75ed95 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=04a5ee75ed95 Added Files: sql/test/BugTracker-2016/Tests/NULLtinyintBAT.bin sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.sql sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.err sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out sql/test/BugTracker-2016/Tests/noNULLtinyintBAT.bin sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.bat sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.sh sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.stable.err sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.stable.out sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.stable.out.Windows sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937.reqtests sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937.sql.in sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937.stable.err sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937.stable.out Modified Files: MonetDB.spec clients/Tests/SQL-dump.stable.out.int128 gdk/gdk_bat.c sql/backends/monet5/sql_statistics.c sql/common/sql_types.c sql/server/rel_updates.c sql/storage/bat/bat_utils.c sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out sql/test/BugTracker-2016/Tests/All sql/test/VOC/Tests/median.Bug-3096.stable.out sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out sql/test/pg_regress/Tests/date.stable.out Branch: default Log Message:
Merge with Jul2015 branch. diffs (truncated from 737 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -102,7 +102,7 @@ Summary: MonetDB - Monet Database Manage Vendor: MonetDB BV <i...@monetdb.org> Group: Applications/Databases -License: MPL - http://www.monetdb.org/Legal/MonetDBLicense +License: MPLv2.0 URL: http://www.monetdb.org/ Source: http://dev.monetdb.org/downloads/sources/Jul2015-SP2/%{name}-%{version}.tar.bz2 diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -318,6 +318,11 @@ BATattach(int tt, const char *heapfile, BATkey(bn, TRUE); BATsetcapacity(bn, cap); BATsetcount(bn, cap); + /* + * Unless/until we invest in a scan to check that there indeed + * are no NIL values, we cannot safely assume there are none. + */ + bn->T->nonil = 0; if (cap > 1) { bn->tsorted = 0; bn->trevsorted = 0; diff --git a/sql/backends/monet5/sql_statistics.c b/sql/backends/monet5/sql_statistics.c --- a/sql/backends/monet5/sql_statistics.c +++ b/sql/backends/monet5/sql_statistics.c @@ -38,6 +38,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb, int argc = pci->argc; int width = 0; int minmax = *getArgReference_int(stk, pci, 1); + int sfnd = 0, tfnd = 0, cfnd = 0; if (msg != MAL_SUCCEED || (msg = checkSQLContext(cntxt)) != NULL) return msg; @@ -69,6 +70,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb, if (sch && strcmp(sch, b->name)) continue; + sfnd = 1; if (s->tables.set) for (ntab = (s)->tables.set->h; ntab; ntab = ntab->next) { sql_base *bt = ntab->data; @@ -76,6 +78,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb, if (tbl && strcmp(bt->name, tbl)) continue; + tfnd = 1; if (isTable(t) && t->columns.set) for (ncol = (t)->columns.set->h; ncol; ncol = ncol->next) { sql_base *bc = ncol->data; @@ -90,6 +93,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb, if (col && strcmp(bc->name, col)) continue; snprintf(dquery, 8192, "delete from sys.statistics where \"column_id\" = %d;", c->base.id); + cfnd = 1; if (samplesize > 0) { bsample = BATsample(bn, (BUN) samplesize); } else @@ -162,5 +166,11 @@ sql_analyze(Client cntxt, MalBlkPtr mb, GDKfree(query); GDKfree(maxval); GDKfree(minval); + if (sch && !sfnd) + throw(SQL, "analyze", "Schema '%s' does not exist", sch); + if (tbl && !tfnd) + throw(SQL, "analyze", "Table '%s' does not exist", tbl); + if (col && !cfnd) + throw(SQL, "analyze", "Column '%s' does not exist", col); return MAL_SUCCEED; } diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c --- a/sql/common/sql_types.c +++ b/sql/common/sql_types.c @@ -1594,7 +1594,7 @@ sqltypeinit( sql_allocator *sa) sql_create_func(sa, "localtime", "sql", "current_time", NULL, NULL, TME, SCALE_NONE); sql_create_func(sa, "localtimestamp", "sql", "current_timestamp", NULL, NULL, TMESTAMP, SCALE_NONE); - sql_create_func(sa, "sql_sub", "mtime", "diff", DTE, DTE, MONINT, SCALE_FIX); + sql_create_func(sa, "sql_sub", "mtime", "diff", DTE, DTE, INT, SCALE_FIX); sql_create_func(sa, "sql_sub", "mtime", "diff", TMETZ, TMETZ, SECINT, SCALE_NONE); sql_create_func(sa, "sql_sub", "mtime", "diff", TME, TME, SECINT, SCALE_FIX); sql_create_func(sa, "sql_sub", "mtime", "diff", TMESTAMPTZ, TMESTAMPTZ, SECINT, SCALE_NONE); diff --git a/sql/storage/bat/bat_utils.c b/sql/storage/bat/bat_utils.c --- a/sql/storage/bat/bat_utils.c +++ b/sql/storage/bat/bat_utils.c @@ -206,7 +206,7 @@ tr_find_table( sql_trans *tr, sql_table nt = find_sql_table_id(s, t->base.id); else nt = find_sql_table(s, t->base.name); - assert(nt->base.id == t->base.id); + assert(!nt || nt->base.id == t->base.id); tr = tr->parent; } return nt; diff --git a/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out b/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out --- a/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out +++ b/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out @@ -27,13 +27,13 @@ Ready. #select current_date - current_date; % .L # table_name % sql_sub_current_date # name -% month_interval # type +% int # type % 1 # length [ 0 ] #select current_date() - current_date(); % .L # table_name % sql_sub_current_date # name -% month_interval # type +% int # type % 1 # length [ 0 ] diff --git a/sql/test/BugTracker-2016/Tests/All b/sql/test/BugTracker-2016/Tests/All --- a/sql/test/BugTracker-2016/Tests/All +++ b/sql/test/BugTracker-2016/Tests/All @@ -8,3 +8,6 @@ create_table_from_complex_query.Bug-3921 projectionpath-prefix.Bug prepare-utf8.Bug-3930 case-with-string-Bug.3932 +date_calculation_and_comparison_wrong_results.Bug-3940 +wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare +wrong-nonil-property-with-copy-binary-into.Bug-3937 diff --git a/sql/test/BugTracker-2016/Tests/NULLtinyintBAT.bin b/sql/test/BugTracker-2016/Tests/NULLtinyintBAT.bin new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ab0207c9411be9e16b479ec563687310c28e9072 GIT binary patch literal 3 Kc${NsU;+RE1ptEp diff --git a/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.sql b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.sql @@ -0,0 +1,8 @@ +CREATE TABLE foo (dat1 DATE, dat2 DATE); +INSERT INTO foo VALUES ('2016-01-01', '2016-01-02'); +INSERT INTO foo VALUES ('2016-01-01', '2016-01-01'); +INSERT INTO foo VALUES ('2016-01-01', '2016-01-31'); + +SELECT (dat2-dat1), (dat2-dat1) < 10 FROM foo; + +DROP TABLE foo; diff --git a/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.err b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.err @@ -0,0 +1,36 @@ +stderr of test 'date_calculation_and_comparison_wrong_results.Bug-3940` in directory 'sql/test/BugTracker-2016` itself: + + +# 23:40:42 > +# 23:40:42 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35303" "--set" "mapi_usock=/var/tmp/mtest-68549/.s.monetdb.35303" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/jennie/scratch/monet-install/Jul2015/debug/var/MonetDB/mTests_sql_test_BugTracker-2016" "--set" "mal_listing=0" +# 23:40:42 > + +# builtin opt gdk_dbpath = /Users/jennie/scratch/monet-install/Jul2015/debug/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 = 35303 +# cmdline opt mapi_usock = /var/tmp/mtest-68549/.s.monetdb.35303 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /Users/jennie/scratch/monet-install/Jul2015/debug/var/MonetDB/mTests_sql_test_BugTracker-2016 +# cmdline opt mal_listing = 0 +# cmdline opt gdk_debug = 536870922 + +# 23:40:42 > +# 23:40:42 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-68549" "--port=35303" +# 23:40:42 > + + +# 23:40:42 > +# 23:40:42 > "Done." +# 23:40:42 > + diff --git a/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out @@ -0,0 +1,84 @@ +stdout of test 'date_calculation_and_comparison_wrong_results.Bug-3940` in directory 'sql/test/BugTracker-2016` itself: + + +# 23:40:42 > +# 23:40:42 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35303" "--set" "mapi_usock=/var/tmp/mtest-68549/.s.monetdb.35303" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/jennie/scratch/monet-install/Jul2015/debug/var/MonetDB/mTests_sql_test_BugTracker-2016" "--set" "mal_listing=0" +# 23:40:42 > + +# MonetDB 5 server v11.21.14 +# This is an unreleased version +# Serving database 'mTests_sql_test_BugTracker-2016', using 4 threads +# Compiled for x86_64-apple-darwin15.3.0/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 12.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://Loeki.local:35303/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-68549/.s.monetdb.35303 +# MonetDB/GIS module loaded +# Start processing logs sql/sql_logs version 52200 +# Finished processing logs sql/sql_logs +# 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_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 + +# 23:40:42 > +# 23:40:42 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-68549" "--port=35303" +# 23:40:42 > + +#CREATE TABLE foo (dat1 DATE, dat2 DATE); +#INSERT INTO foo VALUES ('2016-01-01', '2016-01-02'); +[ 1 ] +#INSERT INTO foo VALUES ('2016-01-01', '2016-01-01'); +[ 1 ] +#INSERT INTO foo VALUES ('2016-01-01', '2016-01-31'); +[ 1 ] +#SELECT (dat2-dat1), (dat2-dat1) < 10 FROM foo; +% sys.L1, sys.L1 # table_name +% L1, <_sql_sub_dat2 # name +% int, boolean # type +% 2, 5 # length +[ 1, true ] +[ 0, true ] +[ 30, false ] +#DROP TABLE foo; + +# 23:40:42 > +# 23:40:42 > "Done." +# 23:40:42 > + diff --git a/sql/test/BugTracker-2016/Tests/noNULLtinyintBAT.bin b/sql/test/BugTracker-2016/Tests/noNULLtinyintBAT.bin new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8352675d67aed6625ece79af41c27fdb4ee2e867 GIT binary patch literal 3 Kc${NkWC8#H2LJ>B diff --git a/sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.bat b/sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.bat new file mode 100755 --- /dev/null +++ b/sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.bat @@ -0,0 +1,5 @@ +@prompt # $t $g +@echo on + +copy "%TSTSRCDIR%\noNULLtinyintBAT.bin" "%TSTTRGDIR%" +copy "%TSTSRCDIR%\NULLtinyintBAT.bin" "%TSTTRGDIR%" diff --git a/sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.sh b/sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.sh new file mode 100755 --- /dev/null +++ b/sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937-prepare.sh @@ -0,0 +1,4 @@ +#!/bin/sh _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list