Changeset: bb7c6f07af0f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/bb7c6f07af0f Modified Files: gdk/gdk_tracer.c tools/monetdbe/monetdbe.c Branch: Jul2021 Log Message:
At an embedded connection set the GDK error buffer and use it to retrieve GDK errors, but don't print to the tracer file diffs (56 lines): diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c --- a/gdk/gdk_tracer.c +++ b/gdk/gdk_tracer.c @@ -454,9 +454,6 @@ GDKtracer_log(const char *file, const ch const char *syserr, const char *fmt, ...) { - if ((adapter_t) ATOMIC_GET(&cur_adapter) == MBEDDED) - return; - int bytes_written; char buffer[512]; /* should be plenty big enough for a message */ va_list va; @@ -501,7 +498,8 @@ GDKtracer_log(const char *file, const ch } va_end(va); if (bytes_written < 0) { - GDK_TRACER_EXCEPTION("Failed to write logs\n"); + if ((adapter_t) ATOMIC_GET(&cur_adapter) != MBEDDED) + GDK_TRACER_EXCEPTION("Failed to write logs\n"); return; } char *p; @@ -521,6 +519,10 @@ GDKtracer_log(const char *file, const ch } } + /* don't write to file on embedded case, but set the GDK error buffer */ + if ((adapter_t) ATOMIC_GET(&cur_adapter) == MBEDDED) + return; + if (level <= M_WARNING) { fprintf(stderr, "#%s%s%s: %s: %s%s%s%s\n", add_ts ? ts : "", diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -546,6 +546,18 @@ monetdbe_open_internal(monetdbe_database mdbe->msg = createException(MAL, "monetdbe.monetdbe_open_internal", "Failed to initialize client"); goto cleanup; } + /* MCinitClientThread can't be exported on Jul2021, so use this workaround for now */ + mdbe->c->errbuf = GDKerrbuf; + if (mdbe->c->errbuf == NULL) { + char *n = GDKzalloc(GDKMAXERRLEN); + if ( n == NULL){ + mdbe->msg = createException(MAL, "monetdbe.monetdbe_open_internal", MAL_MALLOC_FAIL); + goto cleanup; + } + GDKsetbuf(n); + mdbe->c->errbuf = GDKerrbuf; + } else + mdbe->c->errbuf[0] = 0; mdbe->c->curmodule = mdbe->c->usermodule = userModule(); mdbe->c->workerlimit = monetdbe_workers_internal(mdbe, opts); mdbe->c->memorylimit = monetdbe_memory_internal(mdbe, opts); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list