MonetDB: resource_management - create new branch for resource_ma...
Changeset: af12610859ae for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/af12610859ae Modified Files: clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_calc_convert.c gdk/gdk_string.c gdk/gdk_utils.c gdk/gdk_value.c monetdb5/extras/rapi/rapi.c monetdb5/mal/mal.h monetdb5/mal/mal_builder.c monetdb5/mal/mal_client.c monetdb5/mal/mal_client.h monetdb5/mal/mal_function.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_session.c monetdb5/mal/mal_stack.c monetdb5/modules/mal/calc.c monetdb5/modules/mal/iterator.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/manifold.c monetdb5/modules/mal/remote.c monetdb5/optimizer/opt_aliases.c monetdb5/optimizer/opt_coercion.c monetdb5/optimizer/opt_commonTerms.c monetdb5/optimizer/opt_constants.c monetdb5/optimizer/opt_costModel.c monetdb5/optimizer/opt_dataflow.c monetdb5/optimizer/opt_deadcode.c monetdb5/optimizer/opt_dict.c monetdb5/optimizer/opt_emptybind.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_for.c monetdb5/optimizer/opt_garbageCollector.c monetdb5/optimizer/opt_generator.c monetdb5/optimizer/opt_inline.c monetdb5/optimizer/opt_inline.h monetdb5/optimizer/opt_matpack.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_profiler.c monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_querylog.c monetdb5/optimizer/opt_remap.c monetdb5/optimizer/opt_remoteQueries.c monetdb5/optimizer/opt_reorder.c monetdb5/optimizer/opt_support.h sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/pyapi3/pyapi3.c sql/backends/monet5/generator/generator.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_rank.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statement.h sql/common/sql_hash.c sql/common/sql_list.c sql/include/sql_hash.h sql/include/sql_list.h sql/include/sql_mem.h sql/scripts/23_skyserver.sql sql/server/rel_basetable.c sql/server/rel_optimizer.c sql/server/sql_parser.y sql/server/sql_var.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_utils.c sql/storage/sql_catalog.c sql/storage/store.c sql/test/prepare/Tests/sqlancer_prepare.sql sql/test/prepare/Tests/sqlancer_prepare.stable.err sql/test/prepare/Tests/sqlancer_prepare.stable.err.int128 Branch: resource_management Log Message: create new branch for resource_management improvements first steps: use allocators in mal interpreter (therefor also the VAL* functions can now optionaly have an allocator as first argument) use temp - allocators instead of temp GDKmalloc's in optimizers diffs (truncated from 4354 to 300 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -416,11 +416,11 @@ gdk_return TMsubcommit_list(bat *restric void VALclear(ValPtr v); int VALcmp(const ValRecord *p, const ValRecord *q); void *VALconvert(int typ, ValPtr t); -ValPtr VALcopy(ValPtr dst, const ValRecord *src); +ValPtr VALcopy(allocator *va, ValPtr dst, const ValRecord *src); void VALempty(ValPtr v); char *VALformat(const ValRecord *res) __attribute__((__warn_unused_result__)); void *VALget(ValPtr v); -ValPtr VALinit(ValPtr d, int tpe, const void *s); +ValPtr VALinit(allocator *va, ValPtr d, int tpe, const void *s); bool VALisnil(const ValRecord *v); ValPtr VALset(ValPtr v, int t, void *p); gdk_return VARcalcabsolute(ValPtr ret, const ValRecord *v); @@ -580,8 +580,10 @@ const ptr ptr_nil; struct dirent *readdir(DIR *dir); void rewinddir(DIR *dir); void *sa_alloc(allocator *sa, size_t sz); +void sa_close(allocator *sa); allocator *sa_create(allocator *pa); void sa_destroy(allocator *sa); +void sa_open(allocator *sa); void *sa_realloc(allocator *sa, void *ptr, size_t sz, size_t osz); allocator *sa_reset(allocator *sa); size_t sa_size(allocator *sa); @@ -880,8 +882,8 @@ char *concatErrors(char *err1, const cha const char *connectRef; const char *contai
MonetDB: check - merge with default
Changeset: 04574dd85264 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/04574dd85264 Modified Files: sql/backends/monet5/rel_bin.c sql/include/sql_catalog.h sql/server/rel_schema.c sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.y sql/storage/sql_storage.h sql/storage/store.c Branch: check Log Message: merge with default diffs (truncated from 175674 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -822,3 +822,5 @@ 1230526af30f40eeea30fb87c47c3e414920561f 1230526af30f40eeea30fb87c47c3e414920561f Dec2023_release 95d8feaa1167b5ba87bd99253c3f4e62ebf528a1 Dec2023_3 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_5 +dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_SP1_release +d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_7 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -91,7 +91,7 @@ Group: Applications/Databases License: MPL-2.0 URL: https://www.monetdb.org/ BugURL: https://github.com/MonetDB/MonetDB/issues -Source: https://www.monetdb.org/downloads/sources/Dec2023-SP1/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Dec2023-SP2/%{name}-%{version}.tar.bz2 # The Fedora packaging document says we need systemd-rpm-macros for # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7 @@ -679,7 +679,6 @@ This package contains files needed to de %files SQL-server5-devel %defattr(-,root,root) -%{_includedir}/monetdb/exception_buffer.h %{_includedir}/monetdb/opt_backend.h %{_includedir}/monetdb/rel_*.h %{_includedir}/monetdb/sql*.h @@ -808,9 +807,7 @@ do /usr/sbin/semodule -s ${selinuxvariant} -i \ %{_datadir}/selinux/${selinuxvariant}/monetdb.pp &> /dev/null || : done -# use /var/run/monetdb since that's what it says in the monetdb.fc file -# it says that because /run/monetdb for some reason doesn't work -/sbin/restorecon -R %{_localstatedir}/monetdb5 %{_localstatedir}/log/monetdb /var/run/monetdb %{_bindir}/monetdbd %{_bindir}/mserver5 %{_unitdir}/monetdbd.service &> /dev/null || : +/sbin/restorecon -R %{_localstatedir}/monetdb5 %{_localstatedir}/log/monetdb %{_rundir}/monetdb %{_bindir}/monetdbd %{_bindir}/mserver5 %{_unitdir}/monetdbd.service &> /dev/null || : /usr/bin/systemctl try-restart monetdbd.service %postun selinux @@ -839,6 +836,13 @@ fi %setup -q %build +# from Fedora 40, selinux uses /run where before it used /var/run +# the code is now for Fedora 40 but needs a patch for older versions +%if (0%{?fedora} < 40) +sed -i 's;@CMAKE_INSTALL_FULL_RUNSTATEDIR@/monetdb;@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/run/monetdb;' misc/selinux/monetdb.fc.in +sed -i 's/1\.2/1.1/' misc/selinux/monetdb.te +%endif + %cmake3 \ -DCMAKE_INSTALL_RUNSTATEDIR=/run \ -DRELEASE_VERSION=ON \ @@ -917,6 +921,31 @@ fi %endif %changelog +* Tue Apr 09 2024 Sjoerd Mullender - 11.49.7-20240409 +- Rebuilt. +- GH#7469: Crash when using `CONTAINS` +- GH#7479: MonetDB server crashes in `exp_ref` +- GH#7490: commonTerms optimizer no longer works +- GH#7495: Crash when simultaneously querying and updating a string column. + +* Thu Mar 28 2024 Sjoerd Mullender - 11.49.7-20240409 +- gdk: Threads have their own list of free bats. The list was not returned + to the system when a thread exited, meaning that the free bats that + were in the list would not be reused by any thread. This has been + fixed. + +* Tue Mar 19 2024 Sjoerd Mullender - 11.49.7-20240409 +- monetdb5: Fixed interaction between mserver5 and remote mserver5 when only one + of the two has 128 bit integer support. + +* Tue Mar 19 2024 Sjoerd Mullender - 11.49.7-20240409 +- sql: Fixed issue where equal column aliases were created. When those + aliases were parsed on the remote side it could give crashes. + +* Mon Mar 18 2024 Sjoerd Mullender - 11.49.7-20240409 +- gdk: Fixed a couple of deadlock situations, one actually observed, one + never observed. + * Tue Mar 12 2024 Sjoerd Mullender - 11.49.5-20240312 - Rebuilt. - GH#7390: Some MonetDB Server crashes found diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -187,7 +187,7 @@ def main(): print(r'') print(r' ') id = comp(extend, id, 16, - sorted([r'include\monetdb\{}'.format(x) for x in filter(lambda x: (x.startswith('gdk') or x.startswith('monet') or x.startswith('mal') or x.startswith('sql') or x.startswith('rel') or x.startswith('store') or x.startswith('exception') or x.startswith('opt_backend')) and x.endswith('.h'), os.listdir(os.path.join(sys.argv[3], 'include', 'monetdb')))] + + sorted([r'include\monetdb\{}'.format(x) for x in filter(lambda x: (x.startswith('gdk') or x.startswith('monet') or x.startswith('mal') or x.startswith('sql') or x.startswith('rel') or x.startswith('store') or x.startswith('opt_backend')) and x.endswith('.h'), os.listdir(os.p
MonetDB: check - column CHECK condition on insert
Changeset: 4a1b36c42d20 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4a1b36c42d20 Modified Files: sql/backends/monet5/rel_bin.c sql/server/rel_schema.c Branch: check Log Message: column CHECK condition on insert diffs (86 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 @@ -16,6 +16,7 @@ #include "rel_rel.h" #include "rel_basetable.h" #include "rel_exp.h" +#include "rel_dump.h" #include "rel_psm.h" #include "rel_prop.h" #include "rel_select.h" @@ -4926,6 +4927,42 @@ sql_insert_triggers(backend *be, sql_tab return res; } +static void +sql_insert_check(backend *be, sql_table *t, sql_rel *rel, list *refs) +{ + mvc *sql = be->mvc; + node *m, *n; + + sql_rel* rel2 = rel_copy(sql, rel, 1); + + list* exps = rel2->exps; + + sql_rel* rel3; + + + sql_subtype *bt = sql_bind_localtype("bit"); + + for (n = ol_first_node(t->columns), m = exps->h; n && m; + n = n->next, m = m->next) { + sql_exp *i = m->data; + sql_column *c = n->data; + if (c->check) { + i->alias.rname= sa_strdup(sql->sa, t->base.name); + i->alias.name= sa_strdup(sql->sa, c->base.name); + + int pos = 0; + rel3 = rel_read(sql, sa_strdup(sql->sa, c->check), &pos, sa_list(sql->sa)); + rel3->l = rel2; + stmt* s = subrel_bin(be, rel3, refs); + s = stmt_uselect(be, column(be, s), stmt_atom(be, atom_zero_value(sql->sa, bt)), cmp_equal, NULL, 0, 1); + sql_subfunc *cnt = sql_bind_func(sql, "sys", "count", sql_bind_localtype("void"), NULL, F_AGGR, true, true); + s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1); + char *msg = sa_message(sql->sa, SQLSTATE(40002) "INSERT INTO: CHECK constraint violated for column %s.%s", c->t->base.name, c->base.name); + (void)stmt_exception(be, s, msg, 1); + } + } +} + static sql_table * sql_insert_check_null(backend *be, sql_table *t, list *inserts) { @@ -5004,6 +5041,8 @@ rel2bin_insert(backend *be, sql_rel *rel if (idx_ins) pin = refs_find_rel(refs, prel); + sql_insert_check(be, t, rel->r, refs); + if (!sql_insert_check_null(be, t, inserts->op4.lval)) return NULL; diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c --- a/sql/server/rel_schema.c +++ b/sql/server/rel_schema.c @@ -608,19 +608,8 @@ column_constraint_type(sql_query *query, sql_rel* rel3 = rel_basetable(sql, t, t->base.name); sql_exp *e = rel_logical_value_exp(query, &rel3, s->data.sym, sql_sel, ek); sql_rel *rel = rel_project_exp(sql, e); - (void) rel; - char* check = rel2str(sql, rel); - int pos = 0; - list *refs = sa_list(sql->sa); - sql_rel* rel2 = rel_read(sql, check, &pos, refs); - (void) check; - (void) rel2; - char *err = NULL, *r; - r = symbol2string(sql, s->data.sym, 0, &err); - (void) r; - switch (mvc_check(sql, cs, check)) { case -1: (void) sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: check - refactoring
Changeset: 53f601216841 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/53f601216841 Modified Files: sql/backends/monet5/rel_bin.c Branch: check Log Message: refactoring diffs (37 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 @@ -4923,17 +4923,13 @@ sql_insert_triggers(backend *be, sql_tab } static void -sql_insert_check(backend *be, sql_table *t, sql_rel *rel, list *refs) +sql_insert_check(backend *be, sql_table *t, sql_rel *inserts, list *refs) { mvc *sql = be->mvc; node *m, *n; - sql_rel* rel2 = rel_copy(sql, rel, 1); - - list* exps = rel2->exps; - - sql_rel* rel3; - + inserts = rel_copy(sql, inserts, 1); + list* exps = inserts->exps; sql_subtype *bt = sql_bind_localtype("bit"); @@ -4946,9 +4942,9 @@ sql_insert_check(backend *be, sql_table i->alias.name= sa_strdup(sql->sa, c->base.name); int pos = 0; - rel3 = rel_read(sql, sa_strdup(sql->sa, c->check), &pos, sa_list(sql->sa)); - rel3->l = rel2; - stmt* s = subrel_bin(be, rel3, refs); + sql_rel* rel = rel_read(sql, sa_strdup(sql->sa, c->check), &pos, sa_list(sql->sa)); + rel->l = inserts; + stmt* s = subrel_bin(be, rel, refs); s = stmt_uselect(be, column(be, s), stmt_atom(be, atom_zero_value(sql->sa, bt)), cmp_equal, NULL, 0, 1); sql_subfunc *cnt = sql_bind_func(sql, "sys", "count", sql_bind_localtype("void"), NULL, F_AGGR, true, true); s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: check - implement CHECK constraint for updates.
Changeset: 0bd4d7a4c899 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/0bd4d7a4c899 Modified Files: sql/backends/monet5/rel_bin.c Branch: check Log Message: implement CHECK constraint for updates. diffs (43 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 @@ -5916,6 +5916,31 @@ sql_update_triggers(backend *be, sql_tab } static void +sql_update_check(backend *be, sql_table *t, sql_rel *rupdates, stmt **updates, list *refs) +{ + mvc *sql = be->mvc; + node *n; + sql_subfunc *cnt = sql_bind_func(sql, "sys", "count", sql_bind_localtype("void"), NULL, F_AGGR, true, true); + sql_subtype *bt = sql_bind_localtype("bit"); + + for (n = ol_first_node(t->columns); n; n = n->next) { + sql_column *c = n->data; + + if (updates[c->colnr] && c->check) { + + int pos = 0; + sql_rel* rel = rel_read(sql, sa_strdup(sql->sa, c->check), &pos, sa_list(sql->sa)); + rel->l = rupdates; + stmt* s = subrel_bin(be, rel, refs); + s = stmt_uselect(be, column(be, s), stmt_atom(be, atom_zero_value(sql->sa, bt)), cmp_equal, NULL, 0, 1); + s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1); + char *msg = sa_message(sql->sa, SQLSTATE(40002) "UPDATE: CHECK constraint violated for column %s.%s", c->t->base.name, c->base.name); + (void)stmt_exception(be, s, msg, 1); + } + } +} + +static void sql_update_check_null(backend *be, sql_table *t, stmt **updates) { mvc *sql = be->mvc; @@ -6044,6 +6069,7 @@ rel2bin_update(backend *be, sql_rel *rel if (c) updates[c->colnr] = bin_find_column(be, update, ce->l, ce->r); } + sql_update_check(be, t, rel->r, updates, refs); sql_update_check_null(be, t, updates); /* check keys + get idx */ ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: check - merge with default
Changeset: aad96fbaf536 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/aad96fbaf536 Modified Files: sql/backends/monet5/rel_bin.c sql/include/sql_catalog.h sql/server/rel_schema.c sql/server/sql_mvc.c sql/storage/sql_storage.h sql/storage/store.c Branch: check Log Message: merge with default diffs (truncated from 2471 to 300 lines): diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -25330,122 +25330,62 @@ SQLvar_pop; return the variance population of groups batsql window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat[:bte]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat[:dbl]):bat[:oid] +pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat?[:bte]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat[:flt]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat[:int]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat[:lng]):bat[:oid] +pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat?[:dbl]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat[:sht]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bte):bat[:oid] +pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat?[:flt]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:dbl):bat[:oid] +pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat?[:int]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:flt):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:int):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:lng):bat[:oid] +pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat?[:lng]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:sht):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat[:bte]):bat[:oid] +pattern batsql.window_bound(X_0:bat[:any_1], X_1:int, X_2:int, X_3:int, X_4:bat?[:sht]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat[:dbl]):bat[:oid] +pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat?[:bte]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat[:flt]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat[:int]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat[:lng]):bat[:oid] +pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat?[:dbl]):bat[:oid] SQLwindow_bound; computes window ranges for each row batsql window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bat[:sht]):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:bte):bat[:oid] -SQLwindow_bound; -computes window ranges for each row -batsql -window_bound -pattern batsql.window_bound(X_0:bat[:bit], X_1:bat[:any_1], X_2:int, X_3:int, X_4:int, X_5:dbl):b
MonetDB: Dec2023 - Dec2023-SP2 was released.
Changeset: 176e1849fab1 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/176e1849fab1 Modified Files: .hgtags Branch: Dec2023 Log Message: Dec2023-SP2 was released. diffs (8 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -824,3 +824,4 @@ 95d8feaa1167b5ba87bd99253c3f4e62ebf528a1 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_5 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_SP1_release d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_7 +d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_SP2_release ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Create the proper view to block the next alte...
Changeset: 19e8d5f801d4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/19e8d5f801d4 Modified Files: sql/test/rename/Tests/rename00.SQL.py sql/test/rename/Tests/rename01.test Branch: default Log Message: Create the proper view to block the next alter schema stmt diffs (24 lines): diff --git a/sql/test/rename/Tests/rename00.SQL.py b/sql/test/rename/Tests/rename00.SQL.py --- a/sql/test/rename/Tests/rename00.SQL.py +++ b/sql/test/rename/Tests/rename00.SQL.py @@ -12,7 +12,7 @@ with tempfile.TemporaryDirectory() as fa with process.server(mapiport='0', dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), -stdin = process.PIPE, +stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE) as s: with SQLTestCase() as tc: tc.connect(username="monetdb", password="monetdb", port=s.dbport, database='db1') diff --git a/sql/test/rename/Tests/rename01.test b/sql/test/rename/Tests/rename01.test --- a/sql/test/rename/Tests/rename01.test +++ b/sql/test/rename/Tests/rename01.test @@ -75,7 +75,7 @@ statement ok create schema bar statement ok -create view av as select * from foo.a +create view bar.av as select * from foo.a statement error 2BM37!ALTER SCHEMA: unable to rename schema 'foo', there are database objects which depend on it alter schema foo rename to foofoo ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Destroy empty list before reusing var
Changeset: e36cce62cf60 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e36cce62cf60 Modified Files: sql/server/sql_mvc.c sql/storage/store_dependency.c Branch: default Log Message: Destroy empty list before reusing var diffs (28 lines): diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c --- a/sql/server/sql_mvc.c +++ b/sql/server/sql_mvc.c @@ -1422,7 +1422,7 @@ mvc_check_dependency(mvc *m, sqlid id, s break; case SCHEMA_DEPENDENCY: dep_list = sql_trans_schema_user_dependencies(m->session->tr, id); - if (list_length(dep_list) == 0) + if (!dep_list) dep_list = sql_trans_get_dependents(m->session->tr, id, SCHEMA_DEPENDENCY, NULL); break; case TABLE_DEPENDENCY: diff --git a/sql/storage/store_dependency.c b/sql/storage/store_dependency.c --- a/sql/storage/store_dependency.c +++ b/sql/storage/store_dependency.c @@ -340,6 +340,12 @@ sql_trans_schema_user_dependencies(sql_t list_append(l,v); } store->table_api.rids_destroy(users); + + if (list_length(l) == 0) { + list_destroy(l); + l = NULL; + } + return l; } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Revert summary printing for testweb.
Changeset: e795f94289b6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e795f94289b6 Modified Files: testing/Mtest.py.in Branch: Dec2023 Log Message: Revert summary printing for testweb. diffs (12 lines): diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in --- a/testing/Mtest.py.in +++ b/testing/Mtest.py.in @@ -4271,7 +4271,7 @@ VALUES (%s, '%s', '%s', '%s', for f in Failure[x]: what += "%s\n" % f print(file=sys.stderr, end='', flush=True) -if verbosity == 0 or verbosity == 1: +if not testweb and (verbosity == 0 or verbosity == 1): if Failed or errseen: prred('ERROR') else: ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Merge with Dec2023 branch.
Changeset: 7c893aa53210 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/7c893aa53210 Branch: default Log Message: Merge with Dec2023 branch. diffs (20 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -824,3 +824,4 @@ 95d8feaa1167b5ba87bd99253c3f4e62ebf528a1 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_5 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_SP1_release d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_7 +d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_SP2_release diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in --- a/testing/Mtest.py.in +++ b/testing/Mtest.py.in @@ -4271,7 +4271,7 @@ VALUES (%s, '%s', '%s', '%s', for f in Failure[x]: what += "%s\n" % f print(file=sys.stderr, end='', flush=True) -if verbosity == 0 or verbosity == 1: +if not testweb and (verbosity == 0 or verbosity == 1): if Failed or errseen: prred('ERROR') else: ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Specify alignment requirement for atomic unsi...
Changeset: 86b09939951e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/86b09939951e Modified Files: common/utils/matomic.h Branch: Dec2023 Log Message: Specify alignment requirement for atomic unsigned long long explicitly. This suppresses the warning otherwise issued by gcc on 32 bit Debian. diffs (54 lines): diff --git a/common/utils/matomic.h b/common/utils/matomic.h --- a/common/utils/matomic.h +++ b/common/utils/matomic.h @@ -72,17 +72,17 @@ #if ATOMIC_LLONG_LOCK_FREE != 1 #error "we need _Atomic(unsigned [long] long) to be lock free" #endif -typedef atomic_ulong ATOMIC_TYPE; +typedef atomic_ulong ATOMIC_TYPE __attribute__((__aligned__(8))); typedef unsigned long ATOMIC_BASE_TYPE; #else -typedef atomic_ullong ATOMIC_TYPE; +typedef atomic_ullong ATOMIC_TYPE __attribute__((__aligned__(8))); typedef unsigned long long ATOMIC_BASE_TYPE; #endif #elif SIZEOF_LONG == 8 #if ATOMIC_LONG_LOCK_FREE != 2 #error "we need _Atomic(unsigned long) to be lock free" #endif -typedef atomic_ulong ATOMIC_TYPE; +typedef atomic_ulong ATOMIC_TYPE __attribute__((__aligned__(8))); typedef unsigned long ATOMIC_BASE_TYPE; #else #error "we need a 64 bit atomic type" @@ -97,17 +97,17 @@ typedef unsigned long ATOMIC_BASE_TYPE; #if ATOMIC_LLONG_LOCK_FREE != 1 #error "we need _Atomic(unsigned [long] long) to be lock free" #endif -typedef atomic_ulong ATOMIC_TYPE; +typedef atomic_ulong ATOMIC_TYPE __attribute__((__aligned__(8))); typedef unsigned long ATOMIC_BASE_TYPE; #else -typedef volatile atomic_ullong ATOMIC_TYPE; +typedef volatile atomic_ullong ATOMIC_TYPE __attribute__((__aligned__(8))); typedef unsigned long long ATOMIC_BASE_TYPE; #endif #elif SIZEOF_LONG == 8 #if ATOMIC_LONG_LOCK_FREE != 2 #error "we need _Atomic(unsigned long) to be lock free" #endif -typedef volatile atomic_ulong ATOMIC_TYPE; +typedef volatile atomic_ulong ATOMIC_TYPE __attribute__((__aligned__(8))); typedef unsigned long ATOMIC_BASE_TYPE; #else #error "we need a 64 bit atomic type" @@ -272,7 +272,7 @@ typedef volatile int ATOMIC_FLAG; * __sync_* primitives is not supported) */ typedef uint64_t ATOMIC_BASE_TYPE; -typedef volatile ATOMIC_BASE_TYPE ATOMIC_TYPE; +typedef volatile ATOMIC_BASE_TYPE ATOMIC_TYPE __attribute__((__aligned__ (8))); #define ATOMIC_VAR_INIT(val) (val) #define ATOMIC_INIT(var, val) (*(var) = (val)) ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org