Search Postgresql Archives

Re: Problem with update on partitioned table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alex Solovey <a.solovey@xxxxxxxxx> writes:
> We have pretty big production database (running PostgreSQL 8.3.1) with 
> many partitioned tables. In most cases, they work well (since 8.2.1 at 
> least) -- constraint exclusion is able to select correct partitions. 
> However, there is an exception: queries on partitioned tables using 
> PostgreSQL 'UPDATE Foo ... FROM Bar' syntax extension.

Hmm, the immediate problem is that cost_mergejoin is coming out with
a silly cost (NaN) because of division by zero.  The attached patch
should get it back to 8.2-equivalent behavior.  But really we're missing
a bet because the sub-joins ought to get discarded entirely when we know
they must be empty.  There are various places testing for this but it
looks like make_join_rel() needs to do it too.

			regards, tom lane


Index: src/backend/optimizer/path/costsize.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v
retrieving revision 1.191
diff -c -r1.191 costsize.c
*** src/backend/optimizer/path/costsize.c	1 Jan 2008 19:45:50 -0000	1.191
--- src/backend/optimizer/path/costsize.c	24 Mar 2008 20:55:42 -0000
***************
*** 1385,1390 ****
--- 1385,1396 ----
  	Selectivity joininfactor;
  	Path		sort_path;		/* dummy for result of cost_sort */
  
+ 	/* Protect some assumptions below that rowcounts aren't zero */
+ 	if (outer_path_rows <= 0)
+ 		outer_path_rows = 1;
+ 	if (inner_path_rows <= 0)
+ 		inner_path_rows = 1;
+ 
  	if (!enable_mergejoin)
  		startup_cost += disable_cost;
  

-
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux