Hello, I noticed that contrib/cube data type does not support binary input/output handler when I tried to dump a table with cube columns, using a tool [*1] that uses binary data over libpq.
$ pg2arrow -d postgres -t my_table
../utils/pgsql_client.c:351 SQL execution failed: ERROR: no binary
output function available for type cube
This patch adds cube_send / cube_recv handlers on the contrib/cube data type.
Once this patch was applied to, the libpq client can obtain the table
data using binary mode.
$ pg2arrow -d postgres -t my_table
NOTICE: -o, --output=FILENAME option was not given,
so a temporary file '/tmp/CdC68Q.arrow' was built instead.
The internal layout of cube, a kind of varlena, has a leading 32bit
header and the following float8
array. (array size is embedded in the header field).
So, cube_send just put the data stream according to the internal
layout, then cube_recv reconstructs
the values inverse.
Best regards,
[*1] pg2arrow - a utility to convert PostgreSQL table to Apache Arrow
http://heterodb.github.io/pg-strom/arrow_fdw/#using-pg2arrow
--
HeteroDB, Inc / The PG-Strom Project
KaiGai Kohei <[email protected]>
pgsql-cube-binary-inout-handler.v1.patch
Description: Binary data
