On Mon, Jul 11, 2011 at 12:51 PM, Anish Kejariwal <anish...@gmail.com> wrote: > > The following bug has been logged online: > > Bug reference: 6112 > Logged by: Anish Kejariwal > Email address: anish...@gmail.com > PostgreSQL version: 9.0.3 > Operating system: Linux > Description: heuristic for empty parent tables that are members of > inheritance trees > Details: > > Hello, > > I'm filing this issue as a bug, and it seems like Tom Lane agrees that there > is a bug, and said: " maybe we should reconsider the heuristic for tables > that are members of inheritance trees --- particularly parents of > inheritance trees." > > All information is in: > http://archives.postgresql.org/pgsql-performance/2011-07/msg00063.php > > Scenario: > -empty parent table > -all data is in child/partitioned tables > > Bug: > optimizer considers the parent table to be empty. > > Result: The execution plan is incorrect. My particularly query took 25 > seconds with the wrong execution plan, but 0.3 seconds with the correct > execution plan. > > Work around: > Tom Lane suggested the following workaround to "defeat the empty-table > heuristic: > update pg_class set relpages = 1 where relname = 'icecream'; > > I'm using this work around for now, but I don't think this is acceptable. > If someone were to accidentally run vacuum analyze on the parent table, then > the relpages will be set back to zero, and the query will run slowly. > > Please let me know if you have any questions.
Tom fixed this in commit f3ff0433ab32fdc69da3c8f8e691ef6b4366559c on July 14th. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs