Re: Getting error 42P02, despite query parameter being sent

From: Achilleas Mantzios <a(dot)mantzios(at)cloud(dot)gatewaynet(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Getting error 42P02, despite query parameter being sent
Date: 2024-11-16 11:15:45
Message-ID: 40d8beef-ff67-4c6c-828c-2941ca30fdef@cloud.gatewaynet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Στις 16/11/24 12:55, ο/η Max Ulidtko έγραψε:
> 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);

At least for SQL level prepared statements the statement has to be one of :

|SELECT|, |INSERT|, |UPDATE|, |DELETE|, |MERGE|, or |VALUES|

|so CREATE is not valid, and I guess the extended protocol prepared
statements aint no different in this regard.
|

> 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
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2024-11-16 16:09:29 Re: Getting error 42P02, despite query parameter being sent
Previous Message Max Ulidtko 2024-11-16 10:55:35 Getting error 42P02, despite query parameter being sent