Re: libpq CREATE DATABASE operation from multiple treads - Mailing list pgsql-sql

From p.sun.fun@gmail.com
Subject Re: libpq CREATE DATABASE operation from multiple treads
Date
Msg-id cf26fe0aca8ce2769334ac4781a01eba89311b0e.camel@gmail.com
Whole thread Raw
In response to Re: libpq CREATE DATABASE operation from multiple treads  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: libpq CREATE DATABASE operation from multiple treads
List pgsql-sql
On Thu, 2020-10-08 at 16:36 -0400, Tom Lane wrote:
> p.sun.fun@gmail.com writes:
> > Indeed, this is a FATAL_ERROR. From two threads I got:
> > // Thread #1
> > FATAL_ERROR: ERROR:  source database "template1" is being accessed
> > by
> > other users
> > DETAIL:  There is 1 other session using the database.
> 
> You'd be better off to connect to some other database than template1;

What would be the best strategy to create a database from user
standpoint of view? If we have an API to create a database on a server.
The user doesn't know about database(s) yet. The possible option would
be: to check the result status and if is not COMMAND_OK, probably
connection should be dropped and established again.  

May be not so elegant but at least safe and stable. 

> not only just for this purpose, but in general.  If you are issuing
> random commands in template1, there's a risk of modifying that
> database
> unexpectedly and thereby changing the contents of databases created
> in future.
> 
>             regards, tom lane




pgsql-sql by date:

Previous
From: Rob Sargent
Date:
Subject: Re: libpq CREATE DATABASE operation from multiple treads
Next
From: Tom Lane
Date:
Subject: Re: libpq CREATE DATABASE operation from multiple treads