MonetDB: default - only nullif still has rewrite in exp_nop
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 ...
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
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...
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...
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
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...
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...
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
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
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 ...
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.
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...
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.
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.
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.
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.
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...
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.
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.
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.
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...
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...
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...
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...
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:
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.
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.
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...
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 ...
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