]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_pgsql] Use PQcmdTuples() to get number of effected rows to support UPDATE and...
authorAron Podrigal <aronp@guaranteedplus.com>
Thu, 18 Mar 2021 22:13:01 +0000 (17:13 -0500)
committerGitHub <noreply@github.com>
Thu, 18 Mar 2021 22:13:01 +0000 (01:13 +0300)
src/mod/databases/mod_pgsql/mod_pgsql.c

index f7c2983f91830930d2430676572bbb9019c6f1ae..8c24cf9fce7b62cdd4a87da6298b7665fb6f6c51 100644 (file)
@@ -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;