Changeset: 69ab66b771de for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=69ab66b771de Added Files: debian/monetdb5-server-hugeint.install debian/monetdb5-sql-hugeint.install Modified Files: MonetDB.spec clients/Tests/exports.stable.out debian/control debian/monetdb5-server.install debian/monetdb5-sql.install gdk/gdk_join.c gdk/gdk_select.c monetdb5/mal/mal.c monetdb5/mal/mal.h monetdb5/mal/mal_parser.c sql/backends/monet5/sql_upgrades.c sql/common/Makefile.ag sql/common/sql_types.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_select.c sql/server/sql_parser.y sql/server/sql_scan.c Branch: default Log Message:
Merge with default. diffs (truncated from 783 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -637,6 +637,7 @@ fi %exclude %{_libdir}/monetdb5/rapi.mal %endif %exclude %{_libdir}/monetdb5/sql*.mal +%exclude %{_libdir}/monetdb5/*_hge.mal %{_libdir}/monetdb5/*.mal %if %{?with_geos:1}%{!?with_geos:0} %exclude %{_libdir}/monetdb5/autoload/*_geom.mal @@ -663,6 +664,26 @@ fi %{_libdir}/monetdb5/*.so %doc %{_mandir}/man1/mserver5.1.gz +%package -n MonetDB5-server-hugeint +Summary: MonetDB - 128-bit integer support for MonetDB5-server +Group: Application/Databases +Requires: MonetDB5-server + +%description -n MonetDB5-server-hugeint +MonetDB is a database management system that is developed from a +main-memory perspective with use of a fully decomposed storage model, +automatic index management, extensibility of data types and search +accelerators. It also has an SQL frontend. + +This package provides HUGEINT (128-bit integer) support for the +MonetDB5-server component. + +%files -n MonetDB5-server-hugeint +%exclude %{_libdir}/monetdb5/sql*_hge.mal +%{_libdir}/monetdb5/*_hge.mal +%exclude %{_libdir}/monetdb5/autoload/??_sql_hge.mal +%{_libdir}/monetdb5/autoload/*_hge.mal + %package -n MonetDB5-server-devel Summary: MonetDB development files Group: Applications/Databases @@ -723,7 +744,7 @@ systemd-tmpfiles --create %{_sysconfdir} %exclude %{_sysconfdir}/tmpfiles.d/monetdbd.conf %endif %config(noreplace) %{_localstatedir}/monetdb5/dbfarm/.merovingian_properties -%{_libdir}/monetdb5/autoload/??_sql*.mal +%{_libdir}/monetdb5/autoload/??_sql.mal %{_libdir}/monetdb5/lib_sql.so %{_libdir}/monetdb5/*.sql %dir %{_libdir}/monetdb5/createdb @@ -734,7 +755,9 @@ systemd-tmpfiles --create %{_sysconfdir} %if %{?with_samtools:1}%{!?with_samtools:0} %exclude %{_libdir}/monetdb5/createdb/*_bam.sql %endif -%{_libdir}/monetdb5/createdb/* +%exclude %{_libdir}/monetdb5/createdb/*_hge.sql +%{_libdir}/monetdb5/createdb/*.sql +%exclude %{_libdir}/monetdb5/sql*_hge.mal %{_libdir}/monetdb5/sql*.mal %doc %{_mandir}/man1/monetdb.1.gz %doc %{_mandir}/man1/monetdbd.1.gz @@ -748,6 +771,27 @@ systemd-tmpfiles --create %{_sysconfdir} %{_datadir}/doc/MonetDB-SQL-%{version}/* %endif +%package SQL-server5-hugeint +Summary: MonetDB5 128 bit integer (hugeint) support for SQL +Group: Applications/Databases +Requires: MonetDB5-server-hugeint = %{version}-%{release} +Requires: MonetDB-SQL-server5 = %{version}-%{release} + +%description SQL-server5-hugeint +MonetDB is a database management system that is developed from a +main-memory perspective with use of a fully decomposed storage model, +automatic index management, extensibility of data types and search +accelerators. It also has an SQL frontend. + +This package provides HUGEINT (128-bit integer) support for the SQL +frontend of MonetDB. + +%files SQL-server5-hugeint +%defattr(-,root,root) +%{_libdir}/monetdb5/autoload/??_sql_hge.mal +%{_libdir}/monetdb5/createdb/*_hge.sql +%{_libdir}/monetdb5/sql*_hge.mal + %package -n python-monetdb Summary: Native MonetDB client Python API Group: Applications/Databases diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -2271,6 +2271,7 @@ int hasSameArguments(MalBlkPtr mb, Instr int hasSameSignature(MalBlkPtr mb, InstrPtr p, InstrPtr q, int stop); int hasSideEffects(InstrPtr p, int strict); str hashRef; +int have_hge; int headProp; str hgeRef; int hlbProp; diff --git a/debian/control b/debian/control --- a/debian/control +++ b/debian/control @@ -245,6 +245,18 @@ Description: MonetDB database server ver package if you want to use the MonetDB database system. If you want to use the SQL frontend, you also need monetdb5-sql. +Package: monetdb5-server-hugeint +Architecture: any +Depends: monetdb5-server (= ${source:Version}) +Description: MonetDB - 128-bit integer support for MonetDB5-server + MonetDB is a database management system that is developed from a + main-memory perspective with use of a fully decomposed storage model, + automatic index management, extensibility of data types and search + accelerators. It also has an SQL frontend. + . + This package provides HUGEINT (128-bit integer) support for the + MonetDB5-server component. + Package: monetdb5-server-dev Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, monetdb5-server @@ -270,6 +282,18 @@ Description: MonetDB SQL support for mon . This package contains the SQL frontend for MonetDB. +Package: monetdb5-sql-hugeint +Architecture: any +Depends: monetdb5-sql (= ${source:Version}), monetdb5-server-hugeint (= ${source:Version}) +Description: MonetDB5 128 bit integer (hugeint) support for SQL + MonetDB is a database management system that is developed from a + main-memory perspective with use of a fully decomposed storage model, + automatic index management, extensibility of data types and search + accelerators. It also has an SQL frontend. + . + This package provides HUGEINT (128-bit integer) support for the SQL + frontend of MonetDB. + Package: monetdb-testing Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} diff --git a/debian/monetdb5-server-hugeint.install b/debian/monetdb5-server-hugeint.install new file mode 100644 --- /dev/null +++ b/debian/monetdb5-server-hugeint.install @@ -0,0 +1,5 @@ +# usr/lib/monetdb5/*_hge.mal EXCEPT: sql*_hge.mal +debian/tmp/usr/lib/monetdb5/[!s]*_hge.mal usr/lib/monetdb5 + +# usr/lib/monetdb5/autoload/*_hge.mal EXCEPT: ??_sql_hge.mal +debian/tmp/usr/lib/monetdb5/autoload/[0-9][0-9]_[!s]*_hge.mal diff --git a/debian/monetdb5-server.install b/debian/monetdb5-server.install --- a/debian/monetdb5-server.install +++ b/debian/monetdb5-server.install @@ -8,17 +8,21 @@ debian/tmp/usr/lib/monetdb5/lib_opt_sql_ debian/tmp/usr/lib/monetdb5/lib_udf.so usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/lib_vault.so usr/lib/monetdb5 -# usr/lib/monetdb5/*.mal EXCEPT: bam.mal, geom.mal, gsl.mal, sql*.mal -debian/tmp/usr/lib/monetdb5/[!bgs]*.mal usr/lib/monetdb5 +# usr/lib/monetdb5/*.mal EXCEPT: bam.mal, geom.mal, gsl.mal, sql*.mal *_hge.mal +debian/tmp/usr/lib/monetdb5/[!bgsu]*.mal usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/ba[!m]*.mal usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/b[!a]*.mal usr/lib/monetdb5 -debian/tmp/usr/lib/monetdb5/ge[!o]*.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/generator.mal usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/g[!es]*.mal usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/s[!q]*.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/udf.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/u[!d]*.mal usr/lib/monetdb5 -# usr/lib/monetdb5/autoload/*.mal EXCEPT: *_bam.mal, *_geom.mal, *_gsl.mal, *_sql.mal -debian/tmp/usr/lib/monetdb5/autoload/*_generator.mal usr/lib/monetdb5/autoload -debian/tmp/usr/lib/monetdb5/autoload/*_lsst.mal usr/lib/monetdb5/autoload -debian/tmp/usr/lib/monetdb5/autoload/*_opt_sql_append.mal usr/lib/monetdb5/autoload -debian/tmp/usr/lib/monetdb5/autoload/*_udf*.mal usr/lib/monetdb5/autoload -debian/tmp/usr/lib/monetdb5/autoload/*_vault.mal usr/lib/monetdb5/autoload +# usr/lib/monetdb5/autoload/*.mal EXCEPT: *_bam.mal, *_geom.mal, *_gsl.mal, *_hge.mal *_sql.mal +debian/tmp/usr/lib/monetdb5/autoload/??_batcalc.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/autoload/??_calc.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/autoload/??_generator.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/autoload/??_lsst.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/autoload/??_opt_sql_append.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/autoload/??_udf.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/autoload/??_vault.mal usr/lib/monetdb5/autoload diff --git a/debian/monetdb5-sql-hugeint.install b/debian/monetdb5-sql-hugeint.install new file mode 100644 --- /dev/null +++ b/debian/monetdb5-sql-hugeint.install @@ -0,0 +1,3 @@ +debian/tmp/usr/lib/monetdb5/sql*_hge.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/autoload/??_sql_hge.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/monetdb5/createdb/*_hge.sql usr/lib/monetdb5/createdb diff --git a/debian/monetdb5-sql.install b/debian/monetdb5-sql.install --- a/debian/monetdb5-sql.install +++ b/debian/monetdb5-sql.install @@ -1,12 +1,18 @@ debian/tmp/usr/bin/monetdbd usr/bin debian/tmp/usr/bin/monetdb usr/bin debian/tmp/usr/lib/monetdb5/*.sql usr/lib/monetdb5 -debian/tmp/usr/lib/monetdb5/autoload/??_sql*.mal usr/lib/monetdb5/autoload -debian/tmp/usr/lib/monetdb5/sql*.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/autoload/??_sql.mal usr/lib/monetdb5/autoload +# usr/lib/monetdb5/sql*.mal EXCEPT: sql*_hge.mal +debian/tmp/usr/lib/monetdb5/sql.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/sql_aggr_[!h]*.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/sql_decimal.mal usr/lib/monetdb5 +debian/tmp/usr/lib/monetdb5/sql_[!adh]*.mal usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/lib_sql.so usr/lib/monetdb5 debian/tmp/var/monetdb5/dbfarm/.merovingian_properties var/monetdb5/dbfarm # usr/lib/monetdb5/createdb/*.sql EXCEPT: *_bam.sql, *_geom.sql, *_gsl.sql -debian/tmp/usr/lib/monetdb5/createdb/??_[!bg]*.sql usr/lib/monetdb5/createdb -# only files currently starting with ??_g is ??_generator* -debian/tmp/usr/lib/monetdb5/createdb/??_gen*.sql usr/lib/monetdb5/createdb +debian/tmp/usr/lib/monetdb5/createdb/??_[!abgju]*.sql usr/lib/monetdb5/createdb +debian/tmp/usr/lib/monetdb5/createdb/??_analytics.sql usr/lib/monetdb5/createdb +debian/tmp/usr/lib/monetdb5/createdb/??_json.sql usr/lib/monetdb5/createdb +debian/tmp/usr/lib/monetdb5/createdb/??_generator.sql usr/lib/monetdb5/createdb +debian/tmp/usr/lib/monetdb5/createdb/??_udf.sql usr/lib/monetdb5/createdb diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c --- a/gdk/gdk_join.c +++ b/gdk/gdk_join.c @@ -1739,16 +1739,16 @@ binsearchcand(const oid *cand, BUN lo, B for (hb = HASHget(h, HASHprobe((h), v)); \ hb != HASHnil(h); \ hb = HASHgetlink(h,hb)) \ - if (hb >= (lo) && hb < (hi) && \ + if (misses += hb >= (hi), (hb >= (lo) && hb < (hi) && \ (cmp == NULL || \ - (*cmp)(v, BUNtail(bi, hb)) == 0)) + (*cmp)(v, BUNtail(bi, hb)) == 0))) #define HASHloop_bound_TYPE(bi, h, hb, v, lo, hi, TYPE) \ for (hb = HASHget(h, hash_##TYPE(h, v)); \ hb != HASHnil(h); \ hb = HASHgetlink(h,hb)) \ - if (hb >= (lo) && hb < (hi) && \ - simple_EQ(v, BUNtloc(bi, hb), TYPE)) + if (misses += hb >= (hi), (hb >= (lo) && hb < (hi) && \ + simple_EQ(v, BUNtloc(bi, hb), TYPE))) static gdk_return hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, int nil_on_miss, int semi, int must_match) @@ -1771,6 +1771,7 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * oid lval = oid_nil; /* hold value if l has dense tail */ const char *v = (const char *) &lval; int lskipped = 0; /* whether we skipped values in l */ + BUN misses = 0; ALGODEBUG fprintf(stderr, "#hashjoin(l=%s#" BUNFMT "[%s]%s%s," "r=%s#" BUNFMT "[%s]%s%s,sl=%s#" BUNFMT "%s%s," @@ -2049,6 +2050,7 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * r1->trevsorted = 0; } } + fprintf(stderr, "#hashjoin: misses = "BUNFMT"\n", misses); assert(BATcount(r1) == BATcount(r2)); /* also set other bits of heap to correct value to indicate size */ BATsetcount(r1, BATcount(r1)); diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c --- a/gdk/gdk_select.c +++ b/gdk/gdk_select.c @@ -156,9 +156,9 @@ doubleslice(BAT *b, BUN l1, BUN h1, BUN for (hb = HASHget(h, HASHprobe((h), v)); \ hb != HASHnil(h); \ hb = HASHgetlink(h,hb)) \ - if (hb >= (lo) && hb < (hi) && \ + if (misses += hb >= (hi), (hb >= (lo) && hb < (hi) && \ (cmp == NULL || \ - (*cmp)(v, BUNtail(bi, hb)) == 0)) + (*cmp)(v, BUNtail(bi, hb)) == 0))) static BAT * BAT_hashselect(BAT *b, BAT *s, BAT *bn, const void *tl, BUN maximum) @@ -169,6 +169,7 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn, BUN l, h; oid seq; int (*cmp)(const void *, const void *); + BUN misses = 0; assert(bn->htype == TYPE_void); assert(bn->ttype == TYPE_oid); @@ -230,6 +231,7 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn, cnt++; } } + fprintf(stderr, "#BAT_hashselect: misses = "BUNFMT"\n", misses); BATsetcount(bn, cnt); bn->tkey = 1; if (cnt > 1) { diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c --- a/monetdb5/mal/mal.c +++ b/monetdb5/mal/mal.c @@ -14,6 +14,9 @@ char monet_cwd[PATHLENGTH] = { 0 }; size_t monet_memory; char monet_characteristics[PATHLENGTH]; int mal_trace; /* enable profile events on console */ +#ifdef HAVE_HGE +int have_hge; +#endif #include "mal_stack.h" _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list