Thanks, David.

I have read that page many times but clearly I have forgotten this:


   -

   Constraint exclusion only works when the query's WHERE clause contains
   constants (or externally supplied parameters). For example, a comparison
   against a non-immutable function such asCURRENT_TIMESTAMP cannot be
   optimized, since the planner cannot know which partition the function value
   might fall into at run time.

I had worked around this "issue" some time ago but I clearly should have
documented _why_ I worked around it in the way I did.






On Thu, Sep 18, 2014 at 9:39 PM, David G Johnston <
david.g.johns...@gmail.com> wrote:

> Robert Nix wrote
> > I'm experiencing a problem with queries apparently not using the check
> > constraints of my partition tables (tried constraint_exclusion =partition
> > and =on with same results) and explain isn't sufficient to diagnose the
> > issue because the value for the check constraint in the query comes from
> a
> > join condition.
> >
> > What i need is a way to see exactly what tables are actually accessed by
> > the query.
> >
> > When i hardcode the check constraint column's value into the query, the
> > explain plan reports what i expect it should be executing but the
> > performance of the query indicates that the partitions are not actually
> > being used when the check constraint value is obtained from a join
> > condition.
> >
> > Any and all help appreciated.
> > --
> > .nix
>
> Please provide a minimal schema and example query so we can explain exactly
> where your misunderstanding is coming from.  Generally, though, a partiton
> must be excluded during plan time so the data in a table will not effect
> the
> final plan - only constants can do that.
>
> You should read this:
>
> http://www.postgresql.org/docs/9.3/static/ddl-partitioning.html
>
> and then ask specific questions with, ideally, working examples.
>
> And you should also provide an EXPLAIN ANALYZE since that will show almost
> everything that is touched by the executor.
>
> David J.
>
>
>
> --
> View this message in context:
> http://postgresql.1045698.n5.nabble.com/How-can-i-monitor-exactly-what-partition-tables-are-accessed-by-a-query-tp5819534p5819582.html
> Sent from the PostgreSQL - general mailing list archive at Nabble.com.
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>



-- 
.nix

Reply via email to