bit-strings with white space
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/9.6/static/sql-syntax-lexical.html
Description:
Postgresql 9.6, section 4.1.2.5 says that bit-strings can spill over
multiple lines, same as regular string constants. I tried SELECTing such and
found that they may only contain characters '0' and '1'.
=?utf-8?q?PG_Doc_comments_form?= <noreply@postgresql.org> writes:
Postgresql 9.6, section 4.1.2.5 says that bit-strings can spill over
multiple lines, same as regular string constants. I tried SELECTing such and
found that they may only contain characters '0' and '1'.
As indeed the text says. What the continuation mention is talking
about is this syntax:
regression=# select b'10001'
'00100';
?column?
------------
1000100100
(1 row)
which works like
regression=# select 'foo'
'bar';
?column?
----------
foobar
(1 row)
Perhaps there's something we could change to make this clearer,
but I'm not sure what.
regards, tom lane
On 4/22/18 12:18 PM, Tom Lane wrote:
regression=# select 'foo'
'bar';
?column?
----------
foobar
(1 row)Perhaps there's something we could change to make this clearer,
but I'm not sure what.
I had no idea you could do that. While there's probably some wordy
description that could explain this, I think an example is probably the
best bet. Are there any other data types that work like this?
--
Jim C. Nasby, Data Architect jim@nasby.net
512.569.9461 (cell) http://jim.nasby.net
On Sunday, April 22, 2018, Jim Nasby <jim@nasby.net> wrote:
On 4/22/18 12:18 PM, Tom Lane wrote:
regression=# select 'foo'
'bar';
?column?
----------
foobar
(1 row)Perhaps there's something we could change to make this clearer,
but I'm not sure what.I had no idea you could do that. While there's probably some wordy
description that could explain this, I think an example is probably the
best bet. Are there any other data types that work like this?
This structural "normalization" gets applied before types get involved.
Two literals only separated by a newline are concatenated together. Any
type name prefix, E or b prefix, :: cast, or cast() application then gets
applied to the combined literal.
The sql syntax section on this could maybe use another example or two but
does communicate the behavior reasonably well.
https://www.postgresql.org/docs/10/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS
David J.