Thread: libpq: COPY FROM STDIN BINARY of arrays
Hi,
I already use arrays fine (e.g. text[]) in BINARY mode binds (with prepared statement or not).
I already use COPY FROM STDIN BINARY fine, with scalar values.
But for the 1st time, I'm combining COPY with arrays,
and it is NOT fine yet :(
#08P01: ERROR: insufficient data left in message
CONTEXT: COPY UT_LibPQ_copy_arrays, line 1, column ptys
CONTEXT: COPY UT_LibPQ_copy_arrays, line 1, column ptys
Does the wire-format of arrays differ between binary-binds and binary-copy?
Any pointers to what I could look at, to resolve this? doc? code? example?
Thanks, --DD
PS: If that helps, I'm willing to detail the break-down of all values / bytes I'm sending
Dominique Devienne <ddevienne@gmail.com> writes: > Does the wire-format of arrays differ between binary-binds and binary-copy? No. > Any pointers to what I could look at, to resolve this? doc? code? example? array_send and array_recv might help you. Keep in mind that maybe the problem is with array element(s) not the array structure proper. regards, tom lane
On Thu, Mar 30, 2023 at 6:00 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Dominique Devienne <ddevienne@gmail.com> writes:
> Does the wire-format of arrays differ between binary-binds and binary-copy?
No.
An update on this, I think I figure it out, by comparing with COPY TO STDOUT WITH (FORMAT BINARY).
I was missing the byte-count "header" for the array. Since I'm reusing my binary-bind code for COPY,
I'm missing the 4 bytes for the array's "total encoded byte length" before the array data proper.
Now that I understand the issue, should be a simple matter to fix. Thanks for chiming in Tom. --DD