Changeset: c7c77d5fa9ae for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c7c77d5fa9ae Modified Files: gdk/gdk_bbp.c sql/backends/monet5/sql.c sql/storage/sql_storage.h Branch: strheapvacuum Log Message:
merge default diffs (truncated from 2466 to 300 lines): diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt --- a/gdk/CMakeLists.txt +++ b/gdk/CMakeLists.txt @@ -18,6 +18,7 @@ set(gdk_public_headers $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gdk_utils.h> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gdk_cand.h> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gdk_calc.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gdk_time.h> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk.h> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_system.h> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_posix.h> @@ -28,7 +29,8 @@ set(gdk_public_headers $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_bbp.h> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_utils.h> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_calc.h> - $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_cand.h>) + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_cand.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/gdk_time.h>) add_library(bat SHARED) diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -1148,6 +1148,8 @@ fltFromStr(const char *src, size_t *len, } else { while (src[n] && GDKisspace(src[n])) n++; + if (f == -0) + f = 0; **dst = (flt) f; } } diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -74,6 +74,9 @@ #include "gdk.h" #include "gdk_private.h" #include "mutils.h" +#ifdef HAVE_FCNTL_H +#include <fcntl.h> +#endif #ifndef F_OK #define F_OK 0 diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -1007,9 +1007,8 @@ logger_open_output(logger *lg) return GDK_FAIL; } - if (LOG_DISABLED(lg)) { - lg->end = 0; - } else { + lg->end = 0; + if (!LOG_DISABLED(lg)) { char id[32]; char *filename; @@ -2428,8 +2427,7 @@ internal_log_bat(logger *lg, BAT *b, log if (LOG_DISABLED(lg) || !nr) { /* logging is switched off */ - if (LOG_DISABLED(lg)) - lg->end += nr; + lg->end += nr; if (nr) return la_bat_update_count(lg, id, offset+cnt); return GDK_SUCCEED; @@ -2523,9 +2521,8 @@ log_bat_persists(logger *lg, BAT *b, log logger_unlock(lg); return GDK_FAIL; } - } else { - lg->end++; } + lg->end++; if (lg->debug & 1) fprintf(stderr, "#persists id (%d) bat (%d)\n", id, b->batCacheid); gdk_return r = internal_log_bat(lg, b, id, 0, BATcount(b), 0); @@ -2549,9 +2546,8 @@ log_bat_transient(logger *lg, log_id id) logger_unlock(lg); return GDK_FAIL; } - } else { - lg->end++; } + lg->end++; if (lg->debug & 1) fprintf(stderr, "#Logged destroyed bat (%d) %d\n", id, bid); @@ -2593,8 +2589,8 @@ log_delta(logger *lg, BAT *uid, BAT *uva nr = (BUNlast(uval)); assert(nr); + lg->end += nr; if (LOG_DISABLED(lg)) { - lg->end += nr; /* logging is switched off */ logger_unlock(lg); return GDK_SUCCEED; @@ -2648,8 +2644,8 @@ log_bat_clear(logger *lg, int id) { logformat l; + lg->end++; if (LOG_DISABLED(lg)) { - lg->end++; logger_lock(lg); gdk_return res = la_bat_update_count(lg, id, 0); logger_unlock(lg); @@ -2702,8 +2698,8 @@ log_tend(logger *lg) return logger_commit(lg); } + lg->end++; if (LOG_DISABLED(lg)) { - lg->end++; return GDK_SUCCEED; } @@ -2909,8 +2905,8 @@ log_tstart(logger *lg, bool flushnow) lg->flushnow = flushnow; } + lg->end++; if (LOG_DISABLED(lg)) { - lg->end++; return GDK_SUCCEED; } diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c --- a/gdk/gdk_project.c +++ b/gdk/gdk_project.c @@ -371,7 +371,7 @@ project_any(BAT *restrict bn, BAT *restr } static BAT * -project_str(BAT *restrict l, struct canditer *restrict ci, +project_str(BAT *restrict l, struct canditer *restrict ci, int tpe, BAT *restrict r1, BAT *restrict r2, BATiter *restrict r1i, BATiter *restrict r2i, lng t0) @@ -386,7 +386,7 @@ project_str(BAT *restrict l, struct cand var_t v; BATiter *ri; - if ((bn = COLnew(l->hseqbase, TYPE_str, ci ? ci->ncand : BATcount(l), + if ((bn = COLnew(l->hseqbase, tpe, ci ? ci->ncand : BATcount(l), TRANSIENT)) == NULL) return NULL; @@ -591,7 +591,7 @@ BATproject2(BAT *restrict l, BAT *restri BAT *or1 = r1, *or2 = r2, *ol = l; oid lo, hi; gdk_return res; - int tpe = ATOMtype(r1->ttype); + int tpe = ATOMtype(r1->ttype), otpe = tpe; bool stringtrick = false; BUN lcount = BATcount(l); struct canditer ci, *lci = NULL; @@ -690,7 +690,7 @@ BATproject2(BAT *restrict l, BAT *restri * vheap; this also means that for this case we * don't care about duplicate elimination: it * will remain the same */ - bn = project_str(l, lci, r1, r2, &r1i, &r2i, t0); + bn = project_str(l, lci, tpe, r1, r2, &r1i, &r2i, t0); bat_iterator_end(&r1i); bat_iterator_end(&r2i); return bn; @@ -787,7 +787,7 @@ BATproject2(BAT *restrict l, BAT *restri } else { /* make copy of string heap */ bn->tvheap->parentid = bn->batCacheid; - bn->tvheap->farmid = BBPselectfarm(bn->batRole, TYPE_str, varheap); + bn->tvheap->farmid = BBPselectfarm(bn->batRole, otpe, varheap); strconcat_len(bn->tvheap->filename, sizeof(bn->tvheap->filename), BBP_physical(bn->batCacheid), ".theap", @@ -965,14 +965,14 @@ BATprojectchain(BAT **bats) bi = bat_iterator(b); if (nonil && ATOMstorage(tpe) == TYPE_str && b->batRestricted == BAT_READ) { stringtrick = true; - tpe = bi.width == 1 ? TYPE_bte : (bi.width == 2 ? TYPE_sht : (bi.width == 4 ? TYPE_int : TYPE_lng)); - bn = COLnew_intern(ba[0].hlo, TYPE_str, ba[0].cnt, TRANSIENT, bi.width); + bn = COLnew_intern(ba[0].hlo, tpe, ba[0].cnt, TRANSIENT, bi.width); if (bn && bn->tvheap) { /* no need to remove any files since they were * never created for this bat */ HEAPdecref(bn->tvheap, false); bn->tvheap = NULL; } + tpe = bi.width == 1 ? TYPE_bte : (bi.width == 2 ? TYPE_sht : (bi.width == 4 ? TYPE_int : TYPE_lng)); } else { bn = COLnew(ba[0].hlo, tpe, ba[0].cnt, TRANSIENT); } diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c --- a/monetdb5/mal/mal_profiler.c +++ b/monetdb5/mal/mal_profiler.c @@ -884,6 +884,7 @@ sqlProfilerEvent(Client cntxt, MalBlkPtr MT_lock_set(&mal_profileLock); if (cntxt->profticks == NULL) { MT_lock_unset(&mal_profileLock); + GDKfree(stmt); return; } errors += BUNappend(cntxt->profticks, &pci->ticks, false) != GDK_SUCCEED; diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c --- a/monetdb5/optimizer/opt_support.c +++ b/monetdb5/optimizer/opt_support.c @@ -49,7 +49,7 @@ isOptimizerEnabled(MalBlkPtr mb, const c q= getInstrPtr(mb,i); if ( q->token == ENDsymbol) break; - if ( getModuleId(q) == optimizerRef && getFunctionId(q) == opt) + if ( q->token != REMsymbol && getModuleId(q) == optimizerRef && getFunctionId(q) == opt) return 1; } return 0; diff --git a/sql/ChangeLog b/sql/ChangeLog --- a/sql/ChangeLog +++ b/sql/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog file for sql # This file is updated with Maddlog +* Tue Sep 7 2021 Sjoerd Mullender <sjo...@acm.org> +- The view sys.ids has been changed to give more information about the + objects in the system. In particular, there is an extra column + added at the end that indicates whether the object is a system + object. + * Mon Aug 23 2021 Sjoerd Mullender <sjo...@acm.org> - The example modules opt_sql_append and udf are no longer loaded by default and no longer part of the binary release. If installed, diff --git a/sql/backends/monet5/CMakeLists.txt b/sql/backends/monet5/CMakeLists.txt --- a/sql/backends/monet5/CMakeLists.txt +++ b/sql/backends/monet5/CMakeLists.txt @@ -8,12 +8,79 @@ set(sql_public_headers $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/sql_import.h> - $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_import.h>) + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_mem.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_list.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_hash.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_stack.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_catalog.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_relation.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/exception_buffer.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include/sql_keyword.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../common/sql_types.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../common/sql_string.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../common/sql_backend.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../storage/sql_storage.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../storage/store_sequence.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_tokens.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_scan.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_atom.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_symbol.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_semantic.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_query.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_qc.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_mvc.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_parser.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/sql_privileges.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_optimizer.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_distribute.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_partition.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_prop.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_exp.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_rel.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_basetable.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_semantic.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../server/rel_dump.h> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/opt_backend.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_import.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_mem.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_list.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_hash.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_stack.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_catalog.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_relation.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/exception_buffer.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_keyword.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_types.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_string.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_backend.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_storage.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/store_sequence.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_tokens.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_scan.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_atom.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_symbol.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_semantic.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_query.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_qc.h> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb/sql_mvc.h> _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list