From fddc6adf8d3d1581f041984bd475ff18336a3f4e Mon Sep 17 00:00:00 2001 From: Aron Podrigal Date: Thu, 18 Mar 2021 17:13:01 -0500 Subject: [PATCH] [mod_pgsql] Use PQcmdTuples() to get number of effected rows to support UPDATE and INSERT without RETURNING. --- src/mod/databases/mod_pgsql/mod_pgsql.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mod/databases/mod_pgsql/mod_pgsql.c b/src/mod/databases/mod_pgsql/mod_pgsql.c index f7c2983f91..8c24cf9fce 100644 --- a/src/mod/databases/mod_pgsql/mod_pgsql.c +++ b/src/mod/databases/mod_pgsql/mod_pgsql.c @@ -633,6 +633,7 @@ error: switch_status_t pgsql_next_result_timed(switch_pgsql_handle_t *handle, switch_pgsql_result_t **result_out, int msec) { + char *affected_rows = NULL; switch_pgsql_result_t *res; switch_time_t start; switch_time_t ctime; @@ -747,6 +748,11 @@ switch_status_t pgsql_next_result_timed(switch_pgsql_handle_t *handle, switch_pg res->result = PQgetResult(handle->con); if (res->result) { + affected_rows = PQcmdTuples(res->result); + if (!zstr(affected_rows)) { + handle->affected_rows = atoi(affected_rows); + } + *result_out = res; res->status = PQresultStatus(res->result); switch (res->status) { @@ -757,7 +763,6 @@ switch_status_t pgsql_next_result_timed(switch_pgsql_handle_t *handle, switch_pg case PGRES_TUPLES_OK: { res->rows = PQntuples(res->result); - handle->affected_rows = res->rows; res->cols = PQnfields(res->result); } break;