Re: parallel pg_restore - WIP patch

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Philip Warner <pjw@rhyme.com.au>
Cc: Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>, Tom Lane <tgl@sss.pgh.pa.us>, Russell Smith <mr-russ@pws.com.au>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Jeffrey Baker <jwbaker@gmail.com>
Date: 2008-09-30T03:59:23Z
Lists: pgsql-hackers

Philip Warner wrote:
>> + 					if (strcmp(te->desc,"CONSTRAINT") == 0 ||
>> + 						strcmp(te->desc,"FK CONSTRAINT") == 0 ||
>> + 						strcmp(te->desc,"CHECK CONSTRAINT") == 0 ||
>> + 						strcmp(te->desc,"TRIGGER") == 0 ||
>> + 						strcmp(slots[i].te->desc,"CONSTRAINT") == 0 ||
>> + 						strcmp(slots[i].te->desc,"FK CONSTRAINT") == 0 ||
>> + 						strcmp(slots[i].te->desc,"CHECK CONSTRAINT") == 0 ||
>> + 						strcmp(slots[i].te->desc,"TRIGGER") == 0)
>>   
>>     
> Really just an observation from the peanut gallery here, but every time
> pg_restore hard-codes this kind of thing, it introduces yet another
> possible side-effect bug when someone, eg, adds a new TOC type.
>
> Would it substantially decrease the benefits of the patch to skip *any*
> toc entry that shares dependencies with another? (rather than just those
> listed above).
>
>
>   

Unfortunately, it quite possibly would. You would not be able to build 
two indexes on the same table in parallel, even though they wouldn't 
have conflicting locks.

cheers

andrew