I wrote:

the problem is: you'll get this four byte sequence '\000' _instead_ of NUL-byte anyway.

You wrote:

Your client library should take care of escaping and de-escaping.

We both agree as you see.

Then i am asking:
WHY should a client take care of de-escaping ? Why not to get his data unchanged ?

I can understand why you say that for something as simple as a BYTEA, but if the value to be passed to the client is an ARRAY of geometric types or something, you gonna need an open, platform-agnostic exchange format between the way postgres internally represents it and the way the client represents it (in my case, a python list containing instances of python classes representing boxes, etc, it'll be different for every language).

Exporting data from postgres in binary is only useful to C programmers who can import the required struct definitions, and you still have to manage the format, it's just that you walk struct's instead of unescaping \'s

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to