public inbox for [email protected]
help / color / mirror / Atom feedFrom: Igor Korot <[email protected]>
To: Tom Lane <[email protected]>
To: pgsql-generallists.postgresql.org <[email protected]>
Subject: Re: Error on query execution
Date: Thu, 6 Mar 2025 15:54:41 -0600
Message-ID: <CA+FnnTwCMDVA4VHSsjv3OpFrrnjpyAhiMZyW0mu0X=fVmsfUpA@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>
References: <CA+FnnTwkJtLq0AvY6UB7dUrdXsO28PGSqX-wBOy+LT6Ei1jD4A@mail.gmail.com>
<[email protected]>
H,
On Tue, Mar 4, 2025 at 8:37 PM Tom Lane <[email protected]> wrote:
>
> Igor Korot <[email protected]> writes:
> > binaryIntVal = htonl( (uint32_t) type );
> > paramValues[0] = (char *) &binaryIntVal;
> > paramLengths[0] = sizeof( binaryIntVal );
> > paramFormats[0] = 1;
>
> You're apparently trying to pass this parameter as an int4 ...
>
> > res = PQexecParams( m_db, "SELECT * FROM abcatfmt WHERE abf_type =
> > $1", 1, nullptr, paramValues, paramLengths, paramFormats, 1 );
>
> ... but given that you didn't specify any data type, I think the
> parser will fall back to assuming that $1 is the same type as
> "abf_type", whatever that is. Passing data in binary is not at all
> forgiving about getting the data type right.
Changing the line above to read:
res = PQexecParams( m_db, "SELECT * FROM abcatfmt WHERE abf_type =
$1::smallint", 1, nullptr, paramValues, paramLengths, paramFormats, 1
);
results in:
$1 = L"ERROR: incorrect binary data format in bind parameter 1\n"
I am now at a complete loss.
How do I fix the code so it will run?
Thank you.
>
> regards, tom lane
view thread (5+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: Error on query execution
In-Reply-To: <CA+FnnTwCMDVA4VHSsjv3OpFrrnjpyAhiMZyW0mu0X=fVmsfUpA@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox