agora inbox for pgsql-sql@postgresql.org  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Rob Sargent <robjsargent@gmail.com>
Cc: p.sun.fun@gmail.com, "pgsql-sql@lists.postgresql.org" <pgsql-sql@lists.postgresql.org>
Subject: Re: libpq CREATE DATABASE operation from multiple treads
Date: Thu, 08 Oct 2020 16:56:28 -0400
Message-ID: <2631053.1602190588@sss.pgh.pa.us> (raw)
In-Reply-To: <23F4DE61-F81D-4740-A227-74B5EB41304C@gmail.com>
References: <390804abe88e4e9da9049f6e05c841783acaca47.camel@gmail.com>
	<CAAfz9KOVPRptcva6T97+VgLhYbqMJGC07yHVHMW3Ugxki6y6dA@mail.gmail.com>
	<124ce8dff8402159f20dec1bc1ac27e26ee39c23.camel@gmail.com>
	<96718FB0-E258-4342-BD6E-BCE6603BCBD5@gmail.com>
	<e11780112264fddbae35f53a3b26095f1789e413.camel@gmail.com>
	<058A9601-35F6-42C1-AC4C-8DD4643E418F@gmail.com>
	<47a7c4ffa62aaf2b86854a657f484f33913207c9.camel@gmail.com>
	<23F4DE61-F81D-4740-A227-74B5EB41304C@gmail.com>

Rob Sargent <robjsargent@gmail.com> writes:
> OK, well that’s a special db.  Didn’t know it was that special, though!

It's not that special.  The issue here is that each session is connecting
to template1 and then trying to clone template1.  You can't clone an
active database, because you might not get a consistent copy.  CREATE
DATABASE knows that its own session isn't concurrently making any
changes, so it allows copying the current database --- but it can't
know what some other session is doing, so if it sees some other session
is also connected to the source database, it spits up.

As I already said, routinely connecting to template1 is pretty bad
practice to start with, so the preferred answer is "don't do that".

			regards, tom lane





view thread (18+ messages)  latest in thread

Message-ID: <2631053.1602190588@sss.pgh.pa.us>
Permalink:  ../2631053.1602190588@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/2631053.1602190588@sss.pgh.pa.us

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: tgl@sss.pgh.pa.us, robjsargent@gmail.com, pgsql-sql@lists.postgresql.org
  Subject: Re: libpq CREATE DATABASE operation from multiple treads
  In-Reply-To: <2631053.1602190588@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox