Getting error 42P02, despite query parameter being sent

From: Max Ulidtko <ulidtko(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Getting error 42P02, despite query parameter being sent
Date: 2024-11-16 10:55:35
Message-ID: NCI1NS.TUGY51AF5VWQ3@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Greetings, group!

I'm trying to understand a low-level issue. Am evaluating a new client
library for Postgres; it's not particularly popular / mainstream, and
as I've understood so far, sports an independent implementation of PG
binary protocol.

The issue I'm hitting with it is exemplified by server logs like this:

2024-11-16 10:28:19.927 UTC [46] LOG: statement: SET client_encoding =
'UTF8';SET client_min_messages TO WARNING;
2024-11-16 10:28:19.928 UTC [46] LOG: execute <unnamed>: CREATE VIEW
public.foobar (alg, hash) AS VALUES ('md5', $1);
2024-11-16 10:28:19.928 UTC [46] DETAIL: parameters: $1 =
'test-param-value'
2024-11-16 10:28:19.928 UTC [46] ERROR: there is no parameter $1 at
character 57

Of course, I /am/ passing a value for parameter $1; and I can trace
that the client lib sends it out on the wire as expected. (Attaching
packet captures.)

Heck, even the PG server itself says, DETAIL: parameters: $1 =
'test-param-value' — so it sees the parameter! But then, immediately
unsees it.

Am I being hit by a PG bug? Is this a known issue?

I'd retested with master version of that client library, and against 6
latest major versions of PostgreSQL server (12 throughout to 17). No
difference across versions spotted; the result is consistently error
42P02.

Is the client library doing something wrong? How can the server claim
there's no parameter $1 immediately after logging its value it has
received?

I did minify a 100-line SSCCE that reproduces the issue and can be
shared.

Any advice, or pointers on what to check next besides delving into PG
source, I'd greatly appreciate. Thanks in advance.

Max

Attachment Content-Type Size
query42P02-with-prepstatement-on.pcap application/vnd.tcpdump.pcap 2.5 KB
query42P02-with-prepstatement-off.pcap application/vnd.tcpdump.pcap 2.3 KB

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Achilleas Mantzios 2024-11-16 11:15:45 Re: Getting error 42P02, despite query parameter being sent
Previous Message Adrian Klaver 2024-11-15 21:13:30 Re: Need exact SQL query to find List of Detach Partitioned Tables (Yet to be Dropped)