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 <kai...@heterodb.com>
pgsql-cube-binary-inout-handler.v1.patch
Description: Binary data