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 <[email protected]>
+- 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 <[email protected]>
- 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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list