Thomas Kellerer <spam_eater@xxxxxxx> writes: > The SQL standard already specifies the format for "binary strings": > <binary string literal> ::= > X <quote> [ <space>... ] [ { <hexit> [ <space>... ] <hexit> [ <space>... ] }... ] <quote> > [ { <separator> <quote> [ <space>... ] [ { <hexit> [ <space>... ] > <hexit> [ <space>... ] }... ] <quote> }... ] Yeah, and we do honor that: regression=# select x'1234abcdf'; ?column? -------------------------------------- 000100100011010010101011110011011111 (1 row) ... although I notice we don't allow spaces in the input, which seems like something to fix. (On further investigation, it looks like the optional spaces are new since SQL99, which probably explains why we have not got 'em.) > The data type for such a literal is somewhat "undefined": > It is implementation-defined whether the declared type of a <binary string literal> > is a fixed-length binary string type, a variable-length binary string type, > or a binary large object string type Hm, we think it's bit(N): regression=# select pg_typeof(x'1234abcdf'); pg_typeof ----------- bit (1 row) which is what the SQL standard *used* to say, before they unceremoniously threw the bit types under the bus and replaced them with "binary strings". I wonder how painful it would be to update that stuff to be compatible with more recent versions of the standard. Or whether anyone really cares --- people doing this in PG seem to be happy enough with bytea. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general