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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to