MonetDB: default - only nullif still has rewrite in exp_nop

2020-08-03 Thread Niels Nes
Changeset: f59b25e0dd88 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f59b25e0dd88
Modified Files:
sql/backends/monet5/sql_statement.c
Branch: default
Log Message:

only nullif still has rewrite in exp_nop


diffs (35 lines):

diff --git a/sql/backends/monet5/sql_statement.c 
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -3194,7 +3194,7 @@ stmt_Nop(backend *be, stmt *ops, sql_sub
}
}
 
-   /* handle coalesce and nullif */
+   /* handle nullif */
if (list_length(ops->op4.lval) == 2 &&
f->func->mod && strcmp(f->func->mod, "") == 0 && f->func->imp 
&& strcmp(f->func->imp, "") == 0) {
stmt *e1 = ops->op4.lval->h->data;
@@ -3202,21 +3202,7 @@ stmt_Nop(backend *be, stmt *ops, sql_sub
int nrcols = 0;
 
nrcols = e1->nrcols>e2->nrcols ? e1->nrcols:e2->nrcols;
-   /* nrcols */
-   //coalesce(e1,e2) -> ifthenelse(isnil(e1),e2,e1)
-   if (strcmp(f->func->base.name, "coalesce") == 0) {
-   assert(0);
-   str mod = (!nrcols)?calcRef:batcalcRef;
-   q = newStmt(mb, e1->nrcols?mod:calcRef, "isnil");
-   q = pushArgument(mb, q, e1->nr);
-   int nr = getDestVar(q);
-
-   q = newStmt(mb, mod, "ifthenelse");
-   q = pushArgument(mb, q, nr);
-   q = pushArgument(mb, q, e2->nr);
-   q = pushArgument(mb, q, e1->nr);
-   }
-   //nullif(e1,e2) -> ifthenelse(e1==e2),NULL,e1)
+   /* nullif(e1,e2) -> ifthenelse(e1==e2),NULL,e1) */
if (strcmp(f->func->base.name, "nullif") == 0) {
str mod = (!nrcols)?calcRef:batcalcRef;
sql_subtype *t = tail_type(e1);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - implemented case/coalesce as var-arg virtual ...

2020-08-03 Thread Niels Nes
Changeset: c10635f623c2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c10635f623c2
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_statement.c
sql/server/rel_select.c
sql/server/rel_unnest.c

sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out

sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out

sql/test/BugTracker-2012/Tests/case_evaluated_too_early.Bug-3186.stable.out

sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
sql/test/BugTracker-2019/Tests/prepare-types.Bug-6724.stable.out
sql/test/BugTracker/Tests/case_with_aggr.SF-1876779.stable.out
sql/test/BugTracker/Tests/case_with_aggr.SF-1876779.stable.out.int128
sql/test/SQLancer/Tests/sqlancer03.stable.err
sql/test/Tests/coalesce.stable.out
sql/test/remote/Tests/partition_elim.stable.out
Branch: default
Log Message:

implemented case/coalesce as var-arg virtual functions. Re-implemented the 
handling of those in
rel_bin


diffs (truncated from 2689 to 300 lines):

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
@@ -25,7 +25,7 @@
 
 #define OUTER_ZERO 64
 
-static stmt * exp_bin(backend *be, sql_exp *e, stmt *left, stmt *right, stmt 
*grp, stmt *ext, stmt *cnt, stmt *sel, stmt *cond, int depth, int reduce);
+static stmt * exp_bin(backend *be, sql_exp *e, stmt *left, stmt *right, stmt 
*grp, stmt *ext, stmt *cnt, stmt *sel, int depth, int reduce);
 static stmt * rel_bin(backend *be, sql_rel *rel);
 static stmt * subrel_bin(backend *be, sql_rel *rel, list *refs);
 
@@ -288,7 +288,7 @@ distinct_value_list(backend *be, list *v
/* create bat append values */
for (node *n = vals->h; n; n = n->next) {
sql_exp *e = n->data;
-   stmt *i = exp_bin(be, e, NULL, NULL, NULL, NULL, NULL, NULL, 
NULL, 0, 0);
+   stmt *i = exp_bin(be, e, NULL, NULL, NULL, NULL, NULL, NULL, 0, 
0);
 
if (exp_is_null(e))
*last_null_value = i;
@@ -366,7 +366,7 @@ handle_in_exps(backend *be, sql_exp *ce,
 {
mvc *sql = be->mvc;
node *n;
-   stmt *s = NULL, *c = exp_bin(be, ce, left, right, grp, ext, cnt, NULL, 
NULL, 0, 0);
+   stmt *s = NULL, *c = exp_bin(be, ce, left, right, grp, ext, cnt, NULL, 
0, 0);
 
if(!c)
return NULL;
@@ -384,7 +384,7 @@ handle_in_exps(backend *be, sql_exp *ce,
 
for( n = nl->h; n; n = n->next) {
sql_exp *e = n->data;
-   stmt *i = exp_bin(be, use_r?e->r:e, left, right, grp, 
ext, cnt, NULL, NULL, 0, 0);
+   stmt *i = exp_bin(be, use_r?e->r:e, left, right, grp, 
ext, cnt, NULL, 0, 0);
if(!i)
return NULL;
 
@@ -406,7 +406,7 @@ handle_in_exps(backend *be, sql_exp *ce,
s = sel;
for( n = nl->h; n; n = n->next) {
sql_exp *e = n->data;
-   stmt *i = exp_bin(be, use_r?e->r:e, left, right, grp, 
ext, cnt, NULL, NULL, 0, 0);
+   stmt *i = exp_bin(be, use_r?e->r:e, left, right, grp, 
ext, cnt, NULL, 0, 0);
if(!i)
return NULL;
 
@@ -484,7 +484,7 @@ value_list(backend *be, list *vals, stmt
l = sa_list(be->mvc->sa);
for (node *n = vals->h; n; n = n->next) {
sql_exp *e = n->data;
-   stmt *i = exp_bin(be, e, left, NULL, NULL, NULL, NULL, sel, 
NULL, 0, 0);
+   stmt *i = exp_bin(be, e, left, NULL, NULL, NULL, NULL, sel, 0, 
0);
 
if (!i)
return NULL;
@@ -505,7 +505,7 @@ exp_list(backend *be, list *exps, stmt *
 
for( n = exps->h; n; n = n->next) {
sql_exp *e = n->data;
-   stmt *i = exp_bin(be, e, l, r, grp, ext, cnt, sel, NULL, 0, 0);
+   stmt *i = exp_bin(be, e, l, r, grp, ext, cnt, sel, 0, 0);
if(!i)
return NULL;
 
@@ -552,7 +552,7 @@ exp_bin_or(backend *be, sql_exp *e, stmt
/* propagate the anti flag */
if (anti)
set_anti(c);
-   s = exp_bin(be, c, left, right, grp, ext, cnt, sin, NULL, 
depth, reduce);
+   s = exp_bin(be, c, left, right, grp, ext, cnt, sin, depth, 
reduce);
if (!s)
return s;
 
@@ -579,7 +579,7 @@ exp_bin_or(backend *be, sql_exp *e, stmt
/* propagate the anti flag */
if (anti)
set_anti(c);
-   s = exp_bin(be, c, left, right, grp, ext, cnt, sin, NULL, 
depth, reduce);
+   s = exp_bin(be, c, left, right, 

MonetDB: typing - Merged with default

2020-08-03 Thread Pedro Ferreira
Changeset: b518b991674d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b518b991674d
Modified Files:
clients/Tests/exports.stable.out
sql/common/sql_types.c
sql/server/rel_select.c
sql/server/rel_unnest.c
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: typing
Log Message:

Merged with default


diffs (truncated from 189398 to 300 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -15,32 +15,7 @@ syntax: glob
 # recommended build process plus a few patterns of files that we never
 # want in the repository (object files and such).
 
-# files generated by bootstrap
-Makefile.am
-Makefile.in
-Makefile.msc
-aclocal.m4
-acout.in
-autom4te.cache
-buildtools/conf/compile
-buildtools/conf/config.guess
-buildtools/conf/config.sub
-buildtools/conf/install-sh
-buildtools/conf/libtool.m4
-buildtools/conf/ltmain.sh
-buildtools/conf/ltoptions.m4
-buildtools/conf/ltsugar.m4
-buildtools/conf/ltversion.m4
-buildtools/conf/lt~obsolete.m4
-buildtools/conf/missing
-buildtools/conf/ylwrap
-configure
-configure.ac
-doc.lst
-install.lst
-monetdb_config.h.in
 *.pyc
-sql/backends/monet5/UDF/capi/cheader.text.h
 
 # files generated by various editors
 *.swp
@@ -73,21 +48,6 @@ tags
 *.rej
 *.orig
 
-# build results on Windows
-NT/.monetdb
-NT/buildtools
-NT/clients
-NT/common
-NT/gdk
-NT/geom
-NT/java
-NT/monetdb5
-NT/monetdb_config.h
-NT/sql
-NT/testing
-NT/tools
-NT/unistd.h
-
 # package building on Mac OS X
 MacOSX/build
 MacOSX/usr
diff --git a/misc/packages/rpm/COPYING b/COPYING
rename from misc/packages/rpm/COPYING
rename to COPYING
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -65,6 +65,9 @@
 # operators.  Otherwise the POSIX regex functions are used.
 %bcond_without pcre
 
+# By default, include C integration
+%bcond_without cintegration
+
 %if %{fedpkgs}
 # By default, create the MonetDB-R package.
 %bcond_without rintegration
@@ -108,6 +111,7 @@ BuildRequires: checkpolicy
 BuildRequires: selinux-policy-devel
 BuildRequires: hardlink
 %endif
+BuildRequires: cmake >= 3.12
 BuildRequires: gcc
 BuildRequires: bison
 BuildRequires: /usr/bin/python3
@@ -187,6 +191,7 @@ functionality of MonetDB.
 %{_includedir}/monetdb/gdk*.h
 %{_includedir}/monetdb/matomic.h
 %{_includedir}/monetdb/mstring.h
+%exclude %{_includedir}/monetdb/monetdbe.h
 %{_includedir}/monetdb/monet*.h
 %{_libdir}/libbat.so
 %{_libdir}/pkgconfig/monetdb-gdk.pc
@@ -462,7 +467,6 @@ Provides: MonetDB5-server-hugeint%{?_isa
 %endif
 %if (0%{?fedora} >= 22)
 Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release}
-%endif
 Suggests: %{name}-client%{?_isa} = %{version}-%{release}
 %endif
 # versions up to 1.0.5 don't accept the queryid field in the result set
@@ -515,7 +519,10 @@ exit 0
 %{_libdir}/libmonetdb5.so.*
 %dir %{_libdir}/monetdb5
 %{_libdir}/monetdb5/microbenchmark.mal
+%{_libdir}/monetdb5/run_*.mal
+%if %{with cintegration}
 %{_libdir}/monetdb5/lib_capi.so
+%endif
 %{_libdir}/monetdb5/lib_generator.so
 %{_libdir}/monetdb5/lib_udf.so
 %doc %{_mandir}/man1/mserver5.1.gz
@@ -599,13 +606,46 @@ use SQL with MonetDB, you will need to i
 %config(noreplace) %attr(664,monetdb,monetdb) 
%{_localstatedir}/monetdb5/dbfarm/.merovingian_properties
 %verify(not mtime) %attr(664,monetdb,monetdb) 
%{_localstatedir}/monetdb5/dbfarm/.merovingian_lock
 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/monetdbd
-%{_libdir}/monetdb5/lib_sql.so
+%{_libdir}/monetdb5/lib_sql.so*
 %doc %{_mandir}/man1/monetdb.1.gz
 %doc %{_mandir}/man1/monetdbd.1.gz
 %dir %{_datadir}/doc/MonetDB-SQL
 %docdir %{_datadir}/doc/MonetDB-SQL
 %{_datadir}/doc/MonetDB-SQL/*
 
+%package embedded
+Summary: MonetDB as an embedded library
+Group: Applications/Databases
+
+%description embedded
+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 front end.
+
+This package contains the library to turn MonetDB into an embeddable
+library.  Also see %{name}-embedded-devel to use this in a program.
+
+%files embedded
+%{_libdir}/libmonetdbe.so.*
+
+%package embedded-devel
+Summary: MonetDB as an embedded library development files
+Group: Applications/Databases
+
+%description embedded-devel
+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 front end.
+
+This package contains the library and include files to turn MonetDB
+into an embeddable library.
+
+%files embedde

MonetDB: typing - Added missing functions for the new day interv...

2020-08-03 Thread Pedro Ferreira
Changeset: 7766259b9ca7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7766259b9ca7
Modified Files:
monetdb5/modules/atoms/mtime.c
sql/common/sql_types.c
sql/test/BugTracker-2015/Tests/timestamp_convert.Bug-3815.stable.out

sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
sql/test/BugTracker-2017/Tests/date-arithmetic.Bug-6415.stable.out
sql/test/pg_regress/Tests/date.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: typing
Log Message:

Added missing functions for the new day interval type. Also I finally fixed the 
diff function for dates. As the day interval is the number of milliseconds on 
the backend, it has to multiply to the number of milliseconds on a day


diffs (truncated from 361 to 300 lines):

diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c
--- a/monetdb5/modules/atoms/mtime.c
+++ b/monetdb5/modules/atoms/mtime.c
@@ -304,7 +304,7 @@ static inline lng
 date_diff_imp(const date d1, const date d2)
 {
int diff = date_diff(d1, d2);
-   return is_int_nil(diff) ? lng_nil : (lng) diff;
+   return is_int_nil(diff) ? lng_nil : (lng) diff * (lng) (24*60*60*1000);
 }
 func2(MTIMEdate_diff, MTIMEdate_diff_bulk, "diff", date, date, lng, 
date_diff_imp, func2_noexcept, \
  DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, INIT_VAR, 
INIT_VAR, INIT_VAR, GET_NEXT_VAR, GET_NEXT_VAR, APPEND_VAR)
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
@@ -1725,20 +1725,26 @@ sqltypeinit( sql_allocator *sa)
sql_create_func(sa, "sql_sub", "mtime", "diff", FALSE, FALSE, 
SCALE_NONE, 0, SECINT, 2, TMESTAMPTZ, TMESTAMPTZ);
sql_create_func(sa, "sql_sub", "mtime", "diff", FALSE, FALSE, 
SCALE_FIX, 0, SECINT, 2, TMESTAMP, TMESTAMP);
 
+   sql_create_func(sa, "sql_sub", "mtime", "date_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, DTE, 2, DTE, SECINT);
sql_create_func(sa, "sql_sub", "mtime", "date_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, DTE, 2, DTE, DAYINT);
sql_create_func(sa, "sql_sub", "mtime", "date_sub_month_interval", 
FALSE, FALSE, SCALE_NONE, 0, DTE, 2, DTE, MONINT);
sql_create_func(sa, "sql_sub", "mtime", "time_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TME, 2, TME, SECINT);
sql_create_func(sa, "sql_sub", "mtime", "time_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMETZ, 2, TMETZ, SECINT);
sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMP, 2, TMESTAMP, SECINT);
+   sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMP, 2, TMESTAMP, DAYINT);
sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_month_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMP, 2, TMESTAMP, MONINT);
sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMPTZ, 2, TMESTAMPTZ, SECINT);
+   sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMPTZ, 2, TMESTAMPTZ, DAYINT);
sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_month_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMPTZ, 2, TMESTAMPTZ, MONINT);
 
+   sql_create_func(sa, "sql_add", "mtime", "date_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, DTE, 2, DTE, SECINT);
sql_create_func(sa, "sql_add", "mtime", "date_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, DTE, 2, DTE, DAYINT);
sql_create_func(sa, "sql_add", "mtime", "addmonths", FALSE, FALSE, 
SCALE_NONE, 0, DTE, 2, DTE, MONINT);
sql_create_func(sa, "sql_add", "mtime", "timestamp_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMP, 2, TMESTAMP, SECINT);
+   sql_create_func(sa, "sql_add", "mtime", "timestamp_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMP, 2, TMESTAMP, DAYINT);
sql_create_func(sa, "sql_add", "mtime", "timestamp_add_month_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMP, 2, TMESTAMP, MONINT);
sql_create_func(sa, "sql_add", "mtime", "timestamp_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMPTZ, 2, TMESTAMPTZ, SECINT);
+   sql_create_func(sa, "sql_add", "mtime", "timestamp_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMPTZ, 2, TMESTAMPTZ, DAYINT);
sql_create_func(sa, "sql_add", "mtime", "timestamp_add_month_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMESTAMPTZ, 2, TMESTAMPTZ, MONINT);
sql_create_func(sa, "sql_add", "mtime", "time_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TME, 2, TME, SECINT);
sql_create_func(sa, "sql_add", "mtime", "time_add_msec_interval", 
FALSE, FALSE, SCALE_NONE, 0, TMETZ, 2, TMETZ, SECINT);
@@ -1787,7 +1793,

MonetDB: trails - Added a new MAL function basket.cleanlock to c...

2020-08-03 Thread Ying Zhang
Changeset: b64a371c6127 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b64a371c6127
Modified Files:
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
sql/backends/monet5/sql_basket.c
sql/backends/monet5/sql_basket.h
Branch: trails
Log Message:

Added a new MAL function basket.cleanlock to clean up possible locks that have
been set on the baskets used in a query after an error has occurred.


diffs (71 lines):

diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -75,6 +75,7 @@ str capiRef;
 str catalogRef;
 str change_all_cpRef;
 str change_single_cpRef;
+str clean_streamtable_lockRef;
 str clear_tableRef;
 str closeRef;
 str columnBindRef;
@@ -387,6 +388,7 @@ abortRef = putName("abort");
catalogRef = putName("catalog");
change_all_cpRef = putName("change_all_cp");
change_single_cpRef = putName("change_single_cp");
+   clean_streamtable_lockRef = putName("clean_streamtable_lock");
clear_tableRef = putName("clear_table");
closeRef = putName("close");
columnBindRef = putName("columnBind");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -71,6 +71,7 @@ mal_export  str capiRef;
 mal_export  str catalogRef;
 mal_export  str change_all_cpRef;
 mal_export  str change_single_cpRef;
+mal_export  str clean_streamtable_lockRef;
 mal_export  str clear_tableRef;
 mal_export  str closeRef;
 mal_export  str columnBindRef;
diff --git a/sql/backends/monet5/sql_basket.c b/sql/backends/monet5/sql_basket.c
--- a/sql/backends/monet5/sql_basket.c
+++ b/sql/backends/monet5/sql_basket.c
@@ -559,6 +559,26 @@ BSKTunlock(Client cntxt, MalBlkPtr mb, M
return MAL_SUCCEED;
 }
 
+// For the final clean up of the lock: unlock a basket if it's locked
+str
+BSKTcleanlock(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+   str sch = *getArgReference_str(stk,pci,2);
+   str tbl = *getArgReference_str(stk,pci,3);
+   int idx;
+
+   (void) cntxt;
+   (void) mb;
+
+   idx = BSKTlocate(sch, tbl);
+   if( idx ==0)
+   throw(SQL,"basket.cleanlock",SQLSTATE(3F000) "Stream table 
%s.%s not accessible\n",sch,tbl);
+   /* set the basket lock */
+   if (MT_lock_try(&baskets[idx].lock))
+   MT_lock_unset(&baskets[idx].lock);
+   return MAL_SUCCEED;
+}
+
 str
 BSKTdump(void *ret)
 {
diff --git a/sql/backends/monet5/sql_basket.h b/sql/backends/monet5/sql_basket.h
--- a/sql/backends/monet5/sql_basket.h
+++ b/sql/backends/monet5/sql_basket.h
@@ -61,6 +61,7 @@ sql5_export str BSKTreset(Client cntxt, 
 sql5_export str BSKTcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str BSKTlock(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str BSKTunlock(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+sql5_export str BSKTcleanlock(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 
 sql5_export str BSKTstatus( Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str BSKTdrop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: trails - Typo in constant name

2020-08-03 Thread Ying Zhang
Changeset: 58cc82a43c75 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58cc82a43c75
Modified Files:
sql/backends/monet5/sql_basket.c
sql/backends/monet5/sql_basket.h
Branch: trails
Log Message:

Typo in constant name


diffs (60 lines):

diff --git a/sql/backends/monet5/sql_basket.c b/sql/backends/monet5/sql_basket.c
--- a/sql/backends/monet5/sql_basket.c
+++ b/sql/backends/monet5/sql_basket.c
@@ -74,19 +74,19 @@ BSKTnewEntry(void)
BasketRec *bnew;
 
if( baskets == 0){
-   bnew = (BasketRec *) GDKzalloc((INTIAL_BSKT) * 
sizeof(BasketRec));
+   bnew = (BasketRec *) GDKzalloc((INITIAL_BSKT) * 
sizeof(BasketRec));
if( bnew == 0)
return 0;
-   bsktLimit = INTIAL_BSKT;
+   bsktLimit = INITIAL_BSKT;
baskets = bnew;
} else
if (bsktTop + 1 == bsktLimit) {
-   bnew = (BasketRec *) GDKrealloc(baskets, 
(bsktLimit+INTIAL_BSKT) * sizeof(BasketRec));
+   bnew = (BasketRec *) GDKrealloc(baskets, 
(bsktLimit+INITIAL_BSKT) * sizeof(BasketRec));
if( bnew == 0)
return 0;
-   bsktLimit += INTIAL_BSKT;
+   bsktLimit += INITIAL_BSKT;
baskets = bnew;
-   for (i = bsktLimit-INTIAL_BSKT; i < bsktLimit; i++){
+   for (i = bsktLimit-INITIAL_BSKT; i < bsktLimit; i++){
BSKTinit(i);
}
}
@@ -885,7 +885,7 @@ BSKTshutdown(void)
GDKfree(baskets);
baskets = NULL;
}
-   bsktLimit = INTIAL_BSKT;
+   bsktLimit = INITIAL_BSKT;
bsktTop = 1;
 }
 
@@ -893,8 +893,8 @@ str
 BSKTprelude(void *ret)
 {
(void) ret;
-   baskets = (BasketRec *) GDKzalloc(INTIAL_BSKT * sizeof(BasketRec));
-   bsktLimit = INTIAL_BSKT;
+   baskets = (BasketRec *) GDKzalloc(INITIAL_BSKT * sizeof(BasketRec));
+   bsktLimit = INITIAL_BSKT;
bsktTop = 1;
if( baskets == NULL)
throw(MAL, "basket.prelude", SQLSTATE(HY013) MAL_MALLOC_FAIL);
diff --git a/sql/backends/monet5/sql_basket.h b/sql/backends/monet5/sql_basket.h
--- a/sql/backends/monet5/sql_basket.h
+++ b/sql/backends/monet5/sql_basket.h
@@ -25,7 +25,7 @@
 #include "mal_interpreter.h"
 #include "sql.h"
 
-#define INTIAL_BSKT 128
+#define INITIAL_BSKT 128
 
 typedef struct{
sql_table *table;   /* The basket stream table */
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: trails - More clean up of the basket structure and some...

2020-08-03 Thread Ying Zhang
Changeset: 720479de31fe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=720479de31fe
Modified Files:
sql/backends/monet5/sql_basket.c
Branch: trails
Log Message:

More clean up of the basket structure and some information for the code


diffs (145 lines):

diff --git a/sql/backends/monet5/sql_basket.c b/sql/backends/monet5/sql_basket.c
--- a/sql/backends/monet5/sql_basket.c
+++ b/sql/backends/monet5/sql_basket.c
@@ -38,6 +38,19 @@
 BasketRec *baskets;   /* the global timetrails catalog */
 static int bsktTop = 0, bsktLimit = 0;
 
+// Initialise a basket, but leave the caller to deal with the lock
+#define BSKTinit(idx)   \
+   baskets[idx].table = NULL;  \
+   baskets[idx].cols = NULL;   \
+   baskets[idx].bats = NULL;   \
+   baskets[idx].ncols = 0; \
+   baskets[idx].count = 0; \
+   baskets[idx].window = 0;\
+   baskets[idx].stride = STRIDE_ALL;   \
+   baskets[idx].seen = timestamp_nil;  \
+   baskets[idx].events = 0;\
+   baskets[idx].error = NULL;
+
 // locate the basket in the basket catalog
 int
 BSKTlocate(str sch, str tbl)
@@ -73,6 +86,9 @@ BSKTnewEntry(void)
return 0;
bsktLimit += INTIAL_BSKT;
baskets = bnew;
+   for (i = bsktLimit-INTIAL_BSKT; i < bsktLimit; i++){
+   BSKTinit(i);
+   }
}
for (i = 1; i < bsktLimit; i++) { /* find an available slot */
if (baskets[i].table == NULL)
@@ -103,13 +119,17 @@ BSKTclean(int idx)
BBPunfix(baskets[idx].bats[i]->batCacheid);
baskets[idx].bats[i] =NULL;
}
+   baskets[i].ncols = 0;
GDKfree(baskets[idx].bats);
GDKfree(baskets[idx].cols);
+   baskets[idx].bats = NULL;
+   baskets[idx].cols = NULL;
MT_lock_destroy(&baskets[idx].lock);
}
 }
 
 // MAL/SQL interface for registration of a single table
+// Create the internal basket structure before we're going to use this stream 
table
 str
 BSKTregisterInternal(Client cntxt, MalBlkPtr mb, str sch, str tbl, int* res)
 {
@@ -146,6 +166,13 @@ BSKTregisterInternal(Client cntxt, MalBl
if((idx = BSKTnewEntry()) < 1)
throw(MAL,"basket.register",SQLSTATE(HY013) MAL_MALLOC_FAIL);
 
+   /* Since we just created a new basket entry to register this stream
+* table, when anything goes wrong below, we reset this basket to its 
initial
+* state. We destroy its lock here, because it's a new entry and no
+* lock has been set (basket.register is called before basket.lock). */
+   // FIXME: BSKTregisterInternal is also called by functions other than
+   //  basket.register, which shouldn't destroy the lock.  But
+   //  they should have been detected as double registration.
baskets[idx].table = t;
baskets[idx].window = t->stream->window;
baskets[idx].stride = t->stream->stride;
@@ -158,6 +185,7 @@ BSKTregisterInternal(Client cntxt, MalBl
int tpe = col->type.type->localtype;
 
if ( !(tpe <= TYPE_str || tpe == TYPE_date || tpe == 
TYPE_daytime || tpe == TYPE_timestamp) ) {
+   BSKTinit(idx);
MT_lock_destroy(&baskets[idx].lock);
throw(MAL,"basket.register",SQLSTATE(42000) 
"Unsupported type %d\n",tpe);
}
@@ -166,13 +194,14 @@ BSKTregisterInternal(Client cntxt, MalBl
baskets[idx].ncols = colcnt;
baskets[idx].bats = GDKmalloc(colcnt * sizeof(BAT **));
if(baskets[idx].bats == NULL) {
+   BSKTinit(idx);
MT_lock_destroy(&baskets[idx].lock);
throw(MAL,"basket.register",SQLSTATE(HY013) MAL_MALLOC_FAIL);
}
baskets[idx].cols = GDKmalloc(colcnt * sizeof(sql_column **));
if(baskets[idx].cols == NULL) {
+   BSKTinit(idx);
MT_lock_destroy(&baskets[idx].lock);
-   GDKfree(baskets[idx].bats);
throw(MAL,"basket.register",SQLSTATE(HY013) MAL_MALLOC_FAIL);
}
 
@@ -234,6 +263,7 @@ BSKTwindow(Client cntxt, MalBlkPtr mb, M
return MAL_SUCCEED;
 }
 
+// keep and release should be used as a pair
 str
 BSKTkeep(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -467,6 +497,7 @@ BSKTtumble(Client cntxt, MalBlkPtr mb, M
return BSKTtumbleInternal(cntxt, sch, tbl, idx, elw, elm);
 }
 
+// A no-op to handle an SQL COMMIT statement involving a stream table.
 str
 BSKTcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -516,7 +547,10 @@ BSKTunlock(Client cntxt, MalBlkPtr mb, M
if( idx ==0)
throw(SQL,"basket.lock",SQLSTATE(3F000) "Stream table %s.%s not 
accessible\n",sch,tbl);
 
-   

MonetDB: default - batmmath functions with two args should accep...

2020-08-03 Thread Sjoerd Mullender
Changeset: 0f24db5b9167 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0f24db5b9167
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
monetdb5/modules/kernel/batmmath.c
Branch: default
Log Message:

batmmath functions with two args should accept two BAT args (with cand lists).


diffs (125 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -5310,8 +5310,12 @@ stdout of test 'MAL-signatures` in direc
 [ "batmmath",  "atan", "pattern batmmath.atan(X_1:bat[:dbl], 
X_2:bat[:oid]):bat[:dbl] ",   "CMDscience_bat_atan;", ""  ]
 [ "batmmath",  "atan", "pattern batmmath.atan(X_1:bat[:flt]):bat[:flt] ",  
"CMDscience_bat_atan;", ""  ]
 [ "batmmath",  "atan", "pattern batmmath.atan(X_1:bat[:flt], 
X_2:bat[:oid]):bat[:flt] ",   "CMDscience_bat_atan;", ""  ]
+[ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:dbl], 
X_2:bat[:dbl]):bat[:dbl] ",  "CMDscience_bat_atan2;",""  ]
+[ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:dbl], 
X_2:bat[:dbl], X_3:bat[:oid], X_4:bat[:oid]):bat[:dbl] ",
"CMDscience_bat_atan2;",""  ]
 [ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:dbl], 
X_2:dbl):bat[:dbl] ","CMDscience_bat_atan2;",""  ]
 [ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:dbl], X_2:dbl, 
X_3:bat[:oid]):bat[:dbl] ", "CMDscience_bat_atan2;",""  ]
+[ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:flt], 
X_2:bat[:flt]):bat[:flt] ",  "CMDscience_bat_atan2;",""  ]
+[ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:flt], 
X_2:bat[:flt], X_3:bat[:oid], X_4:bat[:oid]):bat[:flt] ",
"CMDscience_bat_atan2;",""  ]
 [ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:flt], 
X_2:flt):bat[:flt] ","CMDscience_bat_atan2;",""  ]
 [ "batmmath",  "atan2","pattern batmmath.atan2(X_1:bat[:flt], X_2:flt, 
X_3:bat[:oid]):bat[:flt] ", "CMDscience_bat_atan2;",""  ]
 [ "batmmath",  "atan2","pattern batmmath.atan2(X_1:dbl, 
X_2:bat[:dbl]):bat[:dbl] ","CMDscience_bat_atan2;",""  ]
@@ -5358,8 +5362,12 @@ stdout of test 'MAL-signatures` in direc
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:dbl], 
X_2:bat[:oid]):bat[:dbl] ","CMDscience_bat_log;",  ""  ]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:flt]):bat[:flt] ",   
"CMDscience_bat_log;",  ""  ]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:flt], 
X_2:bat[:oid]):bat[:flt] ","CMDscience_bat_log;",  ""  ]
+[ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:dbl], 
X_2:bat[:dbl]):bat[:dbl] ","CMDscience_bat_logbs;",""  ]
+[ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:dbl], X_2:bat[:dbl], 
X_3:bat[:oid], X_4:bat[:oid]):bat[:dbl] ",  "CMDscience_bat_logbs;",""  
]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:dbl], X_2:dbl):bat[:dbl] 
",  "CMDscience_bat_logbs;",""  ]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:dbl], X_2:dbl, 
X_3:bat[:oid]):bat[:dbl] ",   "CMDscience_bat_logbs;",""  ]
+[ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:flt], 
X_2:bat[:flt]):bat[:flt] ","CMDscience_bat_logbs;",""  ]
+[ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:flt], X_2:bat[:flt], 
X_3:bat[:oid], X_4:bat[:oid]):bat[:flt] ",  "CMDscience_bat_logbs;",""  
]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:flt], X_2:flt):bat[:flt] 
",  "CMDscience_bat_logbs;",""  ]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:bat[:flt], X_2:flt, 
X_3:bat[:oid]):bat[:flt] ",   "CMDscience_bat_logbs;",""  ]
 [ "batmmath",  "log",  "pattern batmmath.log(X_1:dbl, X_2:bat[:dbl]):bat[:dbl] 
",  "CMDscience_bat_logbs;",""  ]
@@ -5374,8 +5382,12 @@ stdout of test 'MAL-signatures` in direc
 [ "batmmath",  "log2", "pattern batmmath.log2(X_1:bat[:dbl], 
X_2:bat[:oid]):bat[:dbl] ",   "CMDscience_bat_log2;", ""  ]
 [ "batmmath",  "log2", "pattern batmmath.log2(X_1:bat[:flt]):bat[:flt] ",  
"CMDscience_bat_log2;", ""  ]
 [ "batmmath",  "log2", "pattern batmmath.log2(X_1:bat[:flt], 
X_2:bat[:oid]):bat[:flt] ",   "CMDscience_bat_log2;", ""  ]
+[ "batmmath",  "pow",  "pattern batmmath.pow(X_1:bat[:dbl], 
X_2:bat[:dbl]):bat[:dbl] ","CMDscience_bat_pow;",  ""  ]
+[ "batmmath",  "pow",  "pattern batmmath.pow(X_1:bat[:dbl], X_2:bat[:dbl], 
X_3:bat[:oid], X_4:bat[:oid]):bat[:dbl] ",  "CMDscience_bat_pow;",  ""  ]
 [ "batmmath",  "pow",  "pattern batmmath.pow(X_1:bat[:dbl], X_2:dbl):bat[:dbl] 
",  "CMDscience_bat_pow;",  ""  ]
 [ "

MonetDB: default - Merged with oscar

2020-08-03 Thread Pedro Ferreira
Changeset: e5df861c73d3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5df861c73d3
Modified Files:
sql/common/CMakeLists.txt
sql/include/CMakeLists.txt
tools/mserver/CMakeLists.txt
Branch: default
Log Message:

Merged with oscar


diffs (truncated from 1089 to 300 lines):

diff --git a/misc/packages/rpm/COPYING b/COPYING
rename from misc/packages/rpm/COPYING
rename to COPYING
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -65,6 +65,9 @@
 # operators.  Otherwise the POSIX regex functions are used.
 %bcond_without pcre
 
+# By default, include C integration
+%bcond_without cintegration
+
 %if %{fedpkgs}
 # By default, create the MonetDB-R package.
 %bcond_without rintegration
@@ -108,6 +111,7 @@ BuildRequires: checkpolicy
 BuildRequires: selinux-policy-devel
 BuildRequires: hardlink
 %endif
+BuildRequires: cmake >= 3.12
 BuildRequires: gcc
 BuildRequires: bison
 BuildRequires: /usr/bin/python3
@@ -187,6 +191,7 @@ functionality of MonetDB.
 %{_includedir}/monetdb/gdk*.h
 %{_includedir}/monetdb/matomic.h
 %{_includedir}/monetdb/mstring.h
+%exclude %{_includedir}/monetdb/monetdbe.h
 %{_includedir}/monetdb/monet*.h
 %{_libdir}/libbat.so
 %{_libdir}/pkgconfig/monetdb-gdk.pc
@@ -462,7 +467,6 @@ Provides: MonetDB5-server-hugeint%{?_isa
 %endif
 %if (0%{?fedora} >= 22)
 Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release}
-%endif
 Suggests: %{name}-client%{?_isa} = %{version}-%{release}
 %endif
 # versions up to 1.0.5 don't accept the queryid field in the result set
@@ -515,7 +519,10 @@ exit 0
 %{_libdir}/libmonetdb5.so.*
 %dir %{_libdir}/monetdb5
 %{_libdir}/monetdb5/microbenchmark.mal
+%{_libdir}/monetdb5/run_*.mal
+%if %{with cintegration}
 %{_libdir}/monetdb5/lib_capi.so
+%endif
 %{_libdir}/monetdb5/lib_generator.so
 %{_libdir}/monetdb5/lib_udf.so
 %doc %{_mandir}/man1/mserver5.1.gz
@@ -599,13 +606,46 @@ use SQL with MonetDB, you will need to i
 %config(noreplace) %attr(664,monetdb,monetdb) 
%{_localstatedir}/monetdb5/dbfarm/.merovingian_properties
 %verify(not mtime) %attr(664,monetdb,monetdb) 
%{_localstatedir}/monetdb5/dbfarm/.merovingian_lock
 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/monetdbd
-%{_libdir}/monetdb5/lib_sql.so
+%{_libdir}/monetdb5/lib_sql.so*
 %doc %{_mandir}/man1/monetdb.1.gz
 %doc %{_mandir}/man1/monetdbd.1.gz
 %dir %{_datadir}/doc/MonetDB-SQL
 %docdir %{_datadir}/doc/MonetDB-SQL
 %{_datadir}/doc/MonetDB-SQL/*
 
+%package embedded
+Summary: MonetDB as an embedded library
+Group: Applications/Databases
+
+%description embedded
+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 front end.
+
+This package contains the library to turn MonetDB into an embeddable
+library.  Also see %{name}-embedded-devel to use this in a program.
+
+%files embedded
+%{_libdir}/libmonetdbe.so.*
+
+%package embedded-devel
+Summary: MonetDB as an embedded library development files
+Group: Applications/Databases
+
+%description embedded-devel
+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 front end.
+
+This package contains the library and include files to turn MonetDB
+into an embeddable library.
+
+%files embedded-devel
+%{_libdir}/libmonetdbe.so
+%{_includedir}/monetdb/monetdbe.h
+
 %package testing
 Summary: MonetDB - Monet Database Management System
 Group: Applications/Databases
@@ -719,66 +759,36 @@ fi
 %setup -q
 
 %build
-
-# There is a bug in GCC version 4.8 on AArch64 architectures
-# that causes it to report an internal error when compiling
-# testing/difflib.c.  The work around is to not use -fstack-protector-strong.
-# The bug exhibits itself on CentOS 7 on AArch64.
-# Everywhere else, add -Wno-format-truncation to the compiler options
-# to reduce the number of warnings during compilation.
-%ifarch aarch64
-if gcc -v 2>&1 | grep -q 'gcc version 4\.'; then
-   CFLAGS="${CFLAGS:-$(echo %optflags | sed 
's/-fstack-protector-strong//')}"
-else
-   CFLAGS="${CFLAGS:-%optflags -Wno-format-truncation}"
-fi
-%else
-CFLAGS="${CFLAGS:-%optflags -Wno-format-truncation}"
-%endif
-export CFLAGS
-# do not use --enable-optimize or --disable-optimize: we don't want
-# any changes to optimization flags
-%{configure} \
-   --with-rundir=%{_rundir}/monetdb \
-   --enable-assert=no \
-   --enable-debug=yes \
-   --enable-developer=no \
-   --enable-embedded=no \
-   --enable-embedded-r=no \
-   --enable-fits=%{?with_fits:yes}%{!?with_fits:no} \
-   --enable-geom=%{?with_geos:yes}%{!?with_geos:no} \
-   --enable-int128=%{?with_hugeint:yes}%{!?with_hugeint:no} \
-   --

MonetDB: oscar - Approved output, no median_avg on intervals

2020-08-03 Thread Pedro Ferreira
Changeset: dafbbb9bf6ff for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dafbbb9bf6ff
Modified Files:
sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.err
sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.out
Branch: oscar
Log Message:

Approved output, no median_avg on intervals


diffs (55 lines):

diff --git 
a/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.err 
b/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.err
--- a/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.err
+++ b/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.err
@@ -5,19 +5,14 @@ stderr of test 'aggregates-intervals.Bug
 # 16:49:00 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=34676" "--set" 
"mapi_usock=/var/tmp/mtest-284678/.s.monetdb.34676" "--forcemito" 
"--dbpath=/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2014"
 "--set" "embedded_c=true"
 # 16:49:00 >  
 
-# builtin opt  gdk_dbpath = 
/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/monetdb5/dbfarm/demo
-# builtin opt  mapi_port = 5
-# builtin opt  mapi_open = false
-# builtin opt  mapi_ipv6 = 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 = 34676
-# cmdline opt  mapi_usock = /var/tmp/mtest-284678/.s.monetdb.34676
-# cmdline opt  gdk_dbpath = 
/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2014
-# cmdline opt  embedded_c = true
+MAPI  = (monetdb) /var/tmp/mtest-402819/.s.monetdb.33142
+QUERY = SELECT median_avg(f1) from INTERVAL_TBL;
+ERROR = !types sec_interval(13,0) and tinyint(8,0) are not equal for column 
'f1'
+CODE  = 42000
+MAPI  = (monetdb) /var/tmp/mtest-402819/.s.monetdb.33142
+QUERY = SELECT median_avg(f1) from INTERVAL_TBL2;
+ERROR = !types month_interval(3,0) and tinyint(8,0) are not equal for column 
'f1'
+CODE  = 42000
 
 # 16:49:00 >  
 # 16:49:00 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-284678" "--port=34676"
diff --git 
a/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.out 
b/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.out
--- a/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.out
+++ b/sql/test/BugTracker-2014/Tests/aggregates-intervals.Bug-3533.stable.out
@@ -41,19 +41,7 @@ stdout of test 'aggregates-intervals.Bug
 % %1,  %2, %3, %4, %5, %6 # name
 % bigint,  month_interval, month_interval, month_interval, month_interval, 
month_interval # type
 % 1,   2,  1,  1,  1,  1 # length
-[ 4,   10, 2.5,2,  4,  1   ]
-#SELECT median_avg(f1) from INTERVAL_TBL;
-% sys.%1 # table_name
-% %1 # name
-% double # type
-% 24 # length
-[ 2.5  ]
-#SELECT median_avg(f1) from INTERVAL_TBL2;
-% sys.%1 # table_name
-% %1 # name
-% double # type
-% 24 # length
-[ 2.5  ]
+[ 4,   10, 3,  2,  4,  1   ]
 #DROP TABLE INTERVAL_TBL;
 #DROP TABLE INTERVAL_TBL2;
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Revert to libbat instead of libgdk: the latter ...

2020-08-03 Thread Sjoerd Mullender
Changeset: 911e664eca03 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=911e664eca03
Modified Files:
ctest/monetdb5/mal/CMakeLists.txt
gdk/CMakeLists.txt
geom/lib/CMakeLists.txt
geom/monetdb5/CMakeLists.txt
monetdb5/extras/mal_optimizer_template/CMakeLists.txt
monetdb5/extras/rapi/CMakeLists.txt
monetdb5/mal/CMakeLists.txt
monetdb5/modules/atoms/CMakeLists.txt
monetdb5/modules/kernel/CMakeLists.txt
monetdb5/tools/CMakeLists.txt
sql/backends/monet5/CMakeLists.txt
sql/backends/monet5/UDF/capi/CMakeLists.txt
sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
sql/backends/monet5/UDF/udf/CMakeLists.txt
sql/backends/monet5/generator/CMakeLists.txt
sql/backends/monet5/vaults/fits/CMakeLists.txt
sql/backends/monet5/vaults/netcdf/CMakeLists.txt
sql/backends/monet5/vaults/shp/CMakeLists.txt
sql/common/CMakeLists.txt
sql/server/CMakeLists.txt
sql/storage/CMakeLists.txt
sql/storage/bat/CMakeLists.txt
tools/merovingian/daemon/CMakeLists.txt
tools/monetdbe/CMakeLists.txt
tools/mserver/CMakeLists.txt
Branch: oscar
Log Message:

Revert to libbat instead of libgdk: the latter is already taken (by GTK).


diffs (truncated from 359 to 300 lines):

diff --git a/ctest/monetdb5/mal/CMakeLists.txt 
b/ctest/monetdb5/mal/CMakeLists.txt
--- a/ctest/monetdb5/mal/CMakeLists.txt
+++ b/ctest/monetdb5/mal/CMakeLists.txt
@@ -11,7 +11,7 @@ target_link_libraries(test_malEmbeddedBo
   PRIVATE
   monetdb_config_header
   mcrypt
-  gdk
+  bat
   mal
   ${CMAKE_DL_LIBS}
   Threads::Threads)
@@ -23,7 +23,7 @@ target_link_libraries(test_malInclude
   PRIVATE
   monetdb_config_header
   mcrypt
-  gdk
+  bat
   mal
   ${CMAKE_DL_LIBS}
   Threads::Threads)
diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt
--- a/gdk/CMakeLists.txt
+++ b/gdk/CMakeLists.txt
@@ -30,9 +30,9 @@ set(gdk_public_headers
   $
   $)
 
-add_library(gdk SHARED)
+add_library(bat SHARED)
 
-target_sources(gdk
+target_sources(bat
   PRIVATE
   gdk_select.c
   gdk_calc.c gdk_calc.h
@@ -81,12 +81,12 @@ target_sources(gdk
   PUBLIC
   ${gdk_public_headers})
 
-target_include_directories(gdk
+target_include_directories(bat
   PUBLIC
   $
   $)
 
-target_link_libraries(gdk
+target_link_libraries(bat
   PUBLIC
   stream
   matomic
@@ -101,11 +101,11 @@ target_link_libraries(gdk
   Threads::Threads)
 
 # This definition is also used in Linux
-target_compile_definitions(gdk
+target_compile_definitions(bat
   PRIVATE
   LIBGDK)
 
-set_target_properties(gdk
+set_target_properties(bat
   PROPERTIES
   VERSION ${GDK_VERSION}
   SOVERSION ${GDK_VERSION_MAJOR}
@@ -122,7 +122,7 @@ if (NOT WIN32)
 endif()
 
 install(TARGETS
-  gdk
+  bat
   EXPORT gdkTargets
   RUNTIME
   DESTINATION ${CMAKE_INSTALL_BINDIR}
diff --git a/geom/lib/CMakeLists.txt b/geom/lib/CMakeLists.txt
--- a/geom/lib/CMakeLists.txt
+++ b/geom/lib/CMakeLists.txt
@@ -24,7 +24,7 @@ if(GEOS_FOUND)
 PRIVATE
 mutils
 stream
-gdk
+bat
 Geos::Geos
 $<$:PROJ::PROJ>)
 
diff --git a/geom/monetdb5/CMakeLists.txt b/geom/monetdb5/CMakeLists.txt
--- a/geom/monetdb5/CMakeLists.txt
+++ b/geom/monetdb5/CMakeLists.txt
@@ -40,7 +40,7 @@ if(GEOS_FOUND)
 PRIVATE
 mutils
 stream
-gdk
+bat
 geomlib
 monetdb5
 sql
diff --git a/monetdb5/extras/mal_optimizer_template/CMakeLists.txt 
b/monetdb5/extras/mal_optimizer_template/CMakeLists.txt
--- a/monetdb5/extras/mal_optimizer_template/CMakeLists.txt
+++ b/monetdb5/extras/mal_optimizer_template/CMakeLists.txt
@@ -24,7 +24,7 @@ target_link_libraries(opt_sql_append
   monetdb_config_header
   mutils
   stream
-  gdk
+  bat
   monetdb5)
 
 target_compile_definitions(opt_sql_append 
diff --git a/monetdb5/extras/rapi/CMakeLists.txt 
b/monetdb5/extras/rapi/CMakeLists.txt
--- a/monetdb5/extras/rapi/CMakeLists.txt
+++ b/monetdb5/extras/rapi/CMakeLists.txt
@@ -26,7 +26,7 @@ if(LIBR_FOUND)
 monetdb_config_header
 mutils 
 stream
-gdk
+bat
 monetdb5
 sqlinclude
 LibR::LibR)
diff --git a/monetdb5/mal/CMakeLists.txt b/monetdb5/mal/CMakeLists.txt
--- a/monetdb5/mal/CMakeLists.txt
+++ b/monetdb5/mal/CMakeLists.txt
@@ -79,7 +79,7 @@ target_link_libraries(mal
   monetdb_config_header
   mutils
   mapi
-  gdk)
+  bat)
 
 set_target_properties(mal
   PROPERTIES
diff --git a/monetdb5/modules/atoms/CMakeLists.txt 
b/monetdb5/modules/atoms/CMakeLists.txt
--- a/monetdb5/modules/atoms/CMakeLists.txt
+++ b/monetdb5/modules/atoms/CMakeLists.txt
@@ -39,7 +39,7 @@ target_link_libraries(atoms
   PRIVATE
   monetdb_config_header
   mutils
-  gdk
+  bat
   mal)
 
 if(WIN32)
diff --git a/monetdb5/modules/kernel/CMakeLists.txt 
b/monetdb5/modules/kernel/CMakeLists.txt
--- a/monetdb5/modules/kernel/CMakeLists.txt
+++ b/monetdb5/modules/kernel/CMakeLists.txt
@@ -44,7 +44,7 @@ target_link_libraries(kernel
   PRIVATE
   monetdb_config_head

MonetDB: oscar - MonetDBe package.

2020-08-03 Thread Sjoerd Mullender
Changeset: 2f2e460151db for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2f2e460151db
Modified Files:
MonetDB.spec
cmake/monetdb-versions.cmake
Branch: oscar
Log Message:

MonetDBe package.


diffs (80 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -191,6 +191,7 @@ functionality of MonetDB.
 %{_includedir}/monetdb/gdk*.h
 %{_includedir}/monetdb/matomic.h
 %{_includedir}/monetdb/mstring.h
+%exclude %{_includedir}/monetdb/monetdbe.h
 %{_includedir}/monetdb/monet*.h
 %{_libdir}/libbat.so
 %{_libdir}/pkgconfig/monetdb-gdk.pc
@@ -612,6 +613,39 @@ use SQL with MonetDB, you will need to i
 %docdir %{_datadir}/doc/MonetDB-SQL
 %{_datadir}/doc/MonetDB-SQL/*
 
+%package embedded
+Summary: MonetDB as an embedded library
+Group: Applications/Databases
+
+%description embedded
+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 front end.
+
+This package contains the library to turn MonetDB into an embeddable
+library.  Also see %{name}-embedded-devel to use this in a program.
+
+%files embedded
+%{_libdir}/libmonetdbe.so.*
+
+%package embedded-devel
+Summary: MonetDB as an embedded library development files
+Group: Applications/Databases
+
+%description embedded-devel
+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 front end.
+
+This package contains the library and include files to turn MonetDB
+into an embeddable library.
+
+%files embedded-devel
+%{_libdir}/libmonetdbe.so
+%{_includedir}/monetdb/monetdbe.h
+
 %package testing
 Summary: MonetDB - Monet Database Management System
 Group: Applications/Databases
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -10,11 +10,6 @@ set(MONETDB_VERSION_MAJOR "11")
 set(MONETDB_VERSION_MINOR "38")
 set(MONETDB_VERSION_PATCH "0")
 
-set(MONETDBE_VERSION_MAJOR "0")
-set(MONETDBE_VERSION_MINOR "1")
-set(MONETDBE_VERSION_PATCH "0")
-set(MONETDBE_VERSION 
"${MONETDBE_VERSION_MAJOR}.${MONETDBE_VERSION_MINOR}.${MONETDBE_VERSION_PATCH}")
-
 if(RELEASE_VERSION)
   math(EXPR MONETDB_VERSION_PATCH "${MONETDB_VERSION_PATCH} + 1")
   set(MONETDB_RELEASE "default")
@@ -77,6 +72,13 @@ set(MONETDB5_VERSION_AGE "0")
 math(EXPR MONETDB5_VERSION_MAJOR "${MONETDB5_VERSION_CURRENT} - 
${MONETDB5_VERSION_AGE}")
 set(MONETDB5_VERSION 
"${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_AGE}.${MONETDB5_VERSION_REVISION}")
 
+# version of the MONETDBE library (subdirectory tools/monetdbe)
+set(MONETDBE_VERSION_CURRENT "0")
+set(MONETDBE_VERSION_REVISION "1")
+set(MONETDBE_VERSION_AGE "0")
+math(EXPR MONETDBE_VERSION_MAJOR "${MONETDBE_VERSION_CURRENT} - 
${MONETDBE_VERSION_AGE}")
+set(MONETDBE_VERSION 
"${MONETDBE_VERSION_MAJOR}.${MONETDBE_VERSION_AGE}.${MONETDBE_VERSION_REVISION}")
+
 # version of the STREAM library (subdirectory common/stream)
 set(STREAM_VERSION_CURRENT "13")
 set(STREAM_VERSION_REVISION "6")
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Don't install some stuff, and do install some o...

2020-08-03 Thread Sjoerd Mullender
Changeset: 7e6f578c9fb3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7e6f578c9fb3
Modified Files:
MonetDB.spec
Branch: oscar
Log Message:

Don't install some stuff, and do install some other stuff.


diffs (29 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -518,6 +518,7 @@ exit 0
 %{_libdir}/libmonetdb5.so.*
 %dir %{_libdir}/monetdb5
 %{_libdir}/monetdb5/microbenchmark.mal
+%{_libdir}/monetdb5/run_*.mal
 %if %{with cintegration}
 %{_libdir}/monetdb5/lib_capi.so
 %endif
@@ -604,7 +605,7 @@ use SQL with MonetDB, you will need to i
 %config(noreplace) %attr(664,monetdb,monetdb) 
%{_localstatedir}/monetdb5/dbfarm/.merovingian_properties
 %verify(not mtime) %attr(664,monetdb,monetdb) 
%{_localstatedir}/monetdb5/dbfarm/.merovingian_lock
 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/monetdbd
-%{_libdir}/monetdb5/lib_sql.so
+%{_libdir}/monetdb5/lib_sql.so*
 %doc %{_mandir}/man1/monetdb.1.gz
 %doc %{_mandir}/man1/monetdbd.1.gz
 %dir %{_datadir}/doc/MonetDB-SQL
@@ -795,6 +796,8 @@ install -d -m 0775 %{buildroot}%{_rundir
 rm -f %{buildroot}%{_libdir}/*.la
 rm -f %{buildroot}%{_libdir}/monetdb5/*.la
 rm -f %{buildroot}%{_libdir}/monetdb5/lib_opt_sql_append.so
+rm -f %{buildroot}%{_bindir}/monetdb_mtest.sh
+rm -rf %{buildroot}%{_datadir}/monetdb # /cmake
 
 %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
 for selinuxvariant in %{selinux_variants}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Don't install every file in sight.

2020-08-03 Thread Sjoerd Mullender
Changeset: d16f6546dfca for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d16f6546dfca
Modified Files:
clients/mapiclient/CMakeLists.txt
common/options/CMakeLists.txt
common/utils/CMakeLists.txt
geom/monetdb5/CMakeLists.txt
monetdb5/mal/CMakeLists.txt
monetdb5/modules/atoms/CMakeLists.txt
monetdb5/modules/kernel/CMakeLists.txt
monetdb5/modules/mal/CMakeLists.txt
monetdb5/optimizer/CMakeLists.txt
monetdb5/scheduler/CMakeLists.txt
sql/backends/monet5/CMakeLists.txt
sql/common/CMakeLists.txt
sql/include/CMakeLists.txt
sql/server/CMakeLists.txt
sql/storage/CMakeLists.txt
sql/storage/bat/CMakeLists.txt
tools/merovingian/utils/CMakeLists.txt
Branch: oscar
Log Message:

Don't install every file in sight.


diffs (truncated from 335 to 300 lines):

diff --git a/clients/mapiclient/CMakeLists.txt 
b/clients/mapiclient/CMakeLists.txt
--- a/clients/mapiclient/CMakeLists.txt
+++ b/clients/mapiclient/CMakeLists.txt
@@ -85,18 +85,6 @@ target_link_libraries(stethoscope
   $<$:ws2_32>)
 
 install(TARGETS
-  mcutil
-  RUNTIME
-  DESTINATION ${CMAKE_INSTALL_BINDIR}
-  LIBRARY
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  ARCHIVE
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  PUBLIC_HEADER
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/monetdb
-  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
-install(TARGETS
   mclient
   msqldump
   RUNTIME
diff --git a/common/options/CMakeLists.txt b/common/options/CMakeLists.txt
--- a/common/options/CMakeLists.txt
+++ b/common/options/CMakeLists.txt
@@ -36,14 +36,9 @@ set_target_properties(moptions
   POSITION_INDEPENDENT_CODE ON
   PUBLIC_HEADER "${moptions_public_headers}")
 
-install(TARGETS
-  moptions
-  LIBRARY
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  ARCHIVE
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  PUBLIC_HEADER
+install(FILES
+  monet_options.h
+  monet_getopt.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/monetdb
-  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
   COMPONENT
   monetdbdev)
diff --git a/common/utils/CMakeLists.txt b/common/utils/CMakeLists.txt
--- a/common/utils/CMakeLists.txt
+++ b/common/utils/CMakeLists.txt
@@ -145,21 +145,6 @@ set_target_properties(mprompt
   POSITION_INDEPENDENT_CODE ON
   PUBLIC_HEADER mprompt.h)
 
-install(TARGETS
-  mutils
-  mcrypt
-  msabaoth
-  mprompt
-  RUNTIME
-  DESTINATION ${CMAKE_INSTALL_BINDIR}
-  LIBRARY
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  ARCHIVE
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  PUBLIC_HEADER
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/monetdb
-  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
 # We need to define the matomic target because it is a public
 # dependency of gdk.
 install(TARGETS
diff --git a/geom/monetdb5/CMakeLists.txt b/geom/monetdb5/CMakeLists.txt
--- a/geom/monetdb5/CMakeLists.txt
+++ b/geom/monetdb5/CMakeLists.txt
@@ -18,9 +18,6 @@ if(GEOS_FOUND)
 path "${CMAKE_SOURCE_DIR}/geom/sql"
 modules_list ${include_sql_files})
 
-  set(geomodule_public_headers
-${CMAKE_CURRENT_SOURCE_DIR}/geom.h)
-
   target_sources(geomodule
 PRIVATE
 geom.c
diff --git a/monetdb5/mal/CMakeLists.txt b/monetdb5/mal/CMakeLists.txt
--- a/monetdb5/mal/CMakeLists.txt
+++ b/monetdb5/mal/CMakeLists.txt
@@ -8,16 +8,16 @@
 
 set(mal_public_headers
   ${CMAKE_CURRENT_SOURCE_DIR}/mal.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_linker.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_authorize.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_client.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_errors.h
   ${CMAKE_CURRENT_SOURCE_DIR}/mal_exception.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_instruction.h
   ${CMAKE_CURRENT_SOURCE_DIR}/mal_import.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_type.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_stack.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_instruction.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_linker.h
   ${CMAKE_CURRENT_SOURCE_DIR}/mal_namespace.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_errors.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_client.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/mal_authorize.h)
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_stack.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/mal_type.h)
 
 add_library(mal OBJECT)
 
@@ -88,10 +88,6 @@ set_target_properties(mal
 
 install(TARGETS
   mal
-  LIBRARY
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  ARCHIVE
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
   PUBLIC_HEADER
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/monetdb
   COMPONENT serverdev
diff --git a/monetdb5/modules/atoms/CMakeLists.txt 
b/monetdb5/modules/atoms/CMakeLists.txt
--- a/monetdb5/modules/atoms/CMakeLists.txt
+++ b/monetdb5/modules/atoms/CMakeLists.txt
@@ -69,13 +69,3 @@ set_target_properties(atoms
   PROPERTIES
   POSITION_INDEPENDENT_CODE ON
   PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/mtime.h)
-
-install(TARGETS
-  atoms
-  LIBRARY
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  ARCHIVE
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  PUBLIC_HEADER
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/monetdb
-  INCLUDES DESTINATION 

MonetDB: oscar - Remove obsolete file.

2020-08-03 Thread Sjoerd Mullender
Changeset: afda73fee8d0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=afda73fee8d0
Removed Files:
rpm.mk.in
Branch: oscar
Log Message:

Remove obsolete file.


diffs (69 lines):

diff --git a/rpm.mk.in b/rpm.mk.in
deleted file mode 100644
--- a/rpm.mk.in
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- makefile -*-
-
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0.  If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V.
-
-# make rules to generate MonetDB RPMs (works on Fedora, only)
-
-rpmtopdir = $(shell cd $(top_builddir) && pwd)/rpmbuild
-
-RPMBUILDARGS = --define="_tmppath /tmp" --define="_topdir $(rpmtopdir)" 
--define="tmpdir %{_tmppath}" --define="rpmcflags -O2 " --define="packager 
MonetDB Database System "
-
-$(top_builddir)/$(distdir).tar.bz2:
-   $(MAKE) $(AM_MAKEFLAGS) dist-bzip2
-
-$(top_builddir)/$(distdir).tar.xz:
-   $(MAKE) $(AM_MAKEFLAGS) dist-xz
-
-$(rpmtopdir)/rpmmacros:
-   mkdir -p $(rpmtopdir)/RPMS
-   mkdir -p $(rpmtopdir)/SRPMS
-   mkdir -p $(rpmtopdir)/SPECS
-   mkdir -p $(rpmtopdir)/BUILD
-   mkdir -p $(rpmtopdir)/INSTALL
-
-rpm: MonetDB.spec $(top_builddir)/$(distdir).tar.bz2 $(rpmtopdir)/rpmmacros
-   $(RPMBUILD) $(RPMBUILDARGS) --define="dist _@LINUX_DIST@" -ta --target 
`uname -m` --define="comp_cc @CC@" $(top_builddir)/$(distdir).tar.bz2
-
-srpm: MonetDB.spec $(top_builddir)/$(distdir).tar.bz2 $(rpmtopdir)/rpmmacros
-   $(RPMBUILD) $(RPMBUILDARGS) --define="dist %{?undefined}" -ts 
$(top_builddir)/$(distdir).tar.bz2
-
-all: monetdb_hgversion.h
-
-monetdb_hgversion.h: always
-   if [ -d "$(srcdir)"/.hg ] && hgid=`(cd "$(srcdir)"; hg id -i) 
2>/dev/null`; then \
-   echo "#define MERCURIAL_ID \"$$hgid\"" > 
monetdb_hgversion.h.new; \
-   if [ -f monetdb_hgversion.h ] && cmp -s monetdb_hgversion.h 
monetdb_hgversion.h.new; then \
-   rm -f monetdb_hgversion.h.new; \
-   else \
-   mv -f monetdb_hgversion.h.new monetdb_hgversion.h; \
-   fi; \
-   elif [ -e "$(srcdir)"/.git ]; then \
-   hgid="`(cd "$(srcdir)"; git rev-parse --short HEAD)` (git)"; \
-   dirty=`(cd "$(srcdir)"; [[ -z $$(git status -s) ]] || echo 
"+")`; \
-   echo "#define MERCURIAL_ID \"$$hgid$$dirty\"" > 
monetdb_hgversion.h.new; \
-   if [ -f monetdb_hgversion.h ] && cmp -s monetdb_hgversion.h 
monetdb_hgversion.h.new; then \
-   rm -f monetdb_hgversion.h.new; \
-   else \
-   mv -f monetdb_hgversion.h.new monetdb_hgversion.h; \
-   fi; \
-   elif [ ! -f monetdb_hgversion.h ]; then \
-   touch monetdb_hgversion.h; \
-   fi
-
-
-install: install-lock
-
-install-lock: always
-   mkdir -p $(DESTDIR)$(localstatedir)/monetdb5/dbfarm
-   touch $(DESTDIR)$(localstatedir)/monetdb5/dbfarm/.merovingian_lock
-
-always:
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Install empty .merovingian_lock file.

2020-08-03 Thread Sjoerd Mullender
Changeset: 29790102772c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=29790102772c
Modified Files:
MonetDB.spec
Branch: oscar
Log Message:

Install empty .merovingian_lock file.


diffs (11 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -786,6 +786,7 @@ rmdir %{buildroot}%{_sysconfdir}/tmpfile
 
 install -d -m 0750 %{buildroot}%{_localstatedir}/lib/monetdb
 install -d -m 0770 %{buildroot}%{_localstatedir}/monetdb5/dbfarm
+touch %{buildroot}%{_localstatedir}/monetdb5/dbfarm/.merovingian_lock
 install -d -m 0775 %{buildroot}%{_localstatedir}/log/monetdb
 install -d -m 0775 %{buildroot}%{_rundir}/monetdb
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Make C integration optional.

2020-08-03 Thread Sjoerd Mullender
Changeset: f1a1c0b6b72d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f1a1c0b6b72d
Modified Files:
MonetDB.spec
Branch: oscar
Log Message:

Make C integration optional.


diffs (32 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -65,6 +65,9 @@
 # operators.  Otherwise the POSIX regex functions are used.
 %bcond_without pcre
 
+# By default, include C integration
+%bcond_without cintegration
+
 %if %{fedpkgs}
 # By default, create the MonetDB-R package.
 %bcond_without rintegration
@@ -515,7 +518,9 @@ exit 0
 %{_libdir}/libmonetdb5.so.*
 %dir %{_libdir}/monetdb5
 %{_libdir}/monetdb5/microbenchmark.mal
+%if %{with cintegration}
 %{_libdir}/monetdb5/lib_capi.so
+%endif
 %{_libdir}/monetdb5/lib_generator.so
 %{_libdir}/monetdb5/lib_udf.so
 %doc %{_mandir}/man1/mserver5.1.gz
@@ -721,7 +726,7 @@ fi
 %build
 %{cmake} \
-DASSERT=OFF \
-   -DCINTEGRATION=ON \
+   -DCINTEGRATION=%{?with_cintegration:ON}%{!?with_cintegration:OFF} \
-DFITS=%{?with_fits:ON}%{!?with_fits:OFF} \
-DGEOM=%{?with_geos:ON}%{!?with_geos:OFF} \
-DINT128=%{?with_hugeint:ON}%{!?with_hugeint:OFF} \
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Don't use cmake_dependent_option to set default...

2020-08-03 Thread Sjoerd Mullender
Changeset: d309e35470cd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d309e35470cd
Modified Files:
cmake/monetdb-options.cmake
Branch: oscar
Log Message:

Don't use cmake_dependent_option to set default values for options.
That's not how it works.


diffs (47 lines):

diff --git a/cmake/monetdb-options.cmake b/cmake/monetdb-options.cmake
--- a/cmake/monetdb-options.cmake
+++ b/cmake/monetdb-options.cmake
@@ -27,17 +27,13 @@ cmake_dependent_option(CINTEGRATION
   "NOT WIN32"
   OFF)
 
-cmake_dependent_option(PY3INTEGRATION 
+option(PY3INTEGRATION 
   "Enable support for Python 3 integration into MonetDB (default=ON)"
-  ON
-  "DEVELOPMENT"
-  OFF)
+  ON)
 
-cmake_dependent_option(RINTEGRATION 
+option(RINTEGRATION 
   "Enable support for R integration into MonetDB (default=ON)"
-  ON
-  "DEVELOPMENT"
-  OFF)
+  ON)
 
 option(FITS 
   "Enable support for FITS (default=ON)"
@@ -69,17 +65,13 @@ option(SANITIZER
   "Enable support for the GCC address sanitizer (default=OFF)"
   OFF)
 
-cmake_dependent_option(STRICT 
+option(STRICT 
   "Enable strict compiler flags (default=ON for development sources, OFF for 
tarball installation)"
-  ON
-  "DEVELOPMENT"
-  OFF)
+  "${DEVELOPMENT}")
 
-cmake_dependent_option(ASSERT 
+option(ASSERT 
   "Enable asserts (default=ON for development sources, OFF for tarball 
installation)"
-  ON
-  "DEVELOPMENT"
-  OFF)
+  "${DEVELOPMENT}")
 
 option(WITH_BZ2
   "Include bz2 support"
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Move COPYING file back to where it belongs.

2020-08-03 Thread Sjoerd Mullender
Changeset: a189e07baa7f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a189e07baa7f
Added Files:
COPYING
Removed Files:
misc/packages/rpm/COPYING
Branch: oscar
Log Message:

Move COPYING file back to where it belongs.


diffs (3 lines):

diff --git a/misc/packages/rpm/COPYING b/COPYING
rename from misc/packages/rpm/COPYING
rename to COPYING
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Use cmake to build rpm.

2020-08-03 Thread Sjoerd Mullender
Changeset: dc52dc88b303 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dc52dc88b303
Modified Files:
MonetDB.spec
Branch: oscar
Log Message:

Use cmake to build rpm.


diffs (117 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -108,6 +108,7 @@ BuildRequires: checkpolicy
 BuildRequires: selinux-policy-devel
 BuildRequires: hardlink
 %endif
+BuildRequires: cmake >= 3.12
 BuildRequires: gcc
 BuildRequires: bison
 BuildRequires: /usr/bin/python3
@@ -718,66 +719,36 @@ fi
 %setup -q
 
 %build
-
-# There is a bug in GCC version 4.8 on AArch64 architectures
-# that causes it to report an internal error when compiling
-# testing/difflib.c.  The work around is to not use -fstack-protector-strong.
-# The bug exhibits itself on CentOS 7 on AArch64.
-# Everywhere else, add -Wno-format-truncation to the compiler options
-# to reduce the number of warnings during compilation.
-%ifarch aarch64
-if gcc -v 2>&1 | grep -q 'gcc version 4\.'; then
-   CFLAGS="${CFLAGS:-$(echo %optflags | sed 
's/-fstack-protector-strong//')}"
-else
-   CFLAGS="${CFLAGS:-%optflags -Wno-format-truncation}"
-fi
-%else
-CFLAGS="${CFLAGS:-%optflags -Wno-format-truncation}"
-%endif
-export CFLAGS
-# do not use --enable-optimize or --disable-optimize: we don't want
-# any changes to optimization flags
-%{configure} \
-   --with-rundir=%{_rundir}/monetdb \
-   --enable-assert=no \
-   --enable-debug=yes \
-   --enable-developer=no \
-   --enable-embedded=no \
-   --enable-embedded-r=no \
-   --enable-fits=%{?with_fits:yes}%{!?with_fits:no} \
-   --enable-geom=%{?with_geos:yes}%{!?with_geos:no} \
-   --enable-int128=%{?with_hugeint:yes}%{!?with_hugeint:no} \
-   --enable-mapi=yes \
-   --enable-netcdf=no \
-   --enable-odbc=yes \
-   --enable-profiler=no \
-   
--enable-py3integration=%{?with_py3integration:yes}%{!?with_py3integration:no} \
-   
--enable-rintegration=%{?with_rintegration:yes}%{!?with_rintegration:no} \
-   --enable-sanitizer=no \
-   --enable-shp=no \
-   --enable-static-analysis=no \
-   --enable-strict=no \
-   --enable-testing=yes \
-   --with-bz2=yes \
-   --with-curl=yes \
-   --with-gdal=no \
-   --with-geos=%{?with_geos:yes}%{!?with_geos:no} \
-   --with-libxml2=yes \
-   --with-lz4=no \
-   --with-lzma=yes \
-   --with-openssl=yes \
-   --with-proj=no \
-   --with-pthread=yes \
-   --with-python3=yes \
-   --with-readline=yes \
-   --with-regex=%{?with_pcre:PCRE}%{!?with_pcre:POSIX} \
-   --with-snappy=no \
-   --with-unixodbc=yes \
-   --with-uuid=yes \
-   --with-valgrind=no \
-   %{?comp_cc:CC="%{comp_cc}"}
-
-%make_build
+%{cmake} \
+   -DASSERT=OFF \
+   -DCINTEGRATION=ON \
+   -DFITS=%{?with_fits:ON}%{!?with_fits:OFF} \
+   -DGEOM=%{?with_geos:ON}%{!?with_geos:OFF} \
+   -DINT128=%{?with_hugeint:ON}%{!?with_hugeint:OFF} \
+   -DNETCDF=OFF \
+   -DODBC=ON \
+   -DPY3INTEGRATION=%{?with_py3integration:ON}%{!?with_py3integration:OFF} 
\
+   -DRINTEGRATION=%{?with_rintegration:ON}%{!?with_rintegration:OFF} \
+   -DSANITIZER=OFF \
+   -DSHP=OFF \
+   -DSTRICT=OFF \
+   -DTESTING=ON \
+   -DWITH_BZ2=ON \
+   -DWITH_CMOCKA=OFF \
+   -DWITH_CRYPTO=ON \
+   -DWITH_CURL=ON \
+   -DWITH_LZ4=OFF \
+   -DWITH_LZMA=ON \
+   -DWITH_PCRE=ON \
+   -DWITH_PROJ=OFF \
+   -DWITH_READLINE=ON \
+   -DWITH_SNAPPY=OFF \
+   -DWITH_UUID=ON \
+   -DWITH_VALGRIND=OFF \
+   -DWITH_XML2=ON \
+   -DWITH_ZLIB=ON
+
+%cmake_build
 
 %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
 cd buildtools/selinux
@@ -796,7 +767,7 @@ cd -
 %endif
 
 %install
-%make_install
+%cmake_install
 
 # move file to correct location
 %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: oscar - Remove extraneous endif.

2020-08-03 Thread Sjoerd Mullender
Changeset: 6ac263e5cf79 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ac263e5cf79
Modified Files:
MonetDB.spec
Branch: oscar
Log Message:

Remove extraneous endif.


diffs (11 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -462,7 +462,6 @@ Provides: MonetDB5-server-hugeint%{?_isa
 %endif
 %if (0%{?fedora} >= 22)
 Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release}
-%endif
 Suggests: %{name}-client%{?_isa} = %{version}-%{release}
 %endif
 # versions up to 1.0.5 don't accept the queryid field in the result set
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Small bugfix, at rel_values, set the cardinal...

2020-08-03 Thread Pedro Ferreira
Changeset: 5ad737dc2e27 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5ad737dc2e27
Modified Files:
sql/server/rel_select.c
Branch: default
Log Message:

Small bugfix, at rel_values, set the cardinality to the relation columns as well


diffs (43 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -763,12 +763,12 @@ rel_values(sql_query *query, symbol *tab
sql_rel *r = NULL;
dlist *rowlist = tableref->data.lval;
symbol *optname = rowlist->t->data.sym;
-   dnode *o;
node *m;
list *exps = sa_list(sql->sa);
exp_kind ek = {type_value, card_value, TRUE};
-
-   for (o = rowlist->h; o; o = o->next) {
+   unsigned int card = dlist_length(rowlist) == 1 ? CARD_ATOM : CARD_MULTI;
+
+   for (dnode *o = rowlist->h; o; o = o->next) {
dlist *values = o->data.lval;
 
/* When performing sub-queries, the relation name appears under 
a SQL_NAME symbol at the end of the list */
@@ -798,14 +798,19 @@ rel_values(sql_query *query, symbol *tab
}
}
}
-   /* loop to check types */
-   for (m = exps->h; m; m = m->next)
-   if (!(m->data = exp_values_set_supertype(sql, (sql_exp*) 
m->data, NULL)))
+   /* loop to check types and cardinality */
+   for (m = exps->h; m; m = m->next) {
+   sql_exp *e = m->data;
+
+   if (!(e = exp_values_set_supertype(sql, e, NULL)))
return NULL;
+   e->card = card;
+   m->data = e;
+   }
 
r = rel_project(sql->sa, NULL, exps);
r->nrcols = list_length(exps);
-   r->card = dlist_length(rowlist) == 1 ? CARD_ATOM : CARD_MULTI;
+   r->card = card;
return rel_table_optname(sql, r, optname);
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Use temporary sql allocator, now that it jump...

2020-08-03 Thread Pedro Ferreira
Changeset: a7a36bd79a1b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a7a36bd79a1b
Modified Files:
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/server/rel_select.c
sql/server/rel_unnest.c
Branch: default
Log Message:

Use temporary sql allocator, now that it jumps on an allocation failure scenario


diffs (truncated from 623 to 300 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -649,13 +649,8 @@ order_join_expressions(mvc *sql, list *d
if (cnt == 0)
return res;
 
-   keys = GDKmalloc(cnt*sizeof(int));
-   data = GDKmalloc(cnt*sizeof(void *));
-   if (keys == NULL || data == NULL) {
-   GDKfree(keys);
-   GDKfree(data);
-   return NULL;
-   }
+   keys = SA_NEW_ARRAY(sql->ta, int, cnt);
+   data = SA_NEW_ARRAY(sql->ta, void*, cnt);
 
for (n = dje->h, i = 0; n; n = n->next, i++) {
sql_exp *e = n->data;
@@ -678,8 +673,6 @@ order_join_expressions(mvc *sql, list *d
for(i=0; ita, char, list_length(l));
+   ru = SA_ZNEW_ARRAY(sql->ta, char, list_length(r));
for (n = l->h, lc = 0; n; n = n->next, lc++) {
sql_exp *le = n->data;
 
@@ -3496,8 +3489,6 @@ exps_cse( mvc *sql, list *oexps, list *l
append(oexps, exp_or(sql->sa, list_dup(l, (fdup)NULL),
 list_dup(r, (fdup)NULL), 0));
}
-   GDKfree(lu);
-   GDKfree(ru);
return res;
 }
 
@@ -5466,7 +5457,7 @@ static list *
 rel_used_projections(mvc *sql, list *exps, list *users)
 {
list *nexps = sa_list(sql->sa);
-   bool *used = (bool*)GDKzalloc(sizeof(bool) * list_length(exps));
+   bool *used = SA_ZNEW_ARRAY(sql->ta, bool, list_length(exps));
int i = 0;
 
for(node *n = users->h; n; n = n->next) {
@@ -5480,7 +5471,6 @@ rel_used_projections(mvc *sql, list *exp
if (is_intern(e) || used[i])
append(nexps, e);
}
-   GDKfree(used);
return nexps;
 }
 
@@ -5650,37 +5640,33 @@ rel_groupby_order(visitor *v, sql_rel *r
node *n;
list *gbe = rel->r;
int i, ngbe = list_length(gbe);
-   scores = GDKmalloc(ngbe * sizeof(int));
-   exps = GDKmalloc(ngbe * sizeof(sql_exp*));
-
-   if (scores && exps) {
-   /* first sorting step, give priority for integers and 
sorted columns */
-   for (i = 0, n = gbe->h; n; i++, n = n->next) {
-   exps[i] = n->data;
-   scores[i] = score_gbe(v->sql, rel, exps[i]);
-   }
-   GDKqsort(scores, exps, NULL, ngbe, sizeof(int), 
sizeof(void *), TYPE_int, true, true);
-
-   /* second sorting step, give priority to strings with 
lower number of digits */
-   for (i = ngbe - 1; i && !scores[i]; i--); /* find 
epressions with no score from the first round */
-   if (scores[i])
-   i++;
-   if (ngbe - i > 1) {
-   for (int j = i; j < ngbe; j++) {
-   sql_subtype *t = exp_subtype(exps[j]);
-   scores[j] = t->digits;
-   }
-   /* the less number of digits the better, order 
ascending */
-   GDKqsort(scores + i, exps + i, NULL, ngbe - i, 
sizeof(int), sizeof(void *), TYPE_int, false, true);
-   }
-
-   for (i = 0, n = gbe->h; n; i++, n = n->next)
-   n->data = exps[i];
-   }
-   }
-
-   GDKfree(scores);
-   GDKfree(exps);
+   scores = SA_NEW_ARRAY(v->sql->ta, int, ngbe);
+   exps = SA_NEW_ARRAY(v->sql->ta, sql_exp*, ngbe);
+
+   /* first sorting step, give priority for integers and sorted 
columns */
+   for (i = 0, n = gbe->h; n; i++, n = n->next) {
+   exps[i] = n->data;
+   scores[i] = score_gbe(v->sql, rel, exps[i]);
+   }
+   GDKqsort(scores, exps, NULL, ngbe, sizeof(int), sizeof(void *), 
TYPE_int, true, true);
+
+   /* second sorting step, give priority to strings with lower 
number of digits */
+   for (i = ngbe - 1; i && !scores[i]; i--); /* find epressions 
with no score from the first round */
+   if (scores[i])
+   i++;
+   if (ngbe - i > 1) {
+   for (int j = i; j < ngbe; j++) {
+   sql_subtype *t = exp_subtype(exps[j]);
+   scores[j] = t->digits

MonetDB: trails - Corrected a mistake introduced in changeset 60...

2020-08-03 Thread Ying Zhang
Changeset: cc35a4d33df6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cc35a4d33df6
Modified Files:
sql/backends/monet5/sql_basket.c
Branch: trails
Log Message:

Corrected a mistake introduced in changeset 607d10cfd006: only the basket idx 
starts from 1, all other indices start from 0.

Also corrected some error messages


diffs (25 lines):

diff --git a/sql/backends/monet5/sql_basket.c b/sql/backends/monet5/sql_basket.c
--- a/sql/backends/monet5/sql_basket.c
+++ b/sql/backends/monet5/sql_basket.c
@@ -279,7 +279,7 @@ BSKTbindColumn(str sch, str tbl, str col
if( (idx = BSKTlocate(sch,tbl)) == 0)
return NULL;
 
-   for( i=1; i < baskets[idx].ncols; i++)
+   for( i=0; i < baskets[idx].ncols; i++)
if( strcmp(baskets[idx].cols[i]->base.name, col)== 0)
return baskets[idx].bats[i];
return NULL;
@@ -300,10 +300,10 @@ BSKTtid(Client cntxt, MalBlkPtr mb, MalS
 
bskt = BSKTlocate(sch,tbl);
if( bskt == 0)  
-   throw(SQL,"basket.bind",SQLSTATE(3F000) "Stream table column 
'%s.%s' not found\n",sch,tbl);
+   throw(SQL,"basket.tid",SQLSTATE(3F000) "Stream table '%s.%s' 
not found\n",sch,tbl);
b = baskets[bskt].bats[0];
if( b == 0)
-   throw(SQL,"basket.bind",SQLSTATE(3F000) "Stream table reference 
column '%s.%s' not accessible\n",sch,tbl);
+   throw(SQL,"basket.tid",SQLSTATE(3F000) "Stream table reference 
column '%s.%s.tid' not accessible\n",sch,tbl);
 
tids = COLnew(0, TYPE_void, 0, TRANSIENT);
if (tids == NULL)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Make the second input argument to lead and la...

2020-08-03 Thread Pedro Ferreira
Changeset: d5319e63022c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d5319e63022c
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
sql/backends/monet5/sql.c
sql/test/subquery/Tests/subquery6.sql
sql/test/subquery/Tests/subquery6.stable.out
Branch: default
Log Message:

Make the second input argument to lead and lag function arbitrary, so it can be 
bound on the backend


diffs (254 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -5603,29 +5603,29 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql","get_value","pattern batsql.get_value(X_1:bat[:str], 
X_2:bat[:str]):bat[:lng] ","mvc_bat_get_value;",   ""  ]
 [ "batsql","get_value","pattern batsql.get_value(X_1:bat[:str], 
X_2:str):bat[:lng] ",  "mvc_bat_get_value;",   ""  ]
 [ "batsql","get_value","pattern batsql.get_value(X_1:str, 
X_2:bat[:str]):bat[:lng] ",  "mvc_bat_get_value;",   ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:any_2, 
X_3:bat[:any_1], X_4:any_3, X_5:any_4):bat[:any_1] ", "SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:bat[:any_2], 
X_3:any_1, X_4:any_3, X_5:any_4):bat[:any_1] ", "SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:bat[:any_2], 
X_3:any_3, X_4:any_4):bat[:any_1] ","SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:bat[:any_2], 
X_3:bat[:any_1], X_4:any_3, X_5:any_4):bat[:any_1] ",   "SQLlag;",  ""  
]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any_2, 
X_3:any_1, X_4:any_3, X_5:any_4):bat[:any_1] ", "SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any_2, 
X_3:any_3, X_4:any_4):bat[:any_1] ","SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any_2, 
X_3:bat[:any_1], X_4:any_3, X_5:any_4):bat[:any_1] ",   "SQLlag;",  ""  
]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any_3, 
X_3:any_4):bat[:any_1] ",   "SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:bat[:any_2], 
X_3:any_1, X_4:any_3, X_5:any_4):bat[:any_1] ",   "SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:bat[:any_2], 
X_3:any_3, X_4:any_4):bat[:any_1] ",  "SQLlag;",  ""  ]
-[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:bat[:any_2], 
X_3:bat[:any_1], X_4:any_3, X_5:any_4):bat[:any_1] ", "SQLlag;",  ""
  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:any, 
X_3:bat[:any_1], X_4:any_2, X_5:any_3):bat[:any_1] ",   "SQLlag;",  ""  
]
+[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:bat[:any], 
X_3:any_1, X_4:any_2, X_5:any_3):bat[:any_1] ",   "SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:bat[:any], 
X_3:any_2, X_4:any_3):bat[:any_1] ",  "SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:any_1, X_2:bat[:any], 
X_3:bat[:any_1], X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;",  ""
  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any, 
X_3:any_1, X_4:any_2, X_5:any_3):bat[:any_1] ",   "SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any, 
X_3:any_2, X_4:any_3):bat[:any_1] ",  "SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any, 
X_3:bat[:any_1], X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;",  ""
  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:any_2, 
X_3:any_3):bat[:any_1] ",   "SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:bat[:any], 
X_3:any_1, X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:bat[:any], 
X_3:any_2, X_4:any_3):bat[:any_1] ","SQLlag;",  ""  ]
+[ "batsql","lag",  "pattern batsql.lag(X_1:bat[:any_1], X_2:bat[:any], 
X_3:bat[:any_1], X_4:any_2, X_5:any_3):bat[:any_1] ",   "SQLlag;",  ""  
]
 [ "batsql","last_value",   "pattern batsql.last_value(X_1:bat[:any_1], 
X_2:bat[:lng], X_3:bat[:lng]):bat[:any_1] ","SQLlast_value;",   ""  
]
-[ "batsql","lead", "pattern batsql.lead(X_1:any_1, X_2:any_2, 
X_3:bat[:any_1], X_4:any_3, X_5:any_4):bat[:any_1] ","SQLlead;", "" 
 ]
-[ "batsql","lead", "pattern batsql.lead(X_1:any_1, X_2:bat[:any_2], 
X_3:any_1, X_4:any_3, X_5:any_4):bat[:any_1] ","SQLlead;", ""  ]
-[ "batsql","lead", "pattern batsql.lead(X_1:any_1, X_2:bat[:any_2], 
X_3:any_3, X_4:any_4):bat

MonetDB: default - Several window function fixes:

2020-08-03 Thread Pedro Ferreira
Changeset: ef1f6d8e462e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ef1f6d8e462e
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
sql/backends/monet5/sql.c
sql/backends/monet5/sql_rank.c
sql/server/rel_select.c
sql/test/subquery/Tests/subquery6.sql
sql/test/subquery/Tests/subquery6.stable.out
Branch: default
Log Message:

Several window function fixes:

1. percent_rank and cume_dist output dbl instead of int for the single case.
2. Set output window function type in case of ANY, alike at rel_nop case.
3. The first input value for ntile and nth_value can be from any type.


diffs (183 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -5631,12 +5631,12 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql","next_value",   "unsafe pattern 
batsql.next_value(X_1:bat[:str], X_2:bat[:str]):bat[:lng] ",
"mvc_bat_next_value;",  ""  ]
 [ "batsql","next_value",   "unsafe pattern 
batsql.next_value(X_1:bat[:str], X_2:str):bat[:lng] ",  "mvc_bat_next_value;",  
""  ]
 [ "batsql","next_value",   "unsafe pattern batsql.next_value(X_1:str, 
X_2:bat[:str]):bat[:lng] ",  "mvc_bat_next_value;",  ""  ]
-[ "batsql","nth_value","pattern batsql.nth_value(X_1:any_1, 
X_2:bat[:any_2], X_3:lng, X_4:lng):bat[:any_1] ",  "SQLnth_value;",""   
   ]
-[ "batsql","nth_value","pattern batsql.nth_value(X_1:bat[:any_1], 
X_2:any_2, X_3:bat[:lng], X_4:bat[:lng]):bat[:any_1] ",  "SQLnth_value;",   
 ""  ]
-[ "batsql","nth_value","pattern batsql.nth_value(X_1:bat[:any_1], 
X_2:bat[:any_2], X_3:bat[:lng], X_4:bat[:lng]):bat[:any_1] ",
"SQLnth_value;",""  ]
-[ "batsql","ntile","pattern batsql.ntile(X_1:any_1, 
X_2:bat[:any_2], X_3:any_3, X_4:any_4):bat[:any_2] ",  "SQLntile;",""  ]
-[ "batsql","ntile","pattern batsql.ntile(X_1:bat[:any_1], 
X_2:any_2, X_3:any_3, X_4:any_4):bat[:any_2] ",  "SQLntile;",""  ]
-[ "batsql","ntile","pattern batsql.ntile(X_1:bat[:any_1], 
X_2:bat[:any_2], X_3:any_3, X_4:any_4):bat[:any_2] ","SQLntile;","" 
 ]
+[ "batsql","nth_value","pattern batsql.nth_value(X_1:any, 
X_2:bat[:any_1], X_3:lng, X_4:lng):bat[:any] ",  "SQLnth_value;","" 
 ]
+[ "batsql","nth_value","pattern batsql.nth_value(X_1:bat[:any], 
X_2:any_1, X_3:bat[:lng], X_4:bat[:lng]):bat[:any] ",  "SQLnth_value;",
""  ]
+[ "batsql","nth_value","pattern batsql.nth_value(X_1:bat[:any], 
X_2:bat[:any_1], X_3:bat[:lng], X_4:bat[:lng]):bat[:any] ","SQLnth_value;", 
   ""  ]
+[ "batsql","ntile","pattern batsql.ntile(X_1:any, X_2:bat[:any_1], 
X_3:any_2, X_4:any_3):bat[:any_1] ","SQLntile;",""  ]
+[ "batsql","ntile","pattern batsql.ntile(X_1:bat[:any], X_2:any_1, 
X_3:any_2, X_4:any_3):bat[:any_1] ","SQLntile;",""  ]
+[ "batsql","ntile","pattern batsql.ntile(X_1:bat[:any], 
X_2:bat[:any_1], X_3:any_2, X_4:any_3):bat[:any_1] ",  "SQLntile;",""   
   ]
 [ "batsql","password", "pattern 
batsql.password(X_1:bat[:str]):bat[:str] ","db_password_wrap;",""  ]
 [ "batsql","percent_rank", "pattern batsql.percent_rank(X_1:bat[:any_1], 
X_2:any_2, X_3:any_3):bat[:dbl] ","SQLpercent_rank;", ""  ]
 [ "batsql","prod", "pattern batsql.prod(X_1:bat[:bte], X_2:bat[:lng], 
X_3:bat[:lng]):bat[:lng] ",  "SQLprod;", ""  ]
@@ -8357,8 +8357,8 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",   "ms_trunc", "command sql.ms_trunc(X_1:flt, X_2:int):flt ",  
"flt_trunc_wrap;",  ""  ]
 [ "sql",   "mvc",  "pattern sql.mvc():int ",   "SQLmvc;",  ""  
]
 [ "sql",   "next_value",   "unsafe pattern sql.next_value(X_1:str, 
X_2:str):lng ", "mvc_next_value;",  ""  ]
-[ "sql",   "nth_value","pattern sql.nth_value(X_1:any_1, X_2:any_1, 
X_3:lng, X_4:lng):any_1 ", "SQLnth_value;",""  ]
-[ "sql",   "ntile","pattern sql.ntile(X_1:any_1, X_2:any_2, 
X_3:any_3, X_4:any_4):any_2 ", "SQLntile;",""  ]
+[ "sql",   "nth_value","pattern sql.nth_value(X_1:any, X_2:any_1, 
X_3:lng, X_4:lng):any ", "SQLnth_value;",""  ]
+[ "sql",   "ntile","pattern sql.ntile(X_1:any, X_2:any_1, X_3:bit, 
X_4:bit):any_1 ",   "SQLntile;",""  ]
 [ "sql",   "optimizer_updates","pattern sql.optimizer_updates():void 
","SQLoptimizersUpdate;", ""  ]
 [ "sql",   "optimizers",   "command sql.optimizers() (X_0:bat[:str], 
X_1:bat[:str], X_2:bat[:str]) ",  "getPipeCatalog;",  ""  ]
 [ "sql",   "password", "pattern sql.password(X_1:str):str ",   
"db_pa

MonetDB: default - Clean up ignore file.

2020-08-03 Thread Sjoerd Mullender
Changeset: 5fa74e984c67 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5fa74e984c67
Modified Files:
.hgignore
Branch: default
Log Message:

Clean up ignore file.


diffs (58 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -15,32 +15,7 @@ syntax: glob
 # recommended build process plus a few patterns of files that we never
 # want in the repository (object files and such).
 
-# files generated by bootstrap
-Makefile.am
-Makefile.in
-Makefile.msc
-aclocal.m4
-acout.in
-autom4te.cache
-buildtools/conf/compile
-buildtools/conf/config.guess
-buildtools/conf/config.sub
-buildtools/conf/install-sh
-buildtools/conf/libtool.m4
-buildtools/conf/ltmain.sh
-buildtools/conf/ltoptions.m4
-buildtools/conf/ltsugar.m4
-buildtools/conf/ltversion.m4
-buildtools/conf/lt~obsolete.m4
-buildtools/conf/missing
-buildtools/conf/ylwrap
-configure
-configure.ac
-doc.lst
-install.lst
-monetdb_config.h.in
 *.pyc
-sql/backends/monet5/UDF/capi/cheader.text.h
 
 # files generated by various editors
 *.swp
@@ -73,21 +48,6 @@ tags
 *.rej
 *.orig
 
-# build results on Windows
-NT/.monetdb
-NT/buildtools
-NT/clients
-NT/common
-NT/gdk
-NT/geom
-NT/java
-NT/monetdb5
-NT/monetdb_config.h
-NT/sql
-NT/testing
-NT/tools
-NT/unistd.h
-
 # package building on Mac OS X
 MacOSX/build
 MacOSX/usr
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Approve upgrade.

2020-08-03 Thread Sjoerd Mullender
Changeset: 6cfe97b5dd88 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6cfe97b5dd88
Modified Files:
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Approve upgrade.


diffs (truncated from 183364 to 300 lines):

diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -336,5542 +336,5550 @@ insert into sys.functions values (104, '
 insert into sys.args values (34984, 104, 'res_0', 'any', 0, 0, 0, 0);
 insert into sys.args values (34985, 104, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.args values (34986, 104, 'arg_2', 'any', 0, 0, 1, 2);
-insert into sys.functions values (105, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34987, 105, 'res_0', 'hugeint', 128, 0, 0, 0);
-insert into sys.args values (34988, 105, 'arg_1', 'tinyint', 8, 0, 1, 1);
+insert into sys.functions values (105, 'star', '', '', 0, 1, false, false, 
false, 2000, true, true);
+insert into sys.args values (34987, 105, 'res_0', 'any', 0, 0, 0, 0);
 insert into sys.functions values (106, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34989, 106, 'res_0', 'hugeint', 128, 0, 0, 0);
-insert into sys.args values (34990, 106, 'arg_1', 'smallint', 16, 0, 1, 1);
+insert into sys.args values (34988, 106, 'res_0', 'hugeint', 128, 0, 0, 0);
+insert into sys.args values (34989, 106, 'arg_1', 'tinyint', 8, 0, 1, 1);
 insert into sys.functions values (107, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34991, 107, 'res_0', 'hugeint', 128, 0, 0, 0);
-insert into sys.args values (34992, 107, 'arg_1', 'int', 32, 0, 1, 1);
+insert into sys.args values (34990, 107, 'res_0', 'hugeint', 128, 0, 0, 0);
+insert into sys.args values (34991, 107, 'arg_1', 'smallint', 16, 0, 1, 1);
 insert into sys.functions values (108, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34993, 108, 'res_0', 'hugeint', 128, 0, 0, 0);
-insert into sys.args values (34994, 108, 'arg_1', 'hugeint', 128, 0, 1, 1);
+insert into sys.args values (34992, 108, 'res_0', 'hugeint', 128, 0, 0, 0);
+insert into sys.args values (34993, 108, 'arg_1', 'int', 32, 0, 1, 1);
 insert into sys.functions values (109, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34995, 109, 'res_0', 'bigint', 64, 0, 0, 0);
-insert into sys.args values (34996, 109, 'arg_1', 'bigint', 64, 0, 1, 1);
+insert into sys.args values (34994, 109, 'res_0', 'hugeint', 128, 0, 0, 0);
+insert into sys.args values (34995, 109, 'arg_1', 'hugeint', 128, 0, 1, 1);
 insert into sys.functions values (110, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34997, 110, 'res_0', 'decimal', 38, 0, 0, 0);
-insert into sys.args values (34998, 110, 'arg_1', 'decimal', 2, 0, 1, 1);
+insert into sys.args values (34996, 110, 'res_0', 'bigint', 64, 0, 0, 0);
+insert into sys.args values (34997, 110, 'arg_1', 'bigint', 64, 0, 1, 1);
 insert into sys.functions values (111, 'sum', 'sum', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (34999, 111, 'res_0', 'decimal', 38, 0, 0, 0);
-insert into sys.args values (35000, 111, 'arg_1', 'decimal', 4, 0, 1, 1);
+insert into sys.args values (34998, 111, 'res_0', 'decimal', 38, 0, 0, 0);
+insert into sys.args values (34999, 111, 'arg_1', 'decimal', 2, 0, 1, 1)

MonetDB: default - Cleaning ntile single input implementation, t...

2020-08-03 Thread Pedro Ferreira
Changeset: b586efce6f2b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b586efce6f2b
Modified Files:
sql/backends/monet5/sql_rank.c
Branch: default
Log Message:

Cleaning ntile single input implementation, the first input parameter is not 
used


diffs (35 lines):

diff --git a/sql/backends/monet5/sql_rank.c b/sql/backends/monet5/sql_rank.c
--- a/sql/backends/monet5/sql_rank.c
+++ b/sql/backends/monet5/sql_rank.c
@@ -746,19 +746,11 @@ SQLcume_dist(Client cntxt, MalBlkPtr mb,
 #define NTILE_VALUE_SINGLE_IMP(TPE) \
do { \
TPE val = *(TPE*) VALget(ntile); \
-   if (!VALisnil(ntile) && val < 1) \
+   if (!is_##TPE##_nil(val) && val < 1) \
throw(SQL, "sql.ntile", SQLSTATE(42000) "ntile must be 
greater than zero"); \
-   if (VALisnil(ntile) || val > 1) { \
-   ValRecord def = (ValRecord) {.vtype = TYPE_void,}; \
-   if (!VALinit(&def, tp1, ATOMnilptr(tp1)) || 
!VALcopy(res, &def)) { \
-   VALclear(&def); \
-   throw(SQL, "sql.ntile", SQLSTATE(HY013) 
MAL_MALLOC_FAIL); \
-   } \
-   VALclear(&def); \
-   } else { \
-   if (!VALcopy(res, in)) \
-   throw(SQL, "sql.ntile", SQLSTATE(HY013) 
MAL_MALLOC_FAIL); \
-   } \
+   if (!is_##TPE##_nil(val)) \
+   val = 1; \
+   VALset(res, tp2, &val); \
} while(0)
 
 str
@@ -826,7 +818,6 @@ SQLntile(Client cntxt, MalBlkPtr mb, Mal
throw(SQL, "sql.ntile", GDK_EXCEPTION);
} else {
ValRecord *res = &(stk)->stk[(pci)->argv[0]];
-   ValRecord *in = &(stk)->stk[(pci)->argv[1]];
ValRecord *ntile = &(stk)->stk[(pci)->argv[2]];
 
switch (tp2) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Rearrange struct so that initializer doesn't ...

2020-08-03 Thread Sjoerd Mullender
Changeset: 60cc0e393347 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=60cc0e393347
Modified Files:
tools/merovingian/utils/control.c
Branch: default
Log Message:

Rearrange struct so that initializer doesn't cause error in clang.


diffs (17 lines):

diff --git a/tools/merovingian/utils/control.c 
b/tools/merovingian/utils/control.c
--- a/tools/merovingian/utils/control.c
+++ b/tools/merovingian/utils/control.c
@@ -24,11 +24,11 @@
 #include "mstring.h"
 
 struct control_state {
-   char sbuf[8096];
-   char rbuf[8096];
int sock;
stream *fdin;
stream *fdout;
+   char sbuf[8096];
+   char rbuf[8096];
 };
 
 static char *
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list