COPY и бинарные данные

мой мозг взрывается с этими бинарными данными

использую след. код
char textbuffer[120];
res = PQexec(conn, "COPY table_name(\"serial_column",\"int_column",\"bytea_column\") FROM STDIN");
if(PQresultStatus(res) == PGRES_COPY_IN)
{
for(int n=0; n < 10; n++) {
sprintf(textbuffer, "1\t%i\t'text'\n", n);
int copydatares = PQputCopyData(conn, textbuffer, strlen(textbuffer));
BOOST_CHECK(copydatares==1);
}
PQputCopyEnd(conn, NULL);
}

первый столбец serial, второй integer, третий - bytea
в bytea и возможны бинарные данные

с текстовыми данными все отлично.
Но вот бинарные могут содержать нули да и вообще все, что угодно. те же \t
пробовал переводить данные с помощью PQescapeByteaConn, пробовал выполнять команду COPY BINARY. В этих случаях postgree выдает ошибку.
(причем если в PQputCopyEnd вместо NULL подставить буфер, то туда будет записана абракадабра вместо внятного сообщения об ошибке, а PQputCopyData в любом случае возвращает 1)

Помогите плз, достали уже эти бинарные данные...

Back to top

(С) Виктор Вислобоков, 2008-2023