Skip site navigation (1) Skip section navigation (2)

pg_upgrade incorrectly equates pg_default and database tablespace

From: Ants Aasma <ants(at)cybertec(dot)at>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: pg_upgrade incorrectly equates pg_default and database tablespace
Date: 2012-03-22 12:55:32
Message-ID: CA+CSw_vDb2nmPhumR4QzOre=ai+ktrJ8KwaZQv7M0nU9L5A9sw@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-hackers
Hi,

while working on a support case I stumbled upon a bug in pg_upgrade.
Upgrade fails with "No such file or directory" when a database is
moved to a non-default tablespace and contains a table that is moved
to pg_default. The cause seems to be that the following test
incorrectly equates empty spclocation with database tablespace:

tblspace = PQgetvalue(res, relnum, i_spclocation);
/* if no table tablespace, use the database tablespace */
if (strlen(tblspace) == 0)
    tblspace = dbinfo->db_tblspace;

Patch to fix this is attached.

Regards,
Ants Aasma
-- 
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt
Web: http://www.postgresql-support.de

Attachment: pgupgrade-default-tblspc.patch
Description: text/x-patch (2.0 KB)

Responses

pgsql-hackers by date

Next:From: Robert HaasDate: 2012-03-22 13:07:05
Subject: Re: checkpoint patches
Previous:From: Etsuro FujitaDate: 2012-03-22 09:41:11
Subject: Re: Proposal: Create index on foreign table

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group