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
Subject: Re: libpq CREATE DATABASE operation from multiple treads
Date: 2020-10-08 20:04:24
Message-ID: e532a64faac43651d4bec947409d42365607767f.camel@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi Tom.

Thanks for the quick response. In the function that I execute in each
thread, I create a new PGconn at the beginning. I expect that every
function caller (thread) should use a unique PGconn. I would not expect
that PGconn can be shared between threads. The documentation explicitly
says that.

On Thu, 2020-10-08 at 15:57 -0400, Tom Lane wrote:
> p(dot)sun(dot)fun(at)gmail(dot)com writes:
> > I run this function using only one thread and everything works
> > great.
> > If I use two threads, the PQresultStatus(res) != PGRES_COMMAND_OK.
>
> Are you trying to use the same PGconn from multiple threads? That
> will not work --- at least not without interlocks that libpq on
> its own does not provide.
>
> > Can the server handle CREATE DATABASE requests in parallel?
>
> Sure. But they have to be issued over different connections.
> Any given connection can only do one thing at a time.
>
> regards, tom lane

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Dmitry Igrishin 2020-10-08 20:15:19 Re: libpq CREATE DATABASE operation from multiple treads
Previous Message Tom Lane 2020-10-08 19:57:03 Re: libpq CREATE DATABASE operation from multiple treads