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

Reply via email to