I'm still looking into it, but it seems the difference in the 2 plans is due to the fact that when using partitions, the planner adds the time it would take to index-scan the empty "root" table. But that table will never contain any data... Is there any chance to have the partitioning mechanism know that a table will always contain no data, because only inheriting table will contain data? Having the planner line: -> Index Scan using teststscell13_pkey on teststscell13 data1 (cost=0.0..3.9 rows=1 width=16) (actual time=0.006..0.006 rows=0 loops=285) doesn't make any sense: that table will never have any data. I'd like to have a way to tell that to Postgresql... Something like: CREATE TABLE tabroot (...) WITH (NODATA) So that it will stop scanning the empty table every single loop... And every time you try to insert directly into tabroot you get an error... -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general