Changeset: 824781fe1324 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/824781fe1324 Modified Files: ctest/tools/monetdbe/example2.c gdk/gdk_bbp.c tools/monetdbe/monetdbe.c Branch: default Log Message:
Merged with Jul2021 diffs (80 lines): diff --git a/ctest/tools/monetdbe/example2.c b/ctest/tools/monetdbe/example2.c --- a/ctest/tools/monetdbe/example2.c +++ b/ctest/tools/monetdbe/example2.c @@ -170,6 +170,20 @@ main(void) if ((err = monetdbe_cleanup_statement(mdbe, stmt)) != NULL) error(err) + /* NULL value version */ + if ((err = monetdbe_prepare(mdbe, "SELECT b, t FROM test where t = ?; ", &stmt, NULL)) != NULL) + error(err) + char *s2 = NULL; + if ((err = monetdbe_bind(stmt, s2, 0)) != NULL) + error(err) + if ((err = monetdbe_execute(stmt, &result, NULL)) != NULL) + error(err) + fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n", result->ncols, result->nrows); + if ((err = monetdbe_cleanup_result(mdbe, result)) != NULL) + error(err) + if ((err = monetdbe_cleanup_statement(mdbe, stmt)) != NULL) + error(err) + if ((err = monetdbe_prepare(mdbe, "SELECT b, y FROM test where y = ?; ", &stmt, NULL)) != NULL) error(err) char *y = "Hello"; @@ -183,6 +197,20 @@ main(void) if ((err = monetdbe_cleanup_statement(mdbe, stmt)) != NULL) error(err) + /* NULL value version */ + if ((err = monetdbe_prepare(mdbe, "SELECT b, y FROM test where y = ?; ", &stmt, NULL)) != NULL) + error(err) + char *y2 = NULL; + if ((err = monetdbe_bind(stmt, y2, 0)) != NULL) + error(err) + if ((err = monetdbe_execute(stmt, &result, NULL)) != NULL) + error(err) + fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n", result->ncols, result->nrows); + if ((err = monetdbe_cleanup_result(mdbe, result)) != NULL) + error(err) + if ((err = monetdbe_cleanup_statement(mdbe, stmt)) != NULL) + error(err) + if (monetdbe_close(mdbe)) error("Failed to close database") return 0; diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -1760,12 +1760,12 @@ heap_entry(FILE *fp, BAT *b, BUN size) { size_t free = b->theap->free; if (size < BUN_NONE) { - if ((b->ttype >= 0 && ATOMstorage(b->ttype) == TYPE_msk)) { - BUN bytes = ((size + 31) / 32) * 4; - if (free > bytes) - free = bytes; - } else if (b->twidth > 0 && free / b->twidth > size) + if ((b->ttype >= 0 && ATOMstorage(b->ttype) == TYPE_msk)) + free = ((size + 31) / 32) * 4; + else if (b->twidth > 0) free = size << b->tshift; + else + free = 0; } return fprintf(fp, " %s %d %d %d " BUNFMT " " BUNFMT " " BUNFMT " " BUNFMT " " OIDFMT " %zu %zu %d %" PRIu64" %" PRIu64, diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -1666,9 +1666,7 @@ monetdbe_cleanup_statement(monetdbe_data for (size_t i = 0; i < stmt_internal->res.nparam + 1; i++) { ValPtr data = &stmt_internal->data[i]; - if (data->vtype == TYPE_str || data->vtype == TYPE_blob) { - GDKfree(data->val.pval); - } + VALclear(data); } GDKfree(stmt_internal->data); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list