Generally, when you partition, data should only be in child tables, and the
parent table should be empty, otherwise you defeat the purpose of
parttioning.`

On Thu, May 28, 2015 at 12:25 PM, Ravi Krishna <sravikrish...@gmail.com>
wrote:

> > Have you set up constraints on the partitions? The planner needs to know
> > what is in the child tables so it can avoid scanning them.
>
> Yes. each child table is defined as follows
>
> CREATE TABLE TSTESTING.ACCOUNT_PART1
>
>  ( CHECK (ACCOUNT_ROW_INST BETWEEN 1001 and 271660))
>
>  INHERITS (TSTESTING.ACCOUNT);
>
> ALTER TABLE TSTESTING.ACCOUNT_PART1 ADD CONSTRAINT ACCOUNT_PART1_PKEY
> PRIMARY KEY (ACCOUNT_ROW_INST);
>
> Perhaps I was not clear. The planner is excluding partitions which can
> not contain the rows looked up in the WHERE clause. However it is
> still scanning the parent table.
>
> Aggregate (cost=8.45..8.46 rows=1 width=0)
> -> Append (cost=0.00..8.44 rows=2 width=0)
> -> Seq Scan on account (cost=0.00..0.00 rows=1 width=0)
> Filter: (account_row_inst = 101)
> -> Index Only Scan using account_part1_pkey on account_part1
> (cost=0.42..8.44 rows=1 width=0)
> Index Cond: (account_row_inst = 101)
> (6 rows)
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>



-- 
*Melvin Davidson*
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

Reply via email to