Re: [BUGS] BUG #4599: bugfix for contrib/dblink module - Mailing list pgsql-hackers

From Joe Conway
Subject Re: [BUGS] BUG #4599: bugfix for contrib/dblink module
Date
Msg-id 495EE1B9.9010004@joeconway.com
Whole thread Raw
Responses Re: [BUGS] BUG #4599: bugfix for contrib/dblink module  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Oleksiy Shchukin wrote:
> Reproduce how-to
> ----------------
> I send bad SQL statement via dblink_send_query(text,text), and than try to
> grab result with  dblink_get_result(connname, /*fail_on_error=*/ false), the
> bad sql statement error is issued on client side inspite of
> '/*fail_on_error=*/ false' parameter is passed to dblink_get_result()

On line 795 below, fail should get set to PG_GETARG_BOOL(1). However, as 
line 842 is about to be executed, fail is still set to true, even though 
PG_GETARG_BOOL(1) is clearly false. Any ideas?

8<-----------------------------------------------------------
788                     else if (is_async && do_get)
(gdb)
791                             if (PG_NARGS() == 2)
(gdb)
794                                     DBLINK_GET_CONN;
(gdb)
795                                     fail = PG_GETARG_BOOL(1);
(gdb)
819                     if (!conn)
(gdb)
822                     if (!is_async || (is_async && do_get))
(gdb)
825                             if (!is_async)
(gdb)
829                                     res = PQgetResult(conn);
(gdb)
831                                     if (!res)
(gdb)
838                             if (!res ||
(gdb)
842                                     dblink_res_error(conname, res, 
"could not execute query", fail);
(gdb) p fail
$8 = 1 '\001'
(gdb) print PG_GETARG_BOOL(1)
$9 = 0 '\0'
8<-----------------------------------------------------------

Joe


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Significantly larger toast tables on 8.4?
Next
From: "Robert Haas"
Date:
Subject: Re: posix_fadvise v22