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

Reply via email to