MonetDB: strimps_update - Open branch
Changeset: 94e8c81e8c8a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/94e8c81e8c8a Branch: strimps_update Log Message: Open branch ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: strimps_update - Initial implementation
Changeset: 09892d5ee888 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/09892d5ee888 Modified Files: monetdb5/modules/mal/pcre.c Branch: strimps_update Log Message: Initial implementation The bat counts are not correct diffs (64 lines): diff --git a/monetdb5/modules/mal/pcre.c b/monetdb5/modules/mal/pcre.c --- a/monetdb5/modules/mal/pcre.c +++ b/monetdb5/modules/mal/pcre.c @@ -1855,6 +1855,7 @@ PCRElikeselect(bat *ret, const bat *bid, char *ppat = NULL; bool use_re = false, use_strcmp = false, empty = false; bool with_strimps = false; + bool with_strimps_anti = false; if ((b = BATdescriptor(*bid)) == NULL) { msg = createException(MAL, "algebra.likeselect", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); @@ -1887,12 +1888,22 @@ PCRElikeselect(bat *ret, const bat *bid, } else { /* If we cannot create the strimp just continue normally */ GDKclrerr(); } + } else if (!empty && BAThasstrimps(b) && b->tnonil && *anti) { + BAT *tmp_s = STRMPfilter(b, s, *pat); + if (tmp_s) { + if (s) + BBPunfix(s->batCacheid); + s = tmp_s; + with_strimps_anti = true; + } else { /* If we cannot create the strimp just continue normally */ + GDKclrerr(); + } } MT_thread_setalgorithm(empty ? "pcrelike: trivially empty" : - use_strcmp ? (with_strimps ? "pcrelike: pattern matching using strcmp with strimps" : "pcrelike: pattern matching using strcmp") : - use_re ? (with_strimps ? "pcrelike: pattern matching using RE with strimps" : "pcrelike: pattern matching using RE") : - (with_strimps ? "pcrelike: pattern matching using pcre with strimps" : "pcrelike: pattern matching using pcre")); + use_strcmp ? (with_strimps ? "pcrelike: pattern matching using strcmp with strimps" : (with_strimps_anti ? "pcrelike: pattern matching using strcmp with strimps anti" : "pcrelike: pattern matching using strcmp")) : + use_re ? (with_strimps ? "pcrelike: pattern matching using RE with strimps" : (with_strimps_anti ? "pcrelike: patterm matching using RE with strimps anti" : "pcrelike: pattern matching using RE")) : + (with_strimps ? "pcrelike: pattern matching using pcre with strimps" : (with_strimps_anti ? "pcrelike: pattermatching using pcre with strimps anti" : "pcrelike: pattern matching using pcre"))); if (empty) { if (!(bn = BATdense(0, 0, 0))) @@ -1923,10 +1934,11 @@ PCRElikeselect(bat *ret, const bat *bid, } if (use_re) { - msg = re_likeselect(bn, b, s, &ci, p, q, &rcnt, *pat, (bool) *caseignore, (bool) *anti, use_strcmp, (unsigned char) **esc); + msg = re_likeselect(bn, b, s, &ci, p, q, &rcnt, *pat, (bool) *caseignore, (bool) *anti && !with_strimps_anti, use_strcmp, (unsigned char) **esc); } else { - msg = pcre_likeselect(bn, b, s, &ci, p, q, &rcnt, ppat, (bool) *caseignore, (bool) *anti); + msg = pcre_likeselect(bn, b, s, &ci, p, q, &rcnt, ppat, (bool) *caseignore, (bool) *anti && !with_strimps_anti); } + if (!msg) { /* set some properties */ BATsetcount(bn, rcnt); bn->tsorted = true; @@ -1935,6 +1947,12 @@ PCRElikeselect(bat *ret, const bat *bid, bn->tnil = false; bn->tnonil = true; bn->tseqbase = rcnt == 0 ? 0 : rcnt == 1 ? *(const oid*)Tloc(bn, 0) : rcnt == b->batCount ? b->hseqbase : oid_nil; + if(with_strimps_anti) { + /* Reverse the result */ + BAT *rev = BATdiffcand(BATdense(0, 0, b->batCount), bn); + BBPunfix(bn->batCacheid); + bn = rev; + } } } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: strimps_update - Fix strimps tests
Changeset: e43ff4c94a81 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e43ff4c94a81 Modified Files: sql/test/strimps/Tests/persisted_strimp.SQL.py sql/test/strimps/Tests/strimps_stable_counts.SQL.py Branch: strimps_update Log Message: Fix strimps tests After the SQL interface change, strimps need to be created explicitly. diffs (31 lines): diff --git a/sql/test/strimps/Tests/persisted_strimp.SQL.py b/sql/test/strimps/Tests/persisted_strimp.SQL.py --- a/sql/test/strimps/Tests/persisted_strimp.SQL.py +++ b/sql/test/strimps/Tests/persisted_strimp.SQL.py @@ -37,6 +37,10 @@ with tempfile.TemporaryDirectory() as fa mdb.execute("""COPY 15000 RECORDS INTO orders from r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS '|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded() mdb.execute("""COPY 15000 RECORDS INTO orders from r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS '|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded() mdb.execute("""COPY 15000 RECORDS INTO orders from r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS '|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded() +# Create strimp +mdb.execute("ALTER TABLE orders SET READ ONLY;") +mdb.execute("CREATE IMPRINTS INDEX o_comment_strimp ON orders(o_comment);") + mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE '%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)]) s.communicate() diff --git a/sql/test/strimps/Tests/strimps_stable_counts.SQL.py b/sql/test/strimps/Tests/strimps_stable_counts.SQL.py --- a/sql/test/strimps/Tests/strimps_stable_counts.SQL.py +++ b/sql/test/strimps/Tests/strimps_stable_counts.SQL.py @@ -40,10 +40,12 @@ with tempfile.TemporaryDirectory() as fa s.communicate() with process.server(mapiport='0', dbname='db1', -args=["--set", "gdk_use_strimps=yes",], dbfarm=fdir, stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE) as s: with SQLTestCase() as mdb: mdb.connect(database='db1', port=s.dbport, username='monetdb', password='monetdb') +# Create strimp +mdb.execute("ALTER TABLE orders SET READ ONLY;") +mdb.execute("CREATE IMPRINTS INDEX o_comment_strimp ON orders(o_comment);") mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE '%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)]) s.communicate() ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: strimps_update - Merge with default
Changeset: e1ab5c093c74 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e1ab5c093c74 Branch: strimps_update Log Message: Merge with default diffs (truncated from 3259 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release +2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -365,6 +365,7 @@ developer. %{_bindir}/smack00 %{_bindir}/smack01 %{_bindir}/streamcat +%{_bindir}/testcondvar %{_bindir}/testgetinfo %{_bindir}/testStmtAttr %{_bindir}/malsample.pl diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog --- a/buildtools/conf/Maddlog +++ b/buildtools/conf/Maddlog @@ -189,6 +189,9 @@ fi file=ChangeLog.$RANDOM +# make sure we get the correct day and month names +export LC_ALL=en_US.utf-8 + case "$CL" in */*) cd "${CL%/*}" diff --git a/clients/Tests/All b/clients/Tests/All --- a/clients/Tests/All +++ b/clients/Tests/All @@ -3,3 +3,4 @@ HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&H !HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures NOT_WIN32&MERCURIAL?melcheck mclient-uri +testcondvar 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 @@ -536,23 +536,23 @@ ssize_t lngFromStr(const char *src, size ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external); const lng lng_nil; struct tm *localtime_r(const time_t *restrict, struct tm *restrict); +gdk_return log_activate(logger *lg); gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt); gdk_return log_bat_clear(logger *lg, log_id id); gdk_return log_bat_persists(logger *lg, BAT *b, log_id id); gdk_return log_bat_transient(logger *lg, log_id id); +lng log_changes(logger *lg); gdk_return log_constant(logger *lg, int type, ptr val, log_id id, lng offset, lng cnt); +logger *log_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata); gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id); -gdk_return log_sequence(logger *lg, int seq, lng id); +void log_destroy(logger *lg); +log_bid log_find_bat(logger *lg, log_id id); +gdk_return log_flush(logger *lg, ulng saved_id); +int log_sequence(logger *lg, int seq, lng *id); gdk_return log_tend(logger *lg); gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts); +gdk_return log_tsequence(logger *lg, int seq, lng id); gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id); -gdk_return logger_activate(logger *lg); -lng logger_changes(logger *lg); -logger *logger_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata); -void logger_destroy(logger *lg); -log_bid logger_find_bat(logger *lg, log_id id); -gdk_return logger_flush(logger *lg, ulng saved_id); -int logger_sequence(logger *lg, int seq, lng *id); log_level_t lvl_per_component[]; void *mdlopen(const char *library, int mode); const char *mercurial_revision(void) __attribute__((__const__)); diff --git a/clients/Tests/testcondvar.py b/clients/Tests/testcondvar.py new file mode 100644 --- /dev/null +++ b/clients/Tests/testcondvar.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import subprocess +import sys + +try: +subprocess.check_output("testcondvar", stderr=subprocess.STDOUT) +except subprocess.CalledProcessError as e: +output = str(e.stdout, 'utf-8') +if not output.endswith('\n'): +output += '\n' +print(f"Test program failed with the following output:\n--", file=sys.stderr) +print(f"{output}-", file=sys.stderr) +sys.exit('TEST FAILED') diff --git a/clients/examples/C/CMakeLists.txt b/clients/examples/C/CMakeLists.txt --- a/clients/examples/C/CMakeLists.txt +++ b/clients/examples/C/CMakeLists.txt @@ -45,6 +45,16 @@ if(TESTING) monetdb_config_header stream) + add_executable(testcondvar +testcondvar.c) + + target_link_libraries(testcondvar +PRIVATE +monetdb_config_header +bat +Threads::Threads + ) + add_executable(bincopydata bincopydata.c bincopydata.h @@ -75,6 +85,7 @@ if(TESTING) smack00 smack01 streamcat +testcondvar bincopydata RUNTIME DESTINATION @@ -89,6 +100,7 @@ if(TESTING) $ $ $ + $ $ $ DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/clients/examples/C/testcondvar.c b/clients/examples/C/testcondvar.c new file mode 100644 --- /dev/null +++ b/clients/examples/C/testcondvar.c @@ -0,0 +1,183 @@ +/* + * This Source Code Form is subject to
MonetDB: default - Fix comment
Changeset: bd21ac5350f1 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/bd21ac5350f1 Modified Files: gdk/gdk_cand.c Branch: default Log Message: Fix comment diffs (12 lines): diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c --- a/gdk/gdk_cand.c +++ b/gdk/gdk_cand.c @@ -398,7 +398,7 @@ count_mask_bits(const struct canditer *c return n; } -/* initialize a candidate iterator, return number of iterations */ +/* initialize a candidate iterator */ void canditer_init(struct canditer *ci, BAT *b, BAT *s) { ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Only load rdonly bat when there are updates t...
Changeset: ad47a42f5522 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ad47a42f5522 Modified Files: sql/storage/bat/bat_storage.c Branch: default Log Message: Only load rdonly bat when there are updates to merge diffs (45 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -3900,19 +3900,13 @@ static int merge_cs( column_storage *cs) { int ok = LOG_OK; - BAT *cur = NULL; - - if (cs->bid) { - cur = temp_descriptor(cs->bid); - if(!cur) - return LOG_ERR; - } - - if (cs->ucnt) { + + if (cs->bid && cs->ucnt) { + BAT *cur = temp_descriptor(cs->bid); BAT *ui = temp_descriptor(cs->uibid); BAT *uv = temp_descriptor(cs->uvbid); - if(!ui || !uv) { + if (!cur || !ui || !uv) { bat_destroy(ui); bat_destroy(uv); bat_destroy(cur); @@ -3933,15 +3927,15 @@ merge_cs( column_storage *cs) temp_destroy(cs->uvbid); cs->uibid = e_bat(TYPE_oid); cs->uvbid = e_bat(cur->ttype); - if(cs->uibid == BID_NIL || cs->uvbid == BID_NIL) + if (cs->uibid == BID_NIL || cs->uvbid == BID_NIL) ok = LOG_ERR; cs->ucnt = 0; bat_destroy(ui); bat_destroy(uv); + bat_destroy(cur); } cs->cleared = 0; cs->merged = 1; - bat_destroy(cur); return ok; } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Make sure storage is initialized, when settin...
Changeset: 02a6f620963a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/02a6f620963a Modified Files: sql/storage/bat/bat_storage.c Branch: default Log Message: Make sure storage is initialized, when setting min/max. Don't look at view bats diffs (43 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -2727,6 +2727,18 @@ dcount_col(sql_trans *tr, sql_column *c) return cnt; } +static BAT * +bind_no_view(BAT *b) +{ + if (isVIEW(b)) { /* If it is a view get the parent BAT */ + BAT *nb = BBP_cache(VIEWtparent(b)); + bat_destroy(b); + if (!(b = temp_descriptor(nb->batCacheid))) + return NULL; + } + return b; +} + static int min_max_col(sql_trans *tr, sql_column *c) { @@ -2742,6 +2754,7 @@ min_max_col(sql_trans *tr, sql_column *c if ((d = ATOMIC_PTR_GET(&c->data))) { if (d->cs.st == ST_FOR) return 0; + int access = d->cs.st == ST_DICT ? RD_EXT : RDONLY; lock_column(tr->store, c->base.id); if (c->min && c->max) { unlock_column(tr->store, c->base.id); @@ -2749,7 +2762,11 @@ min_max_col(sql_trans *tr, sql_column *c } _DELETE(c->min); _DELETE(c->max); - if ((b = temp_descriptor(d->cs.st == ST_DICT ? d->cs.ebid : d->cs.bid))) { + if ((b = bind_col(tr, c, access))) { + if (!(b = bind_no_view(b))) { + unlock_column(tr->store, c->base.id); + return 0; + } BATiter bi = bat_iterator(b); if (bi.minpos != BUN_NONE && bi.maxpos != BUN_NONE) { const void *nmin = BUNtail(bi, bi.minpos), *nmax = BUNtail(bi, bi.maxpos); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: properties - Merged with default
Changeset: 07a5057139ce for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/07a5057139ce Modified Files: sql/storage/bat/bat_storage.c sql/storage/sql_storage.h sql/storage/store.c Branch: properties Log Message: Merged with default diffs (truncated from 1781 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 @@ -536,23 +536,23 @@ ssize_t lngFromStr(const char *src, size ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external); const lng lng_nil; struct tm *localtime_r(const time_t *restrict, struct tm *restrict); +gdk_return log_activate(logger *lg); gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt); gdk_return log_bat_clear(logger *lg, log_id id); gdk_return log_bat_persists(logger *lg, BAT *b, log_id id); gdk_return log_bat_transient(logger *lg, log_id id); +lng log_changes(logger *lg); gdk_return log_constant(logger *lg, int type, ptr val, log_id id, lng offset, lng cnt); +logger *log_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata); gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id); -gdk_return log_sequence(logger *lg, int seq, lng id); +void log_destroy(logger *lg); +log_bid log_find_bat(logger *lg, log_id id); +gdk_return log_flush(logger *lg, ulng saved_id); +int log_sequence(logger *lg, int seq, lng *id); gdk_return log_tend(logger *lg); gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts); +gdk_return log_tsequence(logger *lg, int seq, lng id); gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id); -gdk_return logger_activate(logger *lg); -lng logger_changes(logger *lg); -logger *logger_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata); -void logger_destroy(logger *lg); -log_bid logger_find_bat(logger *lg, log_id id); -gdk_return logger_flush(logger *lg, ulng saved_id); -int logger_sequence(logger *lg, int seq, lng *id); log_level_t lvl_per_component[]; void *mdlopen(const char *library, int mode); const char *mercurial_revision(void) __attribute__((__const__)); diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c --- a/gdk/gdk_cand.c +++ b/gdk/gdk_cand.c @@ -398,7 +398,7 @@ count_mask_bits(const struct canditer *c return n; } -/* initialize a candidate iterator, return number of iterations */ +/* initialize a candidate iterator */ void canditer_init(struct canditer *ci, BAT *b, BAT *s) { diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -14,8 +14,8 @@ #include "mutils.h" #include -static gdk_return logger_add_bat(logger *lg, BAT *b, log_id id, int tid); -static gdk_return logger_del_bat(logger *lg, log_bid bid); +static gdk_return log_add_bat(logger *lg, BAT *b, log_id id, int tid); +static gdk_return log_del_bat(logger *lg, log_bid bid); /* * The logger uses a directory to store its log files. One master log * file stores information about the version of the logger and the @@ -96,13 +96,13 @@ static gdk_return bm_commit(logger *lg); static gdk_return tr_grow(trans *tr); static inline void -logger_lock(logger *lg) +log_lock(logger *lg) { MT_lock_set(&lg->lock); } static inline void -logger_unlock(logger *lg) +log_unlock(logger *lg) { MT_lock_unset(&lg->lock); } @@ -730,7 +730,7 @@ la_bat_destroy(logger *lg, logaction *la { log_bid bid = internal_find_bat(lg, la->cid, tid); - if (bid && logger_del_bat(lg, bid) != GDK_SUCCEED) + if (bid && log_del_bat(lg, bid) != GDK_SUCCEED) return GDK_FAIL; return GDK_SUCCEED; } @@ -773,7 +773,7 @@ la_bat_create(logger *lg, logaction *la, BATtseqbase(b, 0); if ((b = BATsetaccess(b, BAT_READ)) == NULL || - logger_add_bat(lg, b, la->cid, tid) != GDK_SUCCEED) { + log_add_bat(lg, b, la->cid, tid) != GDK_SUCCEED) { logbat_destroy(b); return GDK_FAIL; } @@ -782,7 +782,7 @@ la_bat_create(logger *lg, logaction *la, } static gdk_return -logger_write_new_types(logger *lg, FILE *fp, bool append) +log_write_new_types(logger *lg, FILE *fp, bool append) { bte id = 0; @@ -940,7 +940,7 @@ tr_commit(logger *lg, trans *tr) } static gdk_return -logger_read_types_file(logger *lg, FILE *fp) +log_read_types_file(logger *lg, FILE *fp) { int id = 0; char atom_name[IDLENGTH]; @@ -961,7 +961,7 @@ logger_read_types_file(logger *lg, FILE gdk_return -logger_create_types_file(logger *lg, const char *filename, bool append) +log_create_types_file(logger *lg, const char *filename, bool append) { FILE *fp; @@ -976,7 +976,7 @@ logger_create_types_file(logger *lg, con return GD
MonetDB: properties - Make sure storage is initialized when fetc...
Changeset: 098f16b88412 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/098f16b88412 Modified Files: sql/storage/bat/bat_storage.c sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.test sql/test/SQLancer/Tests/sqlancer08.test sql/test/astro/Tests/astro.test sql/test/merge-partitions/Tests/mergepart31.test sql/test/miscellaneous/Tests/simple_plans.test Branch: properties Log Message: Make sure storage is initialized when fetching properties. Don't look at views. diffs (truncated from 474 to 300 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -2728,12 +2728,12 @@ dcount_col(sql_trans *tr, sql_column *c) } static BAT * -bind_no_view(BAT *b) +bind_no_view(BAT *b, bool quick) { if (isVIEW(b)) { /* If it is a view get the parent BAT */ BAT *nb = BBP_cache(VIEWtparent(b)); bat_destroy(b); - if (!(b = temp_descriptor(nb->batCacheid))) + if (!(b = quick ? quick_descriptor(nb->batCacheid) : temp_descriptor(nb->batCacheid))) return NULL; } return b; @@ -2763,7 +2763,7 @@ min_max_col(sql_trans *tr, sql_column *c _DELETE(c->min); _DELETE(c->max); if ((b = bind_col(tr, c, access))) { - if (!(b = bind_no_view(b))) { + if (!(b = bind_no_view(b, false))) { unlock_column(tr->store, c->base.id); return 0; } @@ -2889,7 +2889,7 @@ static int col_stats(sql_trans *tr, sql_column *c, bool *nonil, bool *unique, double *unique_est, ValPtr min, ValPtr max) { int ok = 0; - BAT *b = NULL, *off = NULL; + BAT *b = NULL, *off = NULL, *upv = NULL; sql_delta *d = NULL; (void) tr; @@ -2905,9 +2905,11 @@ col_stats(sql_trans *tr, sql_column *c, *nonil = true; /* TODO for min/max. I will do it later */ return ok; } - bat bid = d->cs.st == ST_DICT ? d->cs.ebid : d->cs.bid; - if ((b = temp_descriptor(bid))) { - int eclass = c->type.type->eclass; + int eclass = c->type.type->eclass; + int access = d->cs.st == ST_DICT ? RD_EXT : RDONLY; + if ((b = bind_col(tr, c, access))) { + if (!(b = bind_no_view(b, false))) + return ok; BATiter bi = bat_iterator(b); *nonil = bi.nonil && !bi.nil; @@ -2918,27 +2920,29 @@ col_stats(sql_trans *tr, sql_column *c, if (bi.maxpos != BUN_NONE && VALinit(max, bi.type, BUNtail(bi, bi.maxpos))) ok |= 2; } - /* for dict, check the offsets bat for uniqueness */ - if (d->cs.ucnt == 0 && (d->cs.st == ST_DEFAULT || (off = quick_descriptor(d->cs.bid { - if (off) { + if (d->cs.ucnt == 0) { + if (d->cs.st == ST_DEFAULT) { + *unique = bi.key; + *unique_est = bi.unique_est; + } else if (d->cs.st == ST_DICT && (off = bind_col(tr, c, QUICK)) && (off = bind_no_view(off, true))) { + /* for dict, check the offsets bat for uniqueness */ MT_lock_set(&off->theaplock); *unique = off->tkey; *unique_est = off->tunique_est; MT_lock_unset(&off->theaplock); - } else { - *unique = bi.key; - *unique_est = bi.unique_est; } } bat_iterator_end(&bi); bat_destroy(b); if (*nonil && d->cs.ucnt > 0) { -
MonetDB: userprofile - extend create user syntax
Changeset: 2c7c97341df8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2c7c97341df8 Modified Files: sql/server/sql_parser.y Branch: userprofile Log Message: extend create user syntax diffs (40 lines): diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -422,6 +422,7 @@ int yydebug=1; XML_namespace_prefix XML_PI_target opt_optimizer +opt_default_role %type argument_list @@ -1480,7 +1481,7 @@ role_def: append_string(l, $2); append_int(l, $3); $$ = _symbol_create_list( SQL_CREATE_ROLE, l ); } - | USER ident WITH opt_encrypted PASSWORD string sqlNAME string SCHEMA ident user_schema_path opt_max_memory opt_max_workers opt_wlc opt_optimizer + | USER ident WITH opt_encrypted PASSWORD string sqlNAME string SCHEMA ident user_schema_path opt_max_memory opt_max_workers opt_wlc opt_optimizer opt_default_role { dlist *l = L(); append_string(l, $2); append_string(l, $6); @@ -1492,6 +1493,7 @@ role_def: append_int(l, $13); append_int(l, $14); append_string(l, $15); + append_string(l, $16); $$ = _symbol_create_list( SQL_CREATE_USER, l ); } ; @@ -1515,6 +1517,11 @@ opt_optimizer: | OPTIMIZER string{ $$ = $2; } ; +opt_default_role: +/* empty */ { $$ = NULL; } + | DEFAULT ROLE ident{ $$ = $3; } + ; + opt_encrypted: /* empty */{ $$ = SQL_PW_UNENCRYPTED; } | UNENCRYPTED{ $$ = SQL_PW_UNENCRYPTED; } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: userprofile - extend create user syntax
Changeset: 74e19ec11cd4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/74e19ec11cd4 Modified Files: sql/server/rel_schema.c Branch: userprofile Log Message: extend create user syntax diffs (30 lines): 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 @@ -2262,7 +2262,7 @@ rel_create_index(mvc *sql, char *iname, } static sql_rel * -rel_create_user(sql_allocator *sa, char *user, char *passwd, int enc, char *fullname, char *schema, char *schema_path, lng max_memory, int max_workers, bool wlc, char *optimizer) +rel_create_user(sql_allocator *sa, char *user, char *passwd, int enc, char *fullname, char *schema, char *schema_path, lng max_memory, int max_workers, bool wlc, char *optimizer, char *default_role) { sql_rel *rel = rel_create(sa); list *exps = new_exp_list(sa); @@ -2279,6 +2279,7 @@ rel_create_user(sql_allocator *sa, char append(exps, exp_atom_int(sa, max_workers)); append(exps, exp_atom_bool(sa, wlc)); append(exps, exp_atom_clob(sa, optimizer)); + append(exps, exp_atom_clob(sa, default_role)); rel->l = NULL; rel->r = NULL; rel->op = op_ddl; @@ -2927,7 +2928,8 @@ rel_schemas(sql_query *query, symbol *s) l->h->next->next->next->next->next->next->data.l_val, /* max memory */ l->h->next->next->next->next->next->next->next->data.i_val, /* max workers */ l->h->next->next->next->next->next->next->next->next->data.i_val, /* wlc */ - l->h->next->next->next->next->next->next->next->next->next->data.sval); /* optimizer */ + l->h->next->next->next->next->next->next->next->next->next->data.sval, /* optimizer */ + l->h->next->next->next->next->next->next->next->next->next->next->data.sval); /* default role */ } break; case SQL_DROP_USER: ret = rel_schema2(sql->sa, ddl_drop_user, s->data.sval, NULL, 0); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: userprofile - extend db_user_info with default_role
Changeset: e53eac684d11 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e53eac684d11 Modified Files: sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_user.c sql/common/sql_backend.c sql/common/sql_backend.h sql/server/sql_privileges.c sql/server/sql_privileges.h Branch: userprofile Log Message: extend db_user_info with default_role diffs (241 lines): diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -5999,7 +5999,7 @@ static mel_func sql_init_funcs[] = { pattern("sqlcatalog", "revoke", SQLrevoke, false, "Catalog operation revoke", args(0,7, arg("sname",str),arg("tbl",str),arg("grantee",str),arg("privs",int),arg("cname",str),arg("grant",int),arg("grantor",int))), pattern("sqlcatalog", "grant_function", SQLgrant_function, false, "Catalog operation grant_function", args(0,6, arg("sname",str),arg("fcnid",int),arg("grantee",str),arg("privs",int),arg("grant",int),arg("grantor",int))), pattern("sqlcatalog", "revoke_function", SQLrevoke_function, false, "Catalog operation revoke_function", args(0,6, arg("sname",str),arg("fcnid",int),arg("grantee",str),arg("privs",int),arg("grant",int),arg("grantor",int))), - pattern("sqlcatalog", "create_user", SQLcreate_user, false, "Catalog operation create_user", args(0,10, arg("sname",str),arg("passwrd",str),arg("enc",int),arg("schema",str),arg("schemapath",str),arg("fullname",str), arg("max_memory", lng), arg("max_workers", int), arg("wlc", bit), arg("optimizer", str))), + pattern("sqlcatalog", "create_user", SQLcreate_user, false, "Catalog operation create_user", args(0,11, arg("sname",str),arg("passwrd",str),arg("enc",int),arg("schema",str),arg("schemapath",str),arg("fullname",str), arg("max_memory", lng), arg("max_workers", int), arg("wlc", bit), arg("optimizer", str), arg("default_role", str))), pattern("sqlcatalog", "drop_user", SQLdrop_user, false, "Catalog operation drop_user", args(0,2, arg("sname",str),arg("action",int))), pattern("sqlcatalog", "drop_user", SQLdrop_user, false, "Catalog operation drop_user", args(0,3, arg("sname",str),arg("auth",str),arg("action",int))), pattern("sqlcatalog", "alter_user", SQLalter_user, false, "Catalog operation alter_user", args(0,6, arg("sname",str),arg("passwrd",str),arg("enc",int),arg("schema",str),arg("schemapath",str),arg("oldpasswrd",str))), diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c --- a/sql/backends/monet5/sql_cat.c +++ b/sql/backends/monet5/sql_cat.c @@ -1746,10 +1746,11 @@ SQLcreate_user(Client cntxt, MalBlkPtr m int max_workers = *getArgReference_int(stk, pci, 8); bool wlc = *getArgReference_bit(stk, pci, 9); char *optimizer = SaveArgReference(stk, pci, 10); + char *default_role = SaveArgReference(stk, pci, 11); initcontext(); msg = sql_create_user(sql, sname, passwd, enc, fullname, schema, schema_path, max_memory, max_workers, wlc, - optimizer); + optimizer, default_role); return msg; } diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c --- a/sql/backends/monet5/sql_user.c +++ b/sql/backends/monet5/sql_user.c @@ -23,6 +23,24 @@ #include "mal_authorize.h" #include "mcrypt.h" + +static int +monet5_find_role(ptr _mvc, str role, sqlid *role_id) +{ + mvc *m = (mvc *) _mvc; + sql_trans *tr = m->session->tr; + sqlstore *store = m->session->tr->store; + sql_schema *sys = find_sql_schema(tr, "sys"); + sql_table *auths = find_sql_table(tr, sys, "auths"); + sql_column *auth_name = find_sql_column(auths, "name"); + oid rid = store->table_api.column_find_row(tr, auth_name, role, NULL); + if (is_oid_nil(rid)) + return -1; + *role_id = store->table_api.column_find_sqlid(m->session->tr, find_sql_column(auths, "id"), rid); + return 1; +} + + static int monet5_drop_user(ptr _mvc, str user) { @@ -143,7 +161,7 @@ parse_schema_path_str(mvc *m, str schema } static str -monet5_create_user(ptr _mvc, str user, str passwd, char enc, str fullname, sqlid schema_id, str schema_path, sqlid grantorid, lng max_memory, int max_workers, bool wlc, str optimizer) +monet5_create_user(ptr _mvc, str user, str passwd, char enc, str fullname, sqlid schema_id, str schema_path, sqlid grantorid, lng max_memory, int max_workers, bool wlc, str optimizer, sqlid role_id) { mvc *m = (mvc *) _mvc; oid uid = 0; @@ -170,7 +188,8 @@ monet5_create_user(ptr _mvc, str user, s } user_id = store_next_oid(m->session->tr->store); - if ((log_res = store->table_api.table_insert(m->session->tr, db_user_info, &user, &fullname, &schema_id, &schema_path, &max_memory, &max_workers, &wlc, &optimizer))) { + sqlid default_role_id = role_id > 0 ? role_id : user_id; + if ((log_re
MonetDB: default - Approved output
Changeset: 1571e57720c2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/1571e57720c2 Modified Files: clients/Tests/exports.stable.out Branch: default Log Message: Approved output diffs (15 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 @@ -356,6 +356,11 @@ void IMPSdestroy(BAT *b); lng IMPSimprintsize(BAT *b); int MT_access(const char *pathname, int mode); int MT_check_nr_cores(void); +void MT_cond_broadcast(MT_Cond *cond); +void MT_cond_destroy(MT_Cond *cond); +void MT_cond_init(MT_Cond *cond); +void MT_cond_signal(MT_Cond *cond); +void MT_cond_wait(MT_Cond *cond, MT_Lock *lock); int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum MT_thr_detach d, const char *threadname); void MT_exiting_thread(void); FILE *MT_fopen(const char *filename, const char *mode); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Disabled volcano pipeline due to known issues
Changeset: c2c6aa1fb726 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c2c6aa1fb726 Modified Files: monetdb5/ChangeLog monetdb5/optimizer/opt_pipes.c sql/test/Tests/setoptimizer.test Branch: default Log Message: Disabled volcano pipeline due to known issues diffs (43 lines): diff --git a/monetdb5/ChangeLog b/monetdb5/ChangeLog --- a/monetdb5/ChangeLog +++ b/monetdb5/ChangeLog @@ -1,3 +1,6 @@ # ChangeLog file for MonetDB5 # This file is updated with Maddlog +* Thu Apr 28 2022 Pedro Ferreira +- Disabled volcano pipeline due to known issues. + diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c --- a/monetdb5/optimizer/opt_pipes.c +++ b/monetdb5/optimizer/opt_pipes.c @@ -162,6 +162,8 @@ static struct PIPELINES { {"default_fast", "optimizer.defaultfast()", "stable", NULL, 1}, +/* Apr2022 update. I disabled the volcano_pipe because it has issues on it */ +#if 0 /* * Volcano style execution produces a sequence of blocks from the source relation */ @@ -200,6 +202,7 @@ static struct PIPELINES { "optimizer.garbageCollector();" "optimizer.profiler();", "stable", NULL, 1}, +#endif /* The no_mitosis pipe line is (and should be kept!) identical to the * default pipeline, except that optimizer mitosis is omitted. It is * used mainly to make some tests work deterministically, and to check diff --git a/sql/test/Tests/setoptimizer.test b/sql/test/Tests/setoptimizer.test --- a/sql/test/Tests/setoptimizer.test +++ b/sql/test/Tests/setoptimizer.test @@ -40,9 +40,6 @@ stable default_fast optimizer.defaultfast() stable -volcano_pipe -optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.volcano();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler(); -stable no_mitosis_pipe optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler(); stable ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Disable optimizer pattern
Changeset: e6e3601243c1 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e6e3601243c1 Modified Files: clients/Tests/MAL-signatures-hge.test clients/Tests/MAL-signatures.test monetdb5/optimizer/optimizer.c Branch: default Log Message: Disable optimizer pattern diffs (62 lines): diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -62104,21 +62104,6 @@ pattern optimizer.strimps(X_0:str, X_1:s OPTwrapper; Use strimps index if appropriate optimizer -volcano -pattern optimizer.volcano():str -OPTwrapper; -(empty) -optimizer -volcano -pattern optimizer.volcano(X_0:str, X_1:str):str -OPTwrapper; -Simulate volcano style execution -optimizer -volcano_pipe -function optimizer.volcano_pipe():void; -(empty) -(empty) -optimizer wlc pattern optimizer.wlc():str OPTwrapper; 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 @@ -45619,21 +45619,6 @@ pattern optimizer.strimps(X_0:str, X_1:s OPTwrapper; Use strimps index if appropriate optimizer -volcano -pattern optimizer.volcano():str -OPTwrapper; -(empty) -optimizer -volcano -pattern optimizer.volcano(X_0:str, X_1:str):str -OPTwrapper; -Simulate volcano style execution -optimizer -volcano_pipe -function optimizer.volcano_pipe():void; -(empty) -(empty) -optimizer wlc pattern optimizer.wlc():str OPTwrapper; diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c --- a/monetdb5/optimizer/optimizer.c +++ b/monetdb5/optimizer/optimizer.c @@ -89,7 +89,7 @@ static mel_func optimizer_init_funcs[] = optwrapper_pattern("coercions", "Handle simple type coercions"), optwrapper_pattern("commonTerms", "Common sub-expression optimizer"), optwrapper_pattern("candidates", "Mark candidate list variables"), - optwrapper_pattern("volcano", "Simulate volcano style execution"), + /* optwrapper_pattern("volcano", "Simulate volcano style execution"), Apr2022 update. I disabled the volcano_pipe because it has issues on it */ optwrapper_pattern("constants", "Duplicate constant removal optimizer"), optwrapper_pattern("profiler", "Collect properties for the profiler"), optwrapper_pattern("costModel", "Estimate the cost of a relational expression"), ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: subqueryfun - Merged with default
Changeset: acc367c7f7c8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/acc367c7f7c8 Branch: subqueryfun Log Message: Merged with default diffs (truncated from 3165 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release +2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -365,6 +365,7 @@ developer. %{_bindir}/smack00 %{_bindir}/smack01 %{_bindir}/streamcat +%{_bindir}/testcondvar %{_bindir}/testgetinfo %{_bindir}/testStmtAttr %{_bindir}/malsample.pl diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog --- a/buildtools/conf/Maddlog +++ b/buildtools/conf/Maddlog @@ -189,6 +189,9 @@ fi file=ChangeLog.$RANDOM +# make sure we get the correct day and month names +export LC_ALL=en_US.utf-8 + case "$CL" in */*) cd "${CL%/*}" diff --git a/clients/Tests/All b/clients/Tests/All --- a/clients/Tests/All +++ b/clients/Tests/All @@ -3,3 +3,4 @@ HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&H !HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures NOT_WIN32&MERCURIAL?melcheck mclient-uri +testcondvar diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -62104,21 +62104,6 @@ pattern optimizer.strimps(X_0:str, X_1:s OPTwrapper; Use strimps index if appropriate optimizer -volcano -pattern optimizer.volcano():str -OPTwrapper; -(empty) -optimizer -volcano -pattern optimizer.volcano(X_0:str, X_1:str):str -OPTwrapper; -Simulate volcano style execution -optimizer -volcano_pipe -function optimizer.volcano_pipe():void; -(empty) -(empty) -optimizer wlc pattern optimizer.wlc():str OPTwrapper; 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 @@ -45619,21 +45619,6 @@ pattern optimizer.strimps(X_0:str, X_1:s OPTwrapper; Use strimps index if appropriate optimizer -volcano -pattern optimizer.volcano():str -OPTwrapper; -(empty) -optimizer -volcano -pattern optimizer.volcano(X_0:str, X_1:str):str -OPTwrapper; -Simulate volcano style execution -optimizer -volcano_pipe -function optimizer.volcano_pipe():void; -(empty) -(empty) -optimizer wlc pattern optimizer.wlc():str OPTwrapper; 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 @@ -356,6 +356,11 @@ void IMPSdestroy(BAT *b); lng IMPSimprintsize(BAT *b); int MT_access(const char *pathname, int mode); int MT_check_nr_cores(void); +void MT_cond_broadcast(MT_Cond *cond); +void MT_cond_destroy(MT_Cond *cond); +void MT_cond_init(MT_Cond *cond); +void MT_cond_signal(MT_Cond *cond); +void MT_cond_wait(MT_Cond *cond, MT_Lock *lock); int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum MT_thr_detach d, const char *threadname); void MT_exiting_thread(void); FILE *MT_fopen(const char *filename, const char *mode); @@ -536,23 +541,23 @@ ssize_t lngFromStr(const char *src, size ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external); const lng lng_nil; struct tm *localtime_r(const time_t *restrict, struct tm *restrict); +gdk_return log_activate(logger *lg); gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt); gdk_return log_bat_clear(logger *lg, log_id id); gdk_return log_bat_persists(logger *lg, BAT *b, log_id id); gdk_return log_bat_transient(logger *lg, log_id id); +lng log_changes(logger *lg); gdk_return log_constant(logger *lg, int type, ptr val, log_id id, lng offset, lng cnt); +logger *log_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata); gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id); -gdk_return log_sequence(logger *lg, int seq, lng id); +void log_destroy(logger *lg); +log_bid log_find_bat(logger *lg, log_id id); +gdk_return log_flush(logger *lg, ulng saved_id); +int log_sequence(logger *lg, int seq, lng *id); gdk_return log_tend(logger *lg); gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts); +gdk_return log_tsequence(logger *lg, int seq, lng id); gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id); -gdk_return logger_activate(logger *lg); -lng logger_changes(logger *lg); -logger *logger_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata); -void logger_destroy(logger *lg); -log_bid logger_find_bat(logger *lg, log_id id); -
MonetDB: properties - Merged with default
Changeset: dc618b7aeec7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/dc618b7aeec7 Branch: properties Log Message: Merged with default diffs (120 lines): diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -62104,21 +62104,6 @@ pattern optimizer.strimps(X_0:str, X_1:s OPTwrapper; Use strimps index if appropriate optimizer -volcano -pattern optimizer.volcano():str -OPTwrapper; -(empty) -optimizer -volcano -pattern optimizer.volcano(X_0:str, X_1:str):str -OPTwrapper; -Simulate volcano style execution -optimizer -volcano_pipe -function optimizer.volcano_pipe():void; -(empty) -(empty) -optimizer wlc pattern optimizer.wlc():str OPTwrapper; 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 @@ -45619,21 +45619,6 @@ pattern optimizer.strimps(X_0:str, X_1:s OPTwrapper; Use strimps index if appropriate optimizer -volcano -pattern optimizer.volcano():str -OPTwrapper; -(empty) -optimizer -volcano -pattern optimizer.volcano(X_0:str, X_1:str):str -OPTwrapper; -Simulate volcano style execution -optimizer -volcano_pipe -function optimizer.volcano_pipe():void; -(empty) -(empty) -optimizer wlc pattern optimizer.wlc():str OPTwrapper; 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 @@ -356,6 +356,11 @@ void IMPSdestroy(BAT *b); lng IMPSimprintsize(BAT *b); int MT_access(const char *pathname, int mode); int MT_check_nr_cores(void); +void MT_cond_broadcast(MT_Cond *cond); +void MT_cond_destroy(MT_Cond *cond); +void MT_cond_init(MT_Cond *cond); +void MT_cond_signal(MT_Cond *cond); +void MT_cond_wait(MT_Cond *cond, MT_Lock *lock); int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum MT_thr_detach d, const char *threadname); void MT_exiting_thread(void); FILE *MT_fopen(const char *filename, const char *mode); diff --git a/monetdb5/ChangeLog b/monetdb5/ChangeLog --- a/monetdb5/ChangeLog +++ b/monetdb5/ChangeLog @@ -1,3 +1,6 @@ # ChangeLog file for MonetDB5 # This file is updated with Maddlog +* Thu Apr 28 2022 Pedro Ferreira +- Disabled volcano pipeline due to known issues. + diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c --- a/monetdb5/optimizer/opt_pipes.c +++ b/monetdb5/optimizer/opt_pipes.c @@ -162,6 +162,8 @@ static struct PIPELINES { {"default_fast", "optimizer.defaultfast()", "stable", NULL, 1}, +/* Apr2022 update. I disabled the volcano_pipe because it has issues on it */ +#if 0 /* * Volcano style execution produces a sequence of blocks from the source relation */ @@ -200,6 +202,7 @@ static struct PIPELINES { "optimizer.garbageCollector();" "optimizer.profiler();", "stable", NULL, 1}, +#endif /* The no_mitosis pipe line is (and should be kept!) identical to the * default pipeline, except that optimizer mitosis is omitted. It is * used mainly to make some tests work deterministically, and to check diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c --- a/monetdb5/optimizer/optimizer.c +++ b/monetdb5/optimizer/optimizer.c @@ -89,7 +89,7 @@ static mel_func optimizer_init_funcs[] = optwrapper_pattern("coercions", "Handle simple type coercions"), optwrapper_pattern("commonTerms", "Common sub-expression optimizer"), optwrapper_pattern("candidates", "Mark candidate list variables"), - optwrapper_pattern("volcano", "Simulate volcano style execution"), + /* optwrapper_pattern("volcano", "Simulate volcano style execution"), Apr2022 update. I disabled the volcano_pipe because it has issues on it */ optwrapper_pattern("constants", "Duplicate constant removal optimizer"), optwrapper_pattern("profiler", "Collect properties for the profiler"), optwrapper_pattern("costModel", "Estimate the cost of a relational expression"), diff --git a/sql/test/Tests/setoptimizer.test b/sql/test/Tests/setoptimizer.test --- a/sql/test/Tests/setoptimizer.test +++ b/sql/test/Tests/setoptimizer.test @@ -40,9 +40,6 @@ stable default_fast optimizer.defaultfast() stable -volcano_pipe -optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.volcano();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector()