Re: BUG #19473: regression error in dblink: another command is already in progress
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: o15611@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2026-05-12T13:47:24Z
Lists: pgsql-bugs
On Sat, May 9, 2026 at 4:43 AM PG Bug reporting form
<noreply@postgresql.org> wrote:
>
> The following bug has been logged on the website:
>
> Bug reference: 19473
> Logged by: Oleg Ivanov
> Email address: o15611@gmail.com
> PostgreSQL version: 18.3
> Operating system: Linux
> Description:
>
> Testcase:
> SELECT * FROM dblink('dbname=postgres user=postgres', $$ select 7; $$ ) as
> (col1 int);
> SELECT * FROM dblink_connect('connection1', 'host=/var/run/postgresql
> port=5432');
> SELECT * FROM dblink_send_query('connection1', $$ select 8 from pg_sleep(1);
> $$ );
> SELECT dblink_is_busy('connection1');
> SELECT * FROM dblink_get_result('connection1') as t(col1 int);
> --- SELECT dblink_is_busy('connection1');
> SELECT * FROM dblink_exec('connection1', $$ CHECKPOINT; $$);
> SELECT * FROM dblink_disconnect('connection1');
>
> col1
> ------
> 7
> (1 row)
>
> dblink_connect
> ----------------
> OK
> (1 row)
>
> dblink_send_query
> -------------------
> 1
> (1 row)
>
> dblink_is_busy
> ----------------
> 1
> (1 row)
>
> col1
> ------
> 8
> (1 row)
>
> ERROR: another command is already in progress
> CONTEXT: while executing command on dblink connection named "connection1"
> dblink_disconnect
> -------------------
> OK
> (1 row)
>
> There was no error in 16 version. The error appeared in 17 version. It
> seems, there is a regression bug.
> The workaround is to uncomment a commented statement.
The documentation for dblink_get_result() notes "It must be called once for
each query sent, and one additional time to obtain an empty set result,
before the connection can be used again". So in your case, it seems that
dblink_get_result() needs to be called one more time before calling
dblink_exec(). If you do that, I think that the error "another command is
already in progress" should not occur. Therefore, this does not seem to be
a bug to me. Thought?
Regards,
--
Fujii Masao
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Make dblink interruptible, via new libpqsrv APIs.
- d3c5f37dd543 17.0 cited