Re: WARNING: relcache reference leak: relation "p1" not closed

Amit Langote <langote_amit_f8@lab.ntt.co.jp>

From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael.paquier@gmail.com>, Kevin Grittner <kgrittn@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Robert Haas <robertmhaas@gmail.com>
Date: 2017-03-07T06:43:05Z
Lists: pgsql-hackers

Attachments

On 2017/03/07 14:04, Tom Lane wrote:
> Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> writes:
>> Also, I found out that alter_table.sql mistakenly forgot to drop
>> partitioned table "p1".  Patch 0002 takes care of that.
> 
> While that might or might not have been intentional, I think it's an
> astoundingly bad idea to not leave any partitioned tables behind in
> the final state of the regression database.  Doing so would likely
> have meant that this particular bug evaded detection for much longer
> than it did.  Moreover, it would mean that the pg_upgrade test would
> have exactly no coverage of partitioned cases.

That's true.  Should have been apparent to me.

> Therefore, there should definitely be a partitioned table, hopefully with
> a less generic name than "p1", in the final regression DB state.  Whether
> this particular one from alter_table.sql is a good candidate, I dunno.
> But let's not drop it without adding a better-thought-out replacement.

OK, let's drop p1 in alter_table.sql.  I think a partitioned table created
in insert.sql is a good candidate to keep around after having it renamed,
which patch 0003 does.

Thanks,
Amit

Commits

  1. Give partitioned table "p" in regression tests a less generic name.

  2. Fix relcache reference leak.

  3. Combine several DROP variants into generic DropStmt

  4. Reorder the asynchronous libpq calls for replication connection

  5. Don't uselessly rewrite, truncate, VACUUM, or ANALYZE partitioned tables.