On Sunday, April 22, 2018, Jim Nasby <j...@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.

Reply via email to