On Fri, Sep 29, 2017 at 9:31 AM, Konstantin Knizhnik < k.knizh...@postgrespro.ru> wrote:
> I wonder why syntax error is produced in this case: > > postgres=# create index metaindex on foo using gin(to_tsvector('english', > x)||to_tsvector('english',y)); > ERROR: syntax error at or near "||" > LINE 1: ...taindex on foo using gin(to_tsvector('english', x)||to_tsvec... > ^ > [ .. ] > > *expression:* An expression based on one or more columns of the table. > The expression usually must be written with surrounding parentheses, as > shown in the syntax. However, the parentheses can be omitted if the > expression has the form of a function call. > > So documentations states that sometimes it is possible to avoid > parentheses, but it is unclear why I have to use double parentheses... > I think that either grammar should be fixed, either documentation should > be updated. > Your expression is clearly not a function call, it's a concatenation of two of them. The documentation seems perfectly accurate to me? .m