From: | Lev Kokotov <lev(dot)kokotov(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Bug in pgbench prepared statements |
Date: | 2023-11-30 01:38:13 |
Message-ID: | CAPwLVyJhStdLU79dJyPJ52CGyTAXB463oV-b9mrCMLaK6uMbyQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I noticed something that looks like a bug in pgbench when using the
prepared protocol. pgbench assumes that all prepared statements are
prepared correctly, even if they contain errors (e.g. syntax, column/table
doesn't exist, etc.).
My test script is just:
SELECT one;
The output looks something like this:
$ pgbench -f test.sql --protocol prepared -d postgres
[...]
pgbench: client 0 executing script "test.sql"
pgbench: client 0 preparing P_0
pgbench: error: ERROR: column "one" does not exist
LINE 1: SELECT one;
^
pgbench: client 0 sending P_0
pgbench: client 0 receiving
pgbench: client 0 receiving
pgbench: error: client 0 script 0 aborted in command 0 query 0: ERROR:
prepared statement "P_0" does not exist
transaction type: test.sql
[...]
Normally this wouldn't be a big deal, although by itself the output is
confusing, since the second error, while technically true, is not what
caused the test run to fail. In my case, I was using pgbench to validate
the correctness of prepared statements implementation in our pooler. Having
the second error sent me on quite a debugging session until I realized that
my fix was actually working.
Patch attached, if there is any interest in fixing this small bug.
Cheers!
Attachment | Content-Type | Size |
---|---|---|
pgbench.patch | application/octet-stream | 1.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2023-11-30 01:39:00 | Extra periods in pg_dump messages |
Previous Message | Kyotaro Horiguchi | 2023-11-30 01:20:40 | about help message for new pg_dump's --filter option |