From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | Bryn Llewellyn <bryn(at)yugabyte(dot)com> |
Cc: | Tom Lane PostgreSQL <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, pgsql-general list <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Is it possible to stop sessions killing eachother when they all authorize as the same role? |
Date: | 2022-09-14 07:21:35 |
Message-ID: | CAECtzeX0PmhiaOxe8c9=3J16SiP=S_Tx5LXftWS0UygjPPzdpA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Le mer. 14 sept. 2022 à 00:35, Bryn Llewellyn <bryn(at)yugabyte(dot)com> a écrit :
>
> *guillaume(at)lelarge(dot)info <guillaume(at)lelarge(dot)info> wrote:*
> This won't answer your question
>
>
> It has been answered now. See my "case closed" email here:
>
>
> www.postgresql.org/message-id/B33C40D9-2B79-44C7-B527-86E672BEA71A%40yugabyte.com
>
> …but still… I usually really like your scripts, it's nicely written, but
> this part seems really weird to me:
>
> *bryn(at)yugabyte(dot)com <bryn(at)yugabyte(dot)com> wrote:*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *-- No errordo $body$declare p int not null := 0;begin for p in (
> select pid from pg_stat_activity where backend_type = 'client
> backend' and pid <> pg_backend_pid()) loop perform
> pg_terminate_backend(p); end loop;end;$body$;*
>
>
> While your script works great, I'm wondering why you don't write it this
> way:
>
> SELECT pg_terminate_backend(pid) FROM pg_stat_activity
> WHERE backend_type = 'client backend' AND pid <> pg_backend_pid();
>
> As it is less code, it's quicker to understand what it does.
>
>
> Well, yes… I have often been accused of being anally fixated on
> details—and of verbosity. This is just the old chestnut that a "select"
> statement shouldn't have side effects.
>
Oh, OK, looks like a good reason to me. I will probably still do the quick
SELECT, but I understand your view on it.
> "pg_terminate_backend(p)" ought, by the book, to be a procedure. But I
> suppose that it dates from the time when PG had only user-defined functions
> (and no shipped procedures). And "perform" makes a function feel to me to
> be a bit more like a procedure than just selecting it feels. Others might
> well disagree…
>
--
Guillaume.
From | Date | Subject | |
---|---|---|---|
Next Message | Karsten Hilbert | 2022-09-14 08:10:30 | Re: Is it possible to stop sessions killing eachother when they all authorize as the same role? |
Previous Message | Rama Krishnan | 2022-09-14 07:17:20 | Re: Postgresql acid components |