Changeset: 1316dfd6c940 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1316dfd6c940 Added Files: README-Debian README-Fedora sql/test/BugTracker-2018/Tests/case_with_orderby_limit.Bug-6512.sql sql/test/BugTracker-2018/Tests/case_with_orderby_limit.Bug-6512.stable.err sql/test/BugTracker-2018/Tests/case_with_orderby_limit.Bug-6512.stable.out sql/test/BugTracker-2018/Tests/insert-null-second-interval-0.Bug-6515.sql sql/test/BugTracker-2018/Tests/insert-null-second-interval-0.Bug-6515.stable.err sql/test/BugTracker-2018/Tests/insert-null-second-interval-0.Bug-6515.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-bat-undefined.Bug-6516.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-bat-undefined.Bug-6516.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-bat-undefined.Bug-6516.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-overflow-in-conversion.Bug-6517.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-overflow-in-conversion.Bug-6517.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-overflow-in-conversion.Bug-6517.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-select-range-null.Bug-6514.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-select-range-null.Bug-6514.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.stable.out Modified Files: Makefile.ag NT/mksqlwxs.py buildtools/ChangeLog.Jul2017 clients/Makefile.ag sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statement.h sql/include/sql_relation.h sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_select.c sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out sql/test/BugTracker-2018/Tests/All sql/test/VOC/Tests/VOC.stable.out Branch: default Log Message:
Merge with Jul2017 diffs (truncated from 4522 to 300 lines): diff --git a/Makefile.ag b/Makefile.ag --- a/Makefile.ag +++ b/Makefile.ag @@ -13,7 +13,8 @@ SUBDIRS = buildtools common clients \ HAVE_TESTING?testing \ EXTRA_DIST = bootstrap configure configure.ac configure.ag libversions \ - MonetDB.spec rpm.mk.in COPYING README.rst license.txt HowToStart.rst + MonetDB.spec rpm.mk.in COPYING README.rst license.txt HowToStart.rst \ + README-Fedora README-Debian EXTRA_DIST_DIR = NT debian MacOSX diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -96,9 +96,10 @@ def main(): print(r' <Directory Id="include" Name="include">') print(r' <Directory Id="monetdb" Name="monetdb">') id = comp(features, id, 16, - [r'include\monetdb\mapi.h', - r'include\monetdb\stream.h', - r'include\monetdb\stream_socket.h'], + sorted([r'include\monetdb\%s' % x for x in filter(lambda x: (x.startswith('gdk') or x.startswith('monet') or x.startswith('mal')) and x.endswith('.h'), os.listdir(os.path.join(sys.argv[3], 'include', 'monetdb')))] + + [r'include\monetdb\mapi.h', + r'include\monetdb\stream.h', + r'include\monetdb\stream_socket.h']), vital = 'no') print(r' </Directory>') print(r' </Directory>') @@ -118,7 +119,9 @@ def main(): [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: x.startswith('lib_') and x.endswith('.dll') and ('geom' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))]) print(r' </Directory>') id = comp(features, id, 14, - [r'lib\libmapi.lib', + [r'lib\libbat.lib', + r'lib\libmapi.lib', + r'lib\libmonetdb5.lib', r'lib\libstream.lib', r'%s\lib\iconv.lib' % makedefs['LIBICONV'], r'%s\lib\libbz2.lib' % makedefs['LIBBZIP2'], diff --git a/README-Debian b/README-Debian new file mode 100644 --- /dev/null +++ b/README-Debian @@ -0,0 +1,41 @@ +The following packages (DEBs) are or can be used by MonetDB. + +These packages are required. + +automake +bison +gettext +libssl-dev +libtool +libxml2-dev +m4 +make +mercurial +pkg-config + +These packages are optional, but required when building the MonetDB +.deb packages. + +libatomic-ops-dev # optional, but recommended +libbam-dev # optional: read BAM and SAM files +libbz2-dev # optional: read and write .bz2 compressed files +libcurl4-gnutls-dev # optional: read remote files with sys.getcontent(url) +libgeos-dev # optional: required for geom module +liblas-c-dev # optional: read LIDAR files +liblzma-dev # optional: read and write .xz compressed files +libpcre3-dev # optional: use PCRE library, enable some functions +libreadline-dev # optional, enable editing in mclient +python-dev # optional, needed for Python 2 integration +python-numpy # optional, needed for Python 2 integration +r-base # optional, needed for R integration +unixodbc-dev # optional, needed for ODBC driver +uuid-dev # optional +zlib1g-dev # optional: read and write .gz compressed files + +These packages are optional. + +libcfitsio-dev # optional: read FITS files +liblz4-dev # optional: compression in new (unused) MAPI protocol +libsnappy-dev # optional: compression in new (unused) MAPI protocol +python3-dev # optional, needed for Python 3 integration +python3-numpy # optional, needed for Python 3 integration diff --git a/README-Fedora b/README-Fedora new file mode 100644 --- /dev/null +++ b/README-Fedora @@ -0,0 +1,45 @@ +The following packages (RPMs) are or can be used by MonetDB. + +These packages are required. + +bison +gettext-devel +libtool +libxml2-devel +mercurial +openssl-devel +pkgconf-m4 +pkgconf-pkg-config + +These packages are optional, but they are required to build RPMs using +the command make rpm. + +bzip2-devel # optional: read and write .bz2 compressed files +bzip2 # optional, required to create a tar ball (make dist) +checkpolicy # optional, required to create RPMs (make rpm) +geos-devel # optional: required for geom module +libatomic_ops-devel # optional but recommended +libcurl-devel # optional: read remote files with sys.getcontent(url) +libuuid-devel # optional +pcre-devel # optional: use PCRE library, enable some functions +python2-devel # optional, needed for Python 2 integration +python2-numpy # optional, needed for Python 2 integration +R-core-devel # optional, needed for R integration +readline-devel # optional, enable editing in mclient +rpm-build # optional, required to create RPMs (make rpm) +samtools-devel # optional: read BAM and SAM files +selinux-policy-devel # optional, required to create RPMs (make rpm) +unixODBC-devel # optional, needed for ODBC driver + +These packages are optional. + +cfitsio-devel # optional: read FITS files +libasan # optional: --enable-sanitizer configuration (debug) +liblas-devel # optional: read LIDAR files +lz4-devel # optional: compression in new (unused) MAPI protocol +netcdf-devel # optional: read NetCDF files +proj-devel # optional, only optionally used in geom module +python3-devel # optional, needed for Python 3 integration +python3-numpy # optional, needed for Python 3 integration +snappy-devel # optional: compression in new (unused) MAPI protocol +valgrind-devel # optional: --with-valgrind configuration (debug) diff --git a/buildtools/ChangeLog.Jul2017 b/buildtools/ChangeLog.Jul2017 --- a/buildtools/ChangeLog.Jul2017 +++ b/buildtools/ChangeLog.Jul2017 @@ -1,3 +1,7 @@ # ChangeLog file for buildtools # This file is updated with Maddlog +* Tue Jan 16 2018 Sjoerd Mullender <sjo...@acm.org> +- Added the .lib and .h files needed for building extensions to the + Windows installer. + diff --git a/clients/Makefile.ag b/clients/Makefile.ag --- a/clients/Makefile.ag +++ b/clients/Makefile.ag @@ -4,6 +4,6 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V. -SUBDIRS = HAVE_MAPI?mapilib HAVE_MAPI?mapiclient HAVE_ODBC?odbc examples NATIVE_WIN32?NT +SUBDIRS = HAVE_MAPI?mapilib HAVE_MAPI?mapiclient HAVE_ODBC?odbc HAVE_MAPI?examples NATIVE_WIN32?NT EXTRA_DIST_DIR = Tests ruby R diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -546,7 +546,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l as = const_column(be, as); } } - s = stmt_aggr(be, as, grp, ext, a, 1, need_no_nil(e) /* ignore nil*/ ); + s = stmt_aggr(be, as, grp, ext, a, 1, need_no_nil(e) /* ignore nil*/, !zero_if_empty(e) ); if (find_prop(e->p, PROP_COUNT)) /* propagate count == 0 ipv NULL in outer joins */ s->flag |= OUTER_ZERO; } break; @@ -2481,7 +2481,7 @@ rel2bin_project(backend *be, sql_rel *re if (!s) /* error */ return NULL; /* single value with limit */ - if (topn && rel->r && sub && sub->nrcols == 0) + if (topn && rel->r && sub && sub->nrcols == 0 && s->nrcols == 0) s = const_column(be, s); else if (sub && sub->nrcols >= 1 && s->nrcols == 0) s = stmt_const(be, bin_first_column(be, sub), s); @@ -3053,7 +3053,7 @@ insert_check_ukey(backend *be, list *ins s = releqjoin(be, lje, rje, 1 /* hash used */, cmp_equal, 0); s = stmt_result(be, s, 0); } - s = stmt_binop(be, stmt_aggr(be, s, NULL, NULL, cnt, 1, 0), stmt_atom_lng(be, 0), ne); + s = stmt_binop(be, stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1), stmt_atom_lng(be, 0), ne); /* 2e stage: find out if inserted are unique */ if ((!idx_inserts && ins->nrcols) || (idx_inserts && idx_inserts->nrcols)) { /* insert columns not atoms */ @@ -3078,7 +3078,7 @@ insert_check_ukey(backend *be, list *ins return NULL; sum = sql_bind_aggr(sql->sa, sql->session->schema, "not_unique", tail_type(orderby_grp)); - ssum = stmt_aggr(be, orderby_grp, NULL, NULL, sum, 1, 0); + ssum = stmt_aggr(be, orderby_grp, NULL, NULL, sum, 1, 0, 1); /* combine results */ s = stmt_binop(be, s, ssum, or); } @@ -3102,11 +3102,11 @@ insert_check_ukey(backend *be, list *ins s = stmt_join(be, s, h, 0, cmp_equal); /* s should be empty */ s = stmt_result(be, s, 0); - s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0); + s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1); } else { s = stmt_uselect(be, s, h, cmp_equal, NULL, 0); /* s should be empty */ - s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0); + s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1); } /* s should be empty */ s = stmt_binop(be, s, stmt_atom_lng(be, 0), ne); @@ -3130,9 +3130,9 @@ insert_check_ukey(backend *be, list *ins ss = stmt_result(be, g, 2); /* use count */ /* (count(ss) <> sum(ss)) */ sum = sql_bind_aggr(sql->sa, sql->session->schema, "sum", lng); - ssum = stmt_aggr(be, ss, NULL, NULL, sum, 1, 0); + ssum = stmt_aggr(be, ss, NULL, NULL, sum, 1, 0, 1); ssum = sql_Nop_(be, "ifthenelse", sql_unop_(be, NULL, "isnull", ssum), stmt_atom_lng(be, 0), ssum, NULL); - count_sum = stmt_binop(be, check_types(be, tail_type(ssum), stmt_aggr(be, ss, NULL, NULL, cnt, 1, 0), type_equal), ssum, ne); + count_sum = stmt_binop(be, check_types(be, tail_type(ssum), stmt_aggr(be, ss, NULL, NULL, cnt, 1, 0, 1), type_equal), ssum, ne); /* combine results */ s = stmt_binop(be, s, count_sum, or); @@ -3161,10 +3161,10 @@ insert_check_fkey(backend *be, list *ins if (pin && list_length(pin->op4.lval)) s = pin->op4.lval->h->data; if (s->key && s->nrcols == 0) { - s = stmt_binop(be, stmt_aggr(be, idx_inserts, NULL, NULL, cnt, 1, 0), stmt_atom_lng(be, 1), ne); + s = stmt_binop(be, stmt_aggr(be, idx_inserts, NULL, NULL, cnt, 1, 0, 1), stmt_atom_lng(be, 1), ne); } else { /* releqjoin.count <> inserts[col1].count */ - s = stmt_binop(be, stmt_aggr(be, idx_inserts, NULL, NULL, cnt, 1, 0), stmt_aggr(be, s, NULL, NULL, cnt, 1, 0), ne); + s = stmt_binop(be, stmt_aggr(be, idx_inserts, NULL, NULL, cnt, 1, 0, 1), stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1), ne); } /* s should be empty */ @@ -3272,7 +3272,7 @@ sql_insert_check_null(backend *be, sql_t if (!(s->key && s->nrcols == 0)) { s = stmt_selectnil(be, i); - s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0); + s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1); } else { sql_subfunc *isnil = sql_bind_func(sql->sa, sql->session->schema, "isnull", &c->type, NULL, F_FUNC); @@ -3395,7 +3395,7 @@ rel2bin_insert(backend *be, sql_rel *rel if (insert->op1->nrcols == 0) { s = stmt_atom_lng(be, 1); } else { - s = stmt_aggr(be, insert->op1, NULL, NULL, sql_bind_aggr(sql->sa, sql->session->schema, "count", NULL), 1, 0); + s = stmt_aggr(be, insert->op1, NULL, NULL, sql_bind_aggr(sql->sa, sql->session->schema, "count", NULL), 1, 0, 1); } return s; } @@ -3479,7 +3479,7 @@ update_check_ukey(backend *be, stmt **up } s = releqjoin(be, lje, rje, 1 /* hash used */, cmp_equal, 0); s = stmt_result(be, s, 0); - s = stmt_binop(be, stmt_aggr(be, s, NULL, NULL, cnt, 1, 0), stmt_atom_lng(be, 0), ne); + s = stmt_binop(be, stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1), stmt_atom_lng(be, 0), ne); } /* 2e stage: find out if the updated are unique */ @@ -3552,9 +3552,9 @@ update_check_ukey(backend *be, stmt **up ss = Cnt; /* use count */ /* (count(ss) <> sum(ss)) */ sum = sql_bind_aggr(sql->sa, sql->session->schema, "sum", lng); - ssum = stmt_aggr(be, ss, NULL, NULL, sum, 1, 0); + ssum = stmt_aggr(be, ss, NULL, NULL, sum, 1, 0, 1); ssum = sql_Nop_(be, "ifthenelse", sql_unop_(be, NULL, "isnull", ssum), stmt_atom_lng(be, 0), ssum, NULL); - count_sum = stmt_binop(be, stmt_aggr(be, ss, NULL, NULL, cnt, 1, 0), check_types(be, lng, ssum, type_equal), ne); + count_sum = stmt_binop(be, stmt_aggr(be, ss, NULL, NULL, cnt, 1, 0, 1), check_types(be, lng, ssum, type_equal), ne); /* combine results */ if (s) @@ -3583,7 +3583,7 @@ update_check_ukey(backend *be, stmt **up o = stmt_col(be, c->c, nu_tids); s = stmt_join(be, o, h, 0, cmp_equal); s = stmt_result(be, s, 0); - s = stmt_binop(be, stmt_aggr(be, s, NULL, NULL, cnt, 1, 0), stmt_atom_lng(be, 0), ne); + s = stmt_binop(be, stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1), stmt_atom_lng(be, 0), ne); } /* 2e stage: find out if updated are unique */ @@ -3612,9 +3612,9 @@ update_check_ukey(backend *be, stmt **up /* (count(ss) <> sum(ss)) */ sum = sql_bind_aggr(sql->sa, sql->session->schema, "sum", lng); - ssum = stmt_aggr(be, ss, NULL, NULL, sum, 1, 0); + ssum = stmt_aggr(be, ss, NULL, NULL, sum, 1, 0, 1); ssum = sql_Nop_(be, "ifthenelse", sql_unop_(be, NULL, "isnull", ssum), stmt_atom_lng(be, 0), ssum, NULL); - count_sum = stmt_binop(be, check_types(be, tail_type(ssum), stmt_aggr(be, ss, NULL, NULL, cnt, 1, 0), type_equal), ssum, ne); + count_sum = stmt_binop(be, check_types(be, tail_type(ssum), stmt_aggr(be, ss, NULL, NULL, cnt, 1, 0, 1), type_equal), ssum, ne); /* combine results */ if (s) @@ -3685,7 +3685,7 @@ update_check_fkey(backend *be, stmt **up assert(0); cur = stmt_col(be, c->c, dels); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list