Re: have you feel anything when you read this ?
От | Eugene E. |
---|---|
Тема | Re: have you feel anything when you read this ? |
Дата | |
Msg-id | 442CC95C.1030700@bankir.ru обсуждение исходный текст |
Ответ на | Re: have you feel anything when you read this ? (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: have you feel anything when you read this ?
|
Список | pgsql-sql |
Peter Eisentraut wrote: > Eugene E. wrote: > >>the problem is: you'll get this four byte sequence '\000' _instead_ >>of NUL-byte anyway. > > > What you seem to be missing is that PostgreSQL data can be represented > in textual and in binary form. What you in psql is the textual form. > If you want the binary form you need to select it. Then you can pass > the exact bytes back and forth. your sentence is not true. I can not select exact bytes even if i use BYTEA type the folloiwing tiny C-program shows this pretty clear #include <stdlib.h> #include <stdio.h> #include "libpq-fe.h" int main (void) { PGconn * conn; PGresult * res; char * val; char * l; int len; conn = PQconnectdb("user=scott password=tiger dbname=test_db"); PQexec(conn, "CREATE TABLE t (a BYTEA)"); PQexec(conn, "INSERT INTO t VALUES ('ab\\\\000cd')"); res = PQexec(conn, "SELECT a,length(a) FROM t"); val = PQgetvalue(res,0,0); l = PQgetvalue(res,0,1); len = PQgetlength(res,0,0); printf("what_we_retrive='%s' its_value_length=%i but orig_length=%s\n",val,len,l); PQclear(res); PQfinish(conn); return 0; }
В списке pgsql-sql по дате отправления: