From 83080af4376e5bede07842f4cec47dc445d0d1a6 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Tue, 22 Aug 2017 06:54:58 +0900 Subject: [PATCH] The 1st cut of qlog renewal. Removed some qlogs, changed some qlogs to MYLOG and added some qlogs. --- connection.c | 25 +++++++++++-------------- convert.c | 9 ++++----- descriptor.c | 1 - dlg_specific.c | 9 ++++----- drvconn.c | 8 ++------ environ.c | 5 ++--- info.c | 4 ++-- mylog.h | 2 +- pgapi30.c | 18 ++---------------- statement.c | 20 +++++++++++++------- 10 files changed, 41 insertions(+), 60 deletions(-) diff --git a/connection.c b/connection.c index 3a69118..ac20338 100644 --- a/connection.c +++ b/connection.c @@ -964,15 +964,15 @@ static char CC_initial_log(ConnectionClass *self, const char *func) ); qlog(vermsg); MYLOG(0, "%s", vermsg); - qlog("Global Options: fetch=%d, unknown_sizes=%d, max_varchar_size=%d, max_longvarchar_size=%d\n", + MYLOG(1, "Global Options: fetch=%d, unknown_sizes=%d, max_varchar_size=%d, max_longvarchar_size=%d\n", ci->drivers.fetch_max, ci->drivers.unknown_sizes, ci->drivers.max_varchar_size, ci->drivers.max_longvarchar_size); - qlog(" unique_index=%d, use_declarefetch=%d\n", + MYLOG(1, " unique_index=%d, use_declarefetch=%d\n", ci->drivers.unique_index, ci->drivers.use_declarefetch); - qlog(" text_as_longvarchar=%d, unknowns_as_longvarchar=%d, bools_as_char=%d NAMEDATALEN=%d\n", + MYLOG(1, " text_as_longvarchar=%d, unknowns_as_longvarchar=%d, bools_as_char=%d NAMEDATALEN=%d\n", ci->drivers.text_as_longvarchar, ci->drivers.unknowns_as_longvarchar, ci->drivers.bools_as_char, @@ -982,7 +982,7 @@ static char CC_initial_log(ConnectionClass *self, const char *func) { encoding = check_client_encoding(ci->conn_settings); CC_set_locale_encoding(self, encoding); - qlog(" extra_systable_prefixes='%s', conn_settings='%s' conn_encoding='%s'\n", + MYLOG(1, " extra_systable_prefixes='%s', conn_settings='%s' conn_encoding='%s'\n", ci->drivers.extra_systable_prefixes, PRINT_NAME(ci->conn_settings), encoding ? encoding : ""); @@ -1710,12 +1710,10 @@ CC_send_query_append(ConnectionClass *self, const char *query, QueryInfo *qi, UD if (appendq) { MYLOG(0, "%s_append: conn=%p, query='%s'+'%s'\n", func, self, query, appendq); - qlog("conn=%p, query='%s'+'%s'\n", self, query, appendq); } else { MYLOG(0, "%s: conn=%p, query='%s'\n", func, self, query); - qlog("conn=%p, query='%s'\n", self, query); } if (!self->pqconn) @@ -1836,9 +1834,11 @@ MYLOG(1, "!!!! %s:query_buf=%s(" FORMAT_SIZE_T ")\n", __FUNCTION__, query_buf.da nrarg.res = NULL; PQsetNoticeReceiver(self->pqconn, receive_libpq_notice, &nrarg); + qlog("PQsendQuery query=%s\n", query_buf.data); if (!PQsendQuery(self->pqconn, query_buf.data)) { char *errmsg = PQerrorMessage(self->pqconn); + qlog("\nComunication Error: %s\n", errmsg ? errmsg : "(null)"); CC_set_error(self, CONNECTION_COMMUNICATION_ERROR, errmsg, func); goto cleanup; } @@ -2453,7 +2453,6 @@ CC_lookup_lo(ConnectionClass *self) } QR_Destructor(res); MYLOG(0, "Got the large object oid: %d\n", self->lobj_type); - qlog(" [ Large Object oid = %d ]\n", self->lobj_type); return; } @@ -2479,17 +2478,15 @@ CC_log_error(const char *func, const char *desc, const ConnectionClass *self) if (self) { - qlog("CONN ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->__error_number, NULLCHECK(self->__error_message)); MYLOG(0, "CONN ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->__error_number, NULLCHECK(self->__error_message)); - qlog(" ------------------------------------------------------------\n"); - qlog(" henv=%p, conn=%p, status=%u, num_stmts=%d\n", self->henv, self, self->status, self->num_stmts); - qlog(" pqconn=%p, stmts=%p, lobj_type=%d\n", self->pqconn, self->stmts, self->lobj_type); + MYLOG(1, " ------------------------------------------------------------\n"); + MYLOG(1, " henv=%p, conn=%p, status=%u, num_stmts=%d\n", self->henv, self, self->status, self->num_stmts); + MYLOG(1, " pqconn=%p, stmts=%p, lobj_type=%d\n", self->pqconn, self->stmts, self->lobj_type); } else -{ - qlog("INVALID CONNECTION HANDLE ERROR: func=%s, desc='%s'\n", func, desc); + { MYLOG(0, "INVALID CONNECTION HANDLE ERROR: func=%s, desc='%s'\n", func, desc); -} + } } /* diff --git a/convert.c b/convert.c index d8dfbaf..0663e73 100644 --- a/convert.c +++ b/convert.c @@ -1677,7 +1677,7 @@ MYLOG(1, "2stime fr=%d\n", std_time.fr); neut_str = midtemp; else { - qlog("couldn't convert money type to %d\n", fCType); + MYLOG(0, "couldn't convert money type to %d\n", fCType); return COPY_UNSUPPORTED_TYPE; } } @@ -1919,7 +1919,6 @@ MYLOG(1, "SQL_C_VARBOOKMARK value=%d\n", ival); else { MYLOG(0, "couldn't convert the type %d to SQL_C_BINARY\n", field_type); - qlog("couldn't convert the type %d to SQL_C_BINARY\n", field_type); return COPY_UNSUPPORTED_TYPE; } break; @@ -1953,7 +1952,7 @@ MYLOG(1, "SQL_C_VARBOOKMARK value=%d\n", ival); break; default: - qlog("conversion to the type %d isn't supported\n", fCType); + MYLOG(0, "conversion to the type %d isn't supported\n", fCType); return COPY_UNSUPPORTED_TYPE; } } @@ -5578,7 +5577,7 @@ MYLOG(0, FORMAT_LEN "-" FORMAT_LEN " num=%s SQL_BIT=%d\n", to, from, num, SQL_BI { qb->errornumber = STMT_EXEC_ERROR; qb->errormsg = "param not found"; - qlog("%dth param not found for the expression %s\n", pidx + 1, mapExpr); + MYLOG(0, "%dth param not found for the expression %s\n", pidx + 1, mapExpr); retval = SQL_ERROR; break; } @@ -5589,7 +5588,7 @@ MYLOG(0, FORMAT_LEN "-" FORMAT_LEN " num=%s SQL_BIT=%d\n", to, from, num, SQL_BI { qb->errornumber = STMT_EXEC_ERROR; qb->errormsg = "internal expression error"; - qlog("%s internal expression error %s\n", func, mapExpr); + MYLOG(0, "%s internal expression error %s\n", func, mapExpr); retval = SQL_ERROR; break; } diff --git a/descriptor.c b/descriptor.c index 16d0514..3b6de89 100644 --- a/descriptor.c +++ b/descriptor.c @@ -721,7 +721,6 @@ DC_log_error(const char *func, const char *desc, const DescriptorClass *self) #define nullcheck(a) (a ? a : "(NULL)") if (self) { - qlog("DESCRIPTOR ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->deschd.__error_number, nullcheck(self->deschd.__error_message)); MYLOG(0, "DESCRIPTOR ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->deschd.__error_number, nullcheck(self->deschd.__error_message)); } } diff --git a/dlg_specific.c b/dlg_specific.c index 05477ef..5a4e68a 100644 --- a/dlg_specific.c +++ b/dlg_specific.c @@ -1047,30 +1047,29 @@ MYLOG(0, "drivername=%s\n", drivername); get_Ci_Drivers(DSN, ODBC_INI, &(ci->drivers)); STR_TO_NAME(ci->drivers.drivername, drivername); - qlog("DSN info: DSN='%s',server='%s',port='%s',dbase='%s',user='%s',passwd='%s'\n", + MYLOG(1, "DSN info: DSN='%s',server='%s',port='%s',dbase='%s',user='%s',passwd='%s'\n", DSN, ci->server, ci->port, ci->database, ci->username, NAME_IS_VALID(ci->password) ? "xxxxx" : ""); - qlog(" onlyread='%s',showoid='%s',fakeoidindex='%s',showsystable='%s'\n", + MYLOG(1, " onlyread='%s',showoid='%s',fakeoidindex='%s',showsystable='%s'\n", ci->onlyread, ci->show_oid_column, ci->fake_oid_index, ci->show_system_tables); - if (get_qlog()) { #ifdef NOT_USED char *enc = (char *) check_client_encoding(ci->conn_settings); - qlog(" conn_settings='%s', conn_encoding='%s'\n", ci->conn_settings, + MYLOG(1, " conn_settings='%s', conn_encoding='%s'\n", ci->conn_settings, NULL != enc ? enc : "(null)"); if (NULL != enc) free(enc); #endif /* NOT_USED */ - qlog(" translation_dll='%s',translation_option='%s'\n", + MYLOG(1, " translation_dll='%s',translation_option='%s'\n", ci->translation_dll, ci->translation_option); } diff --git a/drvconn.c b/drvconn.c index 7183095..4cc3e50 100644 --- a/drvconn.c +++ b/drvconn.c @@ -128,14 +128,12 @@ PGAPI_DriverConnect(HDBC hdbc, #ifdef FORCE_PASSWORD_DISPLAY MYLOG(0, "**** PGAPI_DriverConnect: fDriverCompletion=%d, connStrIn='%s'\n", fDriverCompletion, connStrIn); - qlog("conn=%p, PGAPI_DriverConnect( in)='%s', fDriverCompletion=%d\n", conn, connStrIn, fDriverCompletion); #else - if (get_qlog() || get_mylog()) + if (get_mylog()) { char *hide_str = hide_password(connStrIn); MYLOG(0, "**** PGAPI_DriverConnect: fDriverCompletion=%d, connStrIn='%s'\n", fDriverCompletion, NULL_IF_NULL(hide_str)); - qlog("conn=%p, PGAPI_DriverConnect( in)='%s', fDriverCompletion=%d\n", conn, NULL_IF_NULL(hide_str), fDriverCompletion); if (hide_str) free(hide_str); } @@ -303,17 +301,15 @@ MYLOG(1, "before CC_connect\n"); if (cbConnStrOutMax > 0) { MYLOG(0, "szConnStrOut = '%s' len=" FORMAT_SSIZE_T ",%d\n", NULL_IF_NULL((char *) szConnStrOut), len, cbConnStrOutMax); - qlog("conn=%p, PGAPI_DriverConnect(out)='%s'\n", conn, NULL_IF_NULL((char *) szConnStrOut)); } #else - if (get_qlog() || get_mylog()) + if (get_mylog()) { char *hide_str = NULL; if (cbConnStrOutMax > 0) hide_str = hide_password(szConnStrOut); MYLOG(0, "szConnStrOut = '%s' len=%d,%d\n", NULL_IF_NULL(hide_str), len, cbConnStrOutMax); - qlog("conn=%p, PGAPI_DriverConnect(out)='%s'\n", conn, NULL_IF_NULL(hide_str)); if (hide_str) free(hide_str); } diff --git a/environ.c b/environ.c index 845f068..36fb3d4 100644 --- a/environ.c +++ b/environ.c @@ -105,7 +105,6 @@ PGAPI_FreeEnv(HENV henv) goto cleanup; } - MYLOG(0, " error\n"); ret = SQL_ERROR; EN_log_error(func, "Error freeing environment", NULL); cleanup: @@ -642,7 +641,7 @@ void EN_log_error(const char *func, char *desc, EnvironmentClass *self) { if (self) - qlog("ENVIRON ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, self->errormsg); + MYLOG(0, "ENVIRON ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, self->errormsg); else - qlog("INVALID ENVIRON HANDLE ERROR: func=%s, desc='%s'\n", func, desc); + MYLOG(0, "INVALID ENVIRON HANDLE ERROR: func=%s, desc='%s'\n", func, desc); } diff --git a/info.c b/info.c index 2858a5c..a1d5ec0 100644 --- a/info.c +++ b/info.c @@ -2659,8 +2659,8 @@ MYLOG(0, " and the data=%s\n", attdef); * *---------- */ - qlog("%s: table='%s',field_name='%s',type=%d,name='%s'\n", - func, table_name, field_name, field_type, field_type_name); + MYLOG(0, "table='%s',field_name='%s',type=%d,name='%s'\n", + table_name, field_name, field_type, field_type_name); /* Subtract the header length */ switch (field_type) diff --git a/mylog.h b/mylog.h index 7155bd5..b026672 100644 --- a/mylog.h +++ b/mylog.h @@ -40,7 +40,7 @@ extern "C" { DLL_DECLARE int mylog(const char *fmt,...) __attribute__((format(printf, 1, 2))); DLL_DECLARE int myprintf(const char *fmt,...) __attribute__((format(printf, 1, 2))); -extern int qlog(char *fmt,...); +extern int qlog(char *fmt,...) __attribute__((format(printf, 1, 2))); const char *po_basename(const char *path); diff --git a/pgapi30.c b/pgapi30.c index c615613..68a71e7 100644 --- a/pgapi30.c +++ b/pgapi30.c @@ -1720,7 +1720,6 @@ PGAPI_SetConnectAttr(HDBC ConnectionHandle, conn->connInfo.drivers.debug = newValue; logs_on_off(1, 0, 0); } - qlog("debug => %d\n", conn->connInfo.drivers.debug); break; case SQL_ATTR_PGOPT_COMMLOG: newValue = CAST_UPTR(SQLCHAR, Value); @@ -1729,76 +1728,63 @@ PGAPI_SetConnectAttr(HDBC ConnectionHandle, logs_on_off(-1, 0, 0); conn->connInfo.drivers.commlog = newValue; logs_on_off(1, 0, conn->connInfo.drivers.commlog); - qlog("commlog => %d\n", conn->connInfo.drivers.commlog); + MYLOG(0, "commlog => %d\n", conn->connInfo.drivers.commlog); } else if (newValue == 0 && conn->connInfo.drivers.commlog > 0) { - qlog("commlog => %d\n", newValue); + MYLOG(0, "commlog => %d\n", newValue); logs_on_off(-1, 0, conn->connInfo.drivers.commlog); conn->connInfo.drivers.debug = newValue; logs_on_off(1, 0, 0); } - MYLOG(0, "commlog => %d\n", conn->connInfo.drivers.commlog); break; case SQL_ATTR_PGOPT_PARSE: conn->connInfo.drivers.parse = CAST_UPTR(SQLCHAR, Value); - qlog("parse => %d\n", conn->connInfo.drivers.parse); MYLOG(0, "parse => %d\n", conn->connInfo.drivers.parse); break; case SQL_ATTR_PGOPT_USE_DECLAREFETCH: conn->connInfo.drivers.use_declarefetch = CAST_UPTR(SQLCHAR, Value); ci_updatable_cursors_set(&conn->connInfo); - qlog("declarefetch => %d\n", conn->connInfo.drivers.use_declarefetch); MYLOG(0, "declarefetch => %d\n", conn->connInfo.drivers.use_declarefetch); break; case SQL_ATTR_PGOPT_SERVER_SIDE_PREPARE: conn->connInfo.use_server_side_prepare = CAST_UPTR(SQLCHAR, Value); - qlog("server_side_prepare => %d\n", conn->connInfo.use_server_side_prepare); MYLOG(0, "server_side_prepare => %d\n", conn->connInfo.use_server_side_prepare); break; case SQL_ATTR_PGOPT_FETCH: conn->connInfo.drivers.fetch_max = CAST_PTR(SQLINTEGER, Value); - qlog("fetch => %d\n", conn->connInfo.drivers.fetch_max); MYLOG(0, "fetch => %d\n", conn->connInfo.drivers.fetch_max); break; case SQL_ATTR_PGOPT_UNKNOWNSIZES: conn->connInfo.drivers.unknown_sizes = CAST_PTR(SQLINTEGER, Value); - qlog("unknown_sizes => %d\n", conn->connInfo.drivers.unknown_sizes); MYLOG(0, "unknown_sizes => %d\n", conn->connInfo.drivers.unknown_sizes); break; case SQL_ATTR_PGOPT_TEXTASLONGVARCHAR: conn->connInfo.drivers.text_as_longvarchar = CAST_PTR(SQLINTEGER, Value); - qlog("text_as_longvarchar => %d\n", conn->connInfo.drivers.text_as_longvarchar); MYLOG(0, "text_as_longvarchar => %d\n", conn->connInfo.drivers.text_as_longvarchar); break; case SQL_ATTR_PGOPT_UNKNOWNSASLONGVARCHAR: conn->connInfo.drivers.unknowns_as_longvarchar = CAST_PTR(SQLINTEGER, Value); - qlog("unknowns_as_long_varchar => %d\n", conn->connInfo.drivers.unknowns_as_longvarchar); MYLOG(0, "unknowns_as_long_varchar => %d\n", conn->connInfo.drivers.unknowns_as_longvarchar); break; case SQL_ATTR_PGOPT_BOOLSASCHAR: conn->connInfo.drivers.bools_as_char = CAST_PTR(SQLINTEGER, Value); - qlog("bools_as_char => %d\n", conn->connInfo.drivers.bools_as_char); MYLOG(0, "bools_as_char => %d\n", conn->connInfo.drivers.bools_as_char); break; case SQL_ATTR_PGOPT_MAXVARCHARSIZE: conn->connInfo.drivers.max_varchar_size = CAST_PTR(SQLINTEGER, Value); - qlog("max_varchar_size => %d\n", conn->connInfo.drivers.max_varchar_size); MYLOG(0, "max_varchar_size => %d\n", conn->connInfo.drivers.max_varchar_size); break; case SQL_ATTR_PGOPT_MAXLONGVARCHARSIZE: conn->connInfo.drivers.max_longvarchar_size = CAST_PTR(SQLINTEGER, Value); - qlog("max_longvarchar_size => %d\n", conn->connInfo.drivers.max_longvarchar_size); MYLOG(0, "max_longvarchar_size => %d\n", conn->connInfo.drivers.max_longvarchar_size); break; case SQL_ATTR_PGOPT_WCSDEBUG: conn->connInfo.wcs_debug = CAST_PTR(SQLINTEGER, Value); - qlog("wcs_debug => %d\n", conn->connInfo.wcs_debug); MYLOG(0, "wcs_debug => %d\n", conn->connInfo.wcs_debug); break; case SQL_ATTR_PGOPT_MSJET: conn->ms_jet = CAST_PTR(SQLINTEGER, Value); - qlog("ms_jet => %d\n", conn->ms_jet); MYLOG(0, "ms_jet => %d\n", conn->ms_jet); break; default: diff --git a/statement.c b/statement.c index c277ab1..75881ff 100644 --- a/statement.c +++ b/statement.c @@ -1782,9 +1782,9 @@ MYLOG(1, "curt=" FORMAT_LEN "\n", curt); case COPY_RESULT_TRUNCATED: SC_set_error(self, STMT_TRUNCATED, "Fetched item was truncated.", func); - qlog("The %dth item was truncated\n", lf + 1); - qlog("The buffer size = %d", opts->bindings[lf].buflen); - qlog(" and the value is '%s'\n", value); + MYLOG(1, "The %dth item was truncated\n", lf + 1); + MYLOG(1, "The buffer size = " FORMAT_LEN, opts->bindings[lf].buflen); + MYLOG(1, " and the value is '%s'\n", value); result = SQL_SUCCESS_WITH_INFO; break; @@ -2360,16 +2360,16 @@ SC_log_error(const char *func, const char *desc, const StatementClass *self) qlog(" statement_type=%d, statement='%s'\n", self->statement_type, NULLCHECK(self->statement)); qlog(" stmt_with_params='%s'\n", NULLCHECK(self->stmt_with_params)); qlog(" data_at_exec=%d, current_exec_param=%d, put_data=%d\n", self->data_at_exec, self->current_exec_param, self->put_data); - qlog(" currTuple=%d, current_col=%d, lobj_fd=%d\n", self->currTuple, self->current_col, self->lobj_fd); - qlog(" maxRows=%d, rowset_size=%d, keyset_size=%d, cursor_type=%d, scroll_concurrency=%d\n", self->options.maxRows, rowsetSize, self->options.keyset_size, self->options.cursor_type, self->options.scroll_concurrency); + qlog(" currTuple=" FORMAT_LEN ", current_col=%d, lobj_fd=%d\n", self->currTuple, self->current_col, self->lobj_fd); + qlog(" maxRows=" FORMAT_LEN ", rowset_size=" FORMAT_LEN ", keyset_size=" FORMAT_LEN ", cursor_type=%u, scroll_concurrency=%d\n", self->options.maxRows, rowsetSize, self->options.keyset_size, self->options.cursor_type, self->options.scroll_concurrency); qlog(" cursor_name='%s'\n", SC_cursor_name(self)); qlog(" ----------------QResult Info -------------------------------\n"); if (res) { - qlog(" fields=%p, backend_tuples=%p, tupleField=%d, conn=%p\n", QR_get_fields(res), res->backend_tuples, res->tupleField, res->conn); - qlog(" fetch_count=%d, num_total_rows=%d, num_fields=%d, cursor='%s'\n", res->fetch_number, QR_get_num_total_tuples(res), res->num_fields, NULLCHECK(QR_get_cursor(res))); + qlog(" fields=%p, backend_tuples=%p, tupleField=%p, conn=%p\n", QR_get_fields(res), res->backend_tuples, res->tupleField, res->conn); + qlog(" fetch_count=" FORMAT_LEN ", num_total_rows=" FORMAT_ULEN ", num_fields=%d, cursor='%s'\n", res->fetch_number, QR_get_num_total_tuples(res), res->num_fields, NULLCHECK(QR_get_cursor(res))); qlog(" message='%s', command='%s', notice='%s'\n", NULLCHECK(QR_get_message(res)), NULLCHECK(res->command), NULLCHECK(res->notice)); qlog(" status=%d\n", QR_get_rstatus(res)); } @@ -2503,6 +2503,7 @@ libpq_bind_and_exec(StatementClass *stmt) pstmt = stmt->processed_statements; MYLOG(0, "%s execParams query=%s nParams=%d\n", __FUNCTION__, pstmt->query, nParams); + qlog("PQexecParams query='%s' nParams=%d\n", pstmt->query, nParams); pgres = PQexecParams(conn->pqconn, pstmt->query, nParams, @@ -2527,6 +2528,7 @@ libpq_bind_and_exec(StatementClass *stmt) /* already prepared */ MYLOG(0, "%s execPrepared plan=%s nParams=%d\n", __FUNCTION__, plan_name, nParams); + qlog("PQexecPrepared plan=%s nParams=%d\n", plan_name, nParams); pgres = PQexecPrepared(conn->pqconn, plan_name, /* portal name == plan name */ nParams, @@ -2560,6 +2562,7 @@ MYLOG(1, "get_Result=%p %p %d\n", res, SC_get_Result(stmt), stmt->curr_param_res /* read in the return message from the backend */ cmdtag = PQcmdStatus(pgres); MYLOG(0, "command response: %s\n", cmdtag); + qlog("\ok: %s\n", cmdtag); QR_set_command(res, cmdtag); if (QR_command_successful(res)) QR_set_rstatus(res, PORES_COMMAND_OK); @@ -2600,6 +2603,7 @@ MYLOG(1, "get_Result=%p %p %d\n", res, SC_get_Result(stmt), stmt->curr_param_res CC_on_abort(conn, CONN_DEAD); MYLOG(0, "send_query: error - %s\n", CC_get_errormsg(conn)); + qlog("\error: - %s\n", CC_get_errormsg(conn)); break; } @@ -2730,6 +2734,7 @@ MYLOG(0, "sta_pidx=%d end_pidx=%d num_p=%d\n", sta_pidx, end_pidx, num_params); conn->unnamed_prepared_stmt = NULL; /* Prepare */ + qlog("PQprepare query='%s' plan=%s num_params=%d\n", query, plan_name, num_params); pgres = PQprepare(conn->pqconn, plan_name, query, num_params, paramTypes); if (PQresultStatus(pgres) != PGRES_COMMAND_OK) { @@ -2808,6 +2813,7 @@ ParseAndDescribeWithLibpq(StatementClass *stmt, const char *plan_name, /* Describe */ MYLOG(0, "%s: describing plan_name=%s\n", func, plan_name); + qlog("\tPQdescribePrepared: plan_name=%s\n", plan_name); pgres = PQdescribePrepared(conn->pqconn, plan_name); switch (PQresultStatus(pgres)) -- 2.39.5