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