Hannu Krosing <ha...@krosing.net> writes: > One way would be to check that we are in an any --> cstring > function - perhaps just by setting some static flag et entry and resetting > it at exit - and pass the original byte representation as "bytes" (or > string for py2.x)
Totally aside from the ugliness of driving that off the *other* end being cstring, it seems quite insufficient to me. For example, if the data type in question is toastable, you don't really want to leave the Python code with the problem of detoasting a toasted value. Even if it's just an int, your proposal saddles the Python code with enddianness problems. I think my suggestion of a way to pretend the argument or result is of some specified other type for conversion purposes is quite a lot superior. In the toastable-type case, referencing bytea would be enough to get the Python code out from under detoasting and length-word management. There might also be cases where the new type is really a skin over some built-in type, and you can leverage that type's I/O behavior to simplify what the Python code has to do. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers