@ -49,9 +49,11 @@
# include "funcapi.h"
# include "lib/stringinfo.h"
# include "libpq-fe.h"
# include "libpq/libpq-be-fe-helpers.h"
# include "mb/pg_wchar.h"
# include "miscadmin.h"
# include "parser/scansup.h"
# include "pgstat.h"
# include "utils/acl.h"
# include "utils/builtins.h"
# include "utils/fmgroids.h"
@ -479,7 +481,7 @@ dblink_open(PG_FUNCTION_ARGS)
/* If we are not in a transaction, start one */
if ( PQtransactionStatus ( conn ) = = PQTRANS_IDLE )
{
res = PQ exec( conn , " BEGIN " ) ;
res = libpqsrv_ exec( conn , " BEGIN " , PG_WAIT_EXTENSION ) ;
if ( PQresultStatus ( res ) ! = PGRES_COMMAND_OK )
dblink_res_internalerror ( conn , res , " begin error " ) ;
PQclear ( res ) ;
@ -498,7 +500,7 @@ dblink_open(PG_FUNCTION_ARGS)
( rconn - > openCursorCount ) + + ;
appendStringInfo ( & buf , " DECLARE %s CURSOR FOR %s " , curname , sql ) ;
res = PQ exec( conn , buf . data ) ;
res = libpqsrv_ exec( conn , buf . data , PG_WAIT_EXTENSION ) ;
if ( ! res | | PQresultStatus ( res ) ! = PGRES_COMMAND_OK )
{
dblink_res_error ( conn , conname , res , fail ,
@ -567,7 +569,7 @@ dblink_close(PG_FUNCTION_ARGS)
appendStringInfo ( & buf , " CLOSE %s " , curname ) ;
/* close the cursor */
res = PQ exec( conn , buf . data ) ;
res = libpqsrv_ exec( conn , buf . data , PG_WAIT_EXTENSION ) ;
if ( ! res | | PQresultStatus ( res ) ! = PGRES_COMMAND_OK )
{
dblink_res_error ( conn , conname , res , fail ,
@ -587,7 +589,7 @@ dblink_close(PG_FUNCTION_ARGS)
{
rconn - > newXactForCursor = false ;
res = PQ exec( conn , " COMMIT " ) ;
res = libpqsrv_ exec( conn , " COMMIT " , PG_WAIT_EXTENSION ) ;
if ( PQresultStatus ( res ) ! = PGRES_COMMAND_OK )
dblink_res_internalerror ( conn , res , " commit error " ) ;
PQclear ( res ) ;
@ -669,7 +671,7 @@ dblink_fetch(PG_FUNCTION_ARGS)
* PGresult will be long - lived even though we are still in a short - lived
* memory context .
*/
res = PQ exec( conn , buf . data ) ;
res = libpqsrv_ exec( conn , buf . data , PG_WAIT_EXTENSION ) ;
if ( ! res | |
( PQresultStatus ( res ) ! = PGRES_COMMAND_OK & &
PQresultStatus ( res ) ! = PGRES_TUPLES_OK ) )
@ -817,7 +819,7 @@ dblink_record_internal(FunctionCallInfo fcinfo, bool is_async)
else
{
/* async result retrieval, do it the old way */
PGresult * res = PQgetR esult( conn ) ;
PGresult * res = libpqsrv_get_r esult( conn , PG_WAIT_EXTENSION ) ;
/* NULL means we're all done with the async results */
if ( res )
@ -1131,7 +1133,8 @@ materializeQueryResult(FunctionCallInfo fcinfo,
PQclear ( sinfo . last_res ) ;
PQclear ( sinfo . cur_res ) ;
/* and clear out any pending data in libpq */
while ( ( res = PQgetResult ( conn ) ) ! = NULL )
while ( ( res = libpqsrv_get_result ( conn , PG_WAIT_EXTENSION ) ) ! =
NULL )
PQclear ( res ) ;
PG_RE_THROW ( ) ;
}
@ -1158,7 +1161,7 @@ storeQueryResult(volatile storeInfo *sinfo, PGconn *conn, const char *sql)
{
CHECK_FOR_INTERRUPTS ( ) ;
sinfo - > cur_res = PQgetR esult( conn ) ;
sinfo - > cur_res = libpqsrv_get_r esult( conn , PG_WAIT_EXTENSION ) ;
if ( ! sinfo - > cur_res )
break ;
@ -1486,7 +1489,7 @@ dblink_exec(PG_FUNCTION_ARGS)
if ( ! conn )
dblink_conn_not_avail ( conname ) ;
res = PQ exec( conn , sql ) ;
res = libpqsrv_ exec( conn , sql , PG_WAIT_EXTENSION ) ;
if ( ! res | |
( PQresultStatus ( res ) ! = PGRES_COMMAND_OK & &
PQresultStatus ( res ) ! = PGRES_TUPLES_OK ) )
@ -2771,8 +2774,8 @@ dblink_res_error(PGconn *conn, const char *conname, PGresult *res,
/*
* If we don ' t get a message from the PGresult , try the PGconn . This is
* needed because for connection - level failures , PQexec may just return
* NULL , not a PGresult at all .
* needed because for connection - level failures , PQgetResult may just
* return NULL , not a PGresult at all .
*/
if ( message_primary = = NULL )
message_primary = pchomp ( PQerrorMessage ( conn ) ) ;