Re: Why Postgres doesn't use TID scan?
Rick Otten <rottenwindfish@gmail.com>
From: Rick Otten <rottenwindfish@gmail.com>
To: greatvovan@gmail.com
Cc: andrew@tao11.riddles.org.uk, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-performance@lists.postgresql.org
Date: 2018-12-20T13:46:04Z
Lists: pgsql-performance
On Wed, Dec 19, 2018 at 6:45 PM Vladimir Ryabtsev <greatvovan@gmail.com>
wrote:
> > The fundamental issue is that "ANY" has two meanings in PG, one of them
> following the SQL standard and one not:
>
> Oh yes, I was aware about two forms but it did not come into my mind, I
> was thinking I use the same form in both cases since my query returns only
> one row and column.
> Thanks for pointing me into that.
>
> --
> Vlad
>
For what it is worth, I have found that if I am checking for the presence
of an object in an array, while this syntax is easy to understand and more
intuitive to craft:
select
*
from
mytable
where
' test' = ANY (my_varchar_array_column)
;
This syntax is almost always much faster:
select
*
from
mytable
where
ARRAY['test'::varchar] <@ my_varchar_array_column
;
(Since this is a performance list after all.)