Re: Why Postgres doesn't use TID scan? - Mailing list pgsql-performance

From Rick Otten
Subject Re: Why Postgres doesn't use TID scan?
Date
Msg-id CAMAYy4KC+epqkZLgxgyv+hy9Cwp+RwjuaO_7mb0HhPZC+74TrQ@mail.gmail.com
Whole thread Raw
In response to Re: Why Postgres doesn't use TID scan?  (Vladimir Ryabtsev <greatvovan@gmail.com>)
List 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.)

pgsql-performance by date:

Previous
From: Vladimir Ryabtsev
Date:
Subject: Re: Why Postgres doesn't use TID scan?
Next
From: Merlin Moncure
Date:
Subject: Re: pgbench results arent accurate