Re: libpq CREATE DATABASE operation from multiple treads

From: p(dot)sun(dot)fun(at)gmail(dot)com
To: "pgsql-sql(at)lists(dot)postgresql(dot)org" <pgsql-sql(at)lists(dot)postgresql(dot)org>
Subject: Re: libpq CREATE DATABASE operation from multiple treads
Date: 2020-10-09 03:33:04
Message-ID: 9109e992e899b2ed39b070cd12ecdbcdf435fbb6.camel@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Thu, 2020-10-08 at 16:56 -0400, Tom Lane wrote:
> Rob Sargent <robjsargent(at)gmail(dot)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

Thank you, guys. I will switch to the "postgres" database as a default
one. IMHO, it is worth adding to the documentation into the CREATE
DATABASE section. I am glad that PostgreSQL has a strong community that
stays behind the product.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Guillaume Lelarge 2020-10-09 03:44:19 Re: libpq CREATE DATABASE operation from multiple treads
Previous Message Tom Lane 2020-10-08 20:57:34 Re: libpq CREATE DATABASE operation from multiple treads