Thread: Re: [COMMITTERS] pgsql: Un-break pg_dump for the case of zero-column tables.
Magnus Hagander <magnus@hagander.net> writes: > 2010/2/24 Tom Lane <tgl@postgresql.org>: >> Log Message: >> ----------- >> Un-break pg_dump for the case of zero-column tables. >> >> This was evidently broken by the CREATE TABLE OF TYPE patch. �It would have >> been noticed if anyone had bothered to try dumping and restoring the >> regression database ... > Is there a point in doing that at the end of "make check"? Or as a > separate step on the buildfarm? I think it would make sense to add it as a buildfarm phase, probably after installcheck not check so you still have a working postmaster. I'm not sure how easy it'd be to automate though. What I usually do is make a text dump, restore the dump into an empty DB (watching for errors), dump that, and diff the two dumps. However the expected diff is not empty because of some tests that intentionally stress inheritance column order, and I'm not sure whether it is stable enough to use a simple expected-result comparison. Still, if anyone who knows the buildfarm code cares to try that, I'd be all for it. regards, tom lane
Re: [COMMITTERS] pgsql: Un-break pg_dump for the case of zero-column tables.
From
Bruce Momjian
Date:
Tom Lane wrote: > Magnus Hagander <magnus@hagander.net> writes: > > 2010/2/24 Tom Lane <tgl@postgresql.org>: > >> Log Message: > >> ----------- > >> Un-break pg_dump for the case of zero-column tables. > >> > >> This was evidently broken by the CREATE TABLE OF TYPE patch. �It would have > >> been noticed if anyone had bothered to try dumping and restoring the > >> regression database ... > > > Is there a point in doing that at the end of "make check"? Or as a > > separate step on the buildfarm? > > I think it would make sense to add it as a buildfarm phase, probably > after installcheck not check so you still have a working postmaster. > I'm not sure how easy it'd be to automate though. What I usually do > is make a text dump, restore the dump into an empty DB (watching for > errors), dump that, and diff the two dumps. However the expected > diff is not empty because of some tests that intentionally stress > inheritance column order, and I'm not sure whether it is stable > enough to use a simple expected-result comparison. I use that method to test pg_migrator and I always had to edit the dump to remove a few items that always varied. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.comPG East: http://www.enterprisedb.com/community/nav-pg-east-2010.do + If your life is a hard drive,Christ can be your backup. +
Re: [COMMITTERS] pgsql: Un-break pg_dump for the case of zero-column tables.
From
Andrew Dunstan
Date:
Tom Lane wrote: > Magnus Hagander <magnus@hagander.net> writes: > >> 2010/2/24 Tom Lane <tgl@postgresql.org>: >> >>> Log Message: >>> ----------- >>> Un-break pg_dump for the case of zero-column tables. >>> >>> This was evidently broken by the CREATE TABLE OF TYPE patch. It would have >>> been noticed if anyone had bothered to try dumping and restoring the >>> regression database ... >>> > > >> Is there a point in doing that at the end of "make check"? Or as a >> separate step on the buildfarm? >> > > I think it would make sense to add it as a buildfarm phase, probably > after installcheck not check so you still have a working postmaster. > I'm not sure how easy it'd be to automate though. What I usually do > is make a text dump, restore the dump into an empty DB (watching for > errors), dump that, and diff the two dumps. However the expected > diff is not empty because of some tests that intentionally stress > inheritance column order, and I'm not sure whether it is stable > enough to use a simple expected-result comparison. > > Still, if anyone who knows the buildfarm code cares to try that, > I'd be all for it. > > > The code is public and there is nothing very magical about it. Each step is performed by a perl function. For example, here is the function for the "make contrib" step: sub make_contrib { # part of build under msvc return if $skip_steps{'make-contrib'}; my @makeout =`cd $pgsql/contrib && $make 2>&1`; my $status = $? >>8; writelog('make-contrib',\@makeout); print "========make contrib log ===========\n",@makeout if ($verbose > 1); send_result('Contrib',$status,\@makeout) if$status; $steps_completed .= " Contrib"; } One for this purpose would have to be somewhat more involved than this example, since we'd need to invent a success measure, which "make" already gives us for free, and also there are more steps involved than running a single "make" command. But it should not be terribly difficult for anyone who wants to try. cheers andrew
Andrew Dunstan <andrew@dunslane.net> writes: > Tom Lane wrote: >> I think it would make sense to add it as a buildfarm phase, probably >> after installcheck not check so you still have a working postmaster. >> I'm not sure how easy it'd be to automate though. What I usually do >> is make a text dump, restore the dump into an empty DB (watching for >> errors), dump that, and diff the two dumps. However the expected >> diff is not empty because of some tests that intentionally stress >> inheritance column order, and I'm not sure whether it is stable >> enough to use a simple expected-result comparison. > One for this purpose would have to be somewhat more involved than this > example, since we'd need to invent a success measure, which "make" > already gives us for free, and also there are more steps involved than > running a single "make" command. But it should not be terribly > difficult for anyone who wants to try. Actually, given the need for an expected-result file, which could be expected to require maintenance, I suspect that most of the infrastructure for this would have to go into the core source tree anyway. Perhaps a "make install-check-pg_dump" target in src/regress? regards, tom lane