Changeset: 124603154116 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/124603154116 Modified Files: tools/monetdbe/monetdbe.c Branch: default Log Message:
In case there are multiple handles, make sure we use the correct query context. diffs (60 lines): diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -219,6 +219,7 @@ validate_database_handle_noerror(monetdb { if (!monetdbe_embedded_initialized || !MCvalid(mdbe->c)) return 0; + MT_thread_set_qry_ctx(&mdbe->c->qryctx); clear_error(mdbe); return 1; } @@ -952,6 +953,7 @@ monetdbe_close(monetdbe_database dbhdl) int err = 0; int registered_thread = mdbe->registered_thread; + MT_thread_set_qry_ctx(&mdbe->c->qryctx); MT_lock_set(&embedded_lock); if (mdbe->mid) err = monetdbe_close_remote(mdbe); @@ -1559,6 +1561,7 @@ monetdbe_query(monetdbe_database dbhdl, return NULL; monetdbe_database_internal *mdbe = (monetdbe_database_internal*)dbhdl; + MT_thread_set_qry_ctx(&mdbe->c->qryctx); if (mdbe->mid) { mdbe->msg = monetdbe_query_remote(mdbe, query, result, affected_rows, NULL); } @@ -1578,6 +1581,7 @@ monetdbe_prepare(monetdbe_database dbhdl int prepare_id = 0; + MT_thread_set_qry_ctx(&mdbe->c->qryctx); if (!stmt) { set_error(mdbe, createException(MAL, "monetdbe.monetdbe_prepare", "Parameter stmt is NULL")); assert(mdbe->msg != MAL_SUCCEED); /* help Coverity */ @@ -1705,6 +1709,7 @@ monetdbe_execute(monetdbe_statement *stm cq *q = stmt_internal->q; Symbol s = NULL; + MT_thread_set_qry_ctx(&mdbe->c->qryctx); if ((mdbe->msg = SQLtrans(m)) != MAL_SUCCEED) return mdbe->msg; @@ -1747,6 +1752,7 @@ monetdbe_cleanup_statement(monetdbe_data assert(!stmt_internal->mdbe || mdbe == stmt_internal->mdbe); + MT_thread_set_qry_ctx(&mdbe->c->qryctx); for (size_t i = 0; i < stmt_internal->res.nparam + 1; i++) { ValPtr data = &stmt_internal->data[i]; VALclear(data); @@ -1768,7 +1774,7 @@ monetdbe_cleanup_result(monetdbe_databas monetdbe_database_internal *mdbe = (monetdbe_database_internal*)dbhdl; monetdbe_result_internal* res = (monetdbe_result_internal *) result; - + MT_thread_set_qry_ctx(&mdbe->c->qryctx); if (!result) { set_error(mdbe, createException(MAL, "monetdbe.monetdbe_cleanup_result_internal", "Parameter result is NULL")); } else { _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org