Re: bit-strings with white space

2018-04-22 Thread Tom Lane
=?utf-8?q?PG_Doc_comments_form?=  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



Re: bit-strings with white space

2018-04-22 Thread Jim Nasby

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   j...@nasby.net
512.569.9461 (cell) http://jim.nasby.net



Re: bit-strings with white space

2018-04-22 Thread David G. Johnston
On Sunday, April 22, 2018, Jim Nasby  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.