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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list