Re: Constraint exclusion in views

From: Claudio Freire <klaussfreire(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: postgres performance list <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Constraint exclusion in views
Date: 2012-11-05 20:28:31
Message-ID: CAGTBQpYf3EktbSBq6OPvuk0EdZQM7ZXz3Zz+CgYcnOrxJpkU=g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Sun, Nov 4, 2012 at 2:32 PM, Claudio Freire <klaussfreire(at)gmail(dot)com> wrote:
>> Well, what "partition" actually means is "only bother to try constraint
>> exclusion proofs on appendrel members". UNION ALL trees will get
>> flattened into appendrels in some cases. In a quick look at the code,
>> it seems like in recent releases the restrictions are basically that the
>> UNION ALL arms have to (1) each be a plain SELECT from a single table
>> with no WHERE restriction; (2) all produce the same column datatypes;
>> and (3) not have any volatile functions in the SELECT lists. I might be
>> missing something relevant to the OP's case, but it's hard to tell
>> without a concrete example.
>
> I would think our view succeeds all those tests, but I'm not entirely
> sure about 2. It does use coalesce too, but I really doubt coalesce is
> volatile... right?
>
> I don't have access to the code during the weekend, but I'll check
> first thing tomorrow whether we have some datatype inconsistencies I
> didn't notice.
>
> Thanks for the hint.

It was indeed a type mismatch, there was an int in one subquery that
was a bigint in all the others.
Thanks a lot.

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Merlin Moncure 2012-11-05 22:51:44 Re: How to keep queries low latency as concurrency increases
Previous Message Claudio Freire 2012-11-05 17:59:12 Re: Re: Increasing work_mem and shared_buffers on Postgres 9.2 significantly slows down queries