dropdb --force

Started by Filip Rembiałkowskiover 7 years ago136 messageshackers
Jump to latest
#1Filip Rembiałkowski
filip.rembialkowski@gmail.com

Hi,

I propose a simple patch (works-for-me), which adds --force (-f)
option to dropdb utility.

Pros: This seems to be a desired option for many sysadmins, as this
thread proves: https://dba.stackexchange.com/questions/11893/force-drop-db-while-others-may-be-connected
Cons: another possible foot-gun for the unwary.

Obviously this patch needs some more work (see TODO note inside).

Please share opinions if this makes sense at all, and has any chance
going upstream.

The regression tests is simplistic, please help with an example of
multi-session test so I can follow.

Thanks,
Filip

Attachments:

postgresql-dropdb--force.20181218_01.patchtext/x-patch; charset=US-ASCII; name=postgresql-dropdb--force.20181218_01.patchDownload+96-7
#2Pavel Stehule
pavel.stehule@gmail.com
In reply to: Filip Rembiałkowski (#1)
Re: dropdb --force

Hi

út 18. 12. 2018 v 16:11 odesílatel Filip Rembiałkowski <
filip.rembialkowski@gmail.com> napsal:

Hi,

I propose a simple patch (works-for-me), which adds --force (-f)
option to dropdb utility.

Pros: This seems to be a desired option for many sysadmins, as this
thread proves:
https://dba.stackexchange.com/questions/11893/force-drop-db-while-others-may-be-connected
Cons: another possible foot-gun for the unwary.

Obviously this patch needs some more work (see TODO note inside).

Please share opinions if this makes sense at all, and has any chance
going upstream.

The regression tests is simplistic, please help with an example of
multi-session test so I can follow.

Still one my customer use a patch that implement FORCE on SQL level. It is
necessary under higher load when is not easy to synchronize clients.

Regards

Pavel

Show quoted text

Thanks,
Filip

Attachments:

drop-database-force-10.patchtext/x-patch; charset=US-ASCII; name=drop-database-force-10.patchDownload+72-14
#3Marti Raudsepp
marti@juffo.org
In reply to: Pavel Stehule (#2)
Re: dropdb --force

Hi

út 18. 12. 2018 v 16:11 odesílatel Filip Rembiałkowski <filip.rembialkowski@gmail.com> napsal:

Please share opinions if this makes sense at all, and has any chance
going upstream.

Clearly since Pavel has another implementation of the same concept,
there is some interest in this feature. :)

On Tue, Dec 18, 2018 at 5:20 PM Pavel Stehule <pavel.stehule@gmail.com> wrote:

Still one my customer use a patch that implement FORCE on SQL level. It is necessary under higher load when is not easy to synchronize clients.

I think Filip's approach of setting pg_database.datallowconn='false'
is pretty clever to avoid the synchronization problem. But it's also a
good idea to expose this functionality via DROP DATABASE in SQL, like
Pavel's patch, not just the 'dropdb' binary.

If this is to be accepted into PostgreSQL core, I think the two
approaches should be combined on the server side.

Regards,
Marti Raudsepp

#4David Fetter
david@fetter.org
In reply to: Filip Rembiałkowski (#1)
Re: dropdb --force

On Tue, Dec 18, 2018 at 01:25:32PM +0100, Filip Rembiałkowski wrote:

Hi,

I propose a simple patch (works-for-me), which adds --force (-f)
option to dropdb utility.

Nice!

I did something like this in user space back in 2010.

https://people.planetpostgresql.org/dfetter/index.php?/archives/63-Kick-em-out,-and-keep-em-out!.html

so there appears to be interest in such a feature.

Best,
David.
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Marti Raudsepp (#3)
Re: dropdb --force

Marti Raudsepp <marti@juffo.org> writes:

I think Filip's approach of setting pg_database.datallowconn='false'
is pretty clever to avoid the synchronization problem.

Some bull-in-a-china-shop has recently added logic that allows ignoring
datallowconn and connecting anyway, so I'm not sure that that'd provide
a production-quality solution. On the other hand, maybe we could revert
BGWORKER_BYPASS_ALLOWCONN.

regards, tom lane

#6Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Marti Raudsepp (#3)
Re: dropdb --force

I wonder if this idea from seven years ago might be useful:
/messages/by-id/1305688547-sup-7028@alvh.no-ip.org

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#7Pavel Stehule
pavel.stehule@gmail.com
In reply to: Alvaro Herrera (#6)
Re: dropdb --force

st 19. 12. 2018 v 16:55 odesílatel Alvaro Herrera <alvherre@2ndquadrant.com>
napsal:

I wonder if this idea from seven years ago might be useful:
/messages/by-id/1305688547-sup-7028@alvh.no-ip.org

Why not - I see this as little bit different case - when I used drop
database force than I didn't need to wait on clients.

The target is clean, but the methods can be different due different
environments, goals and sensitivity

Show quoted text

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#8Filip Rembiałkowski
filip.rembialkowski@gmail.com
In reply to: Marti Raudsepp (#3)
Re: dropdb --force

Here is Pavel's patch rebased to master branch, added the dropdb
--force option, a test case & documentation.

I'm willing to work on it if needed. What are possible bad things that
could happen here? Is the documentation clear enough?

Thanks.

Show quoted text

On Tue, Dec 18, 2018 at 4:34 PM Marti Raudsepp <marti@juffo.org> wrote:

Hi

út 18. 12. 2018 v 16:11 odesílatel Filip Rembiałkowski <filip.rembialkowski@gmail.com> napsal:

Please share opinions if this makes sense at all, and has any chance
going upstream.

Clearly since Pavel has another implementation of the same concept,
there is some interest in this feature. :)

On Tue, Dec 18, 2018 at 5:20 PM Pavel Stehule <pavel.stehule@gmail.com> wrote:

Still one my customer use a patch that implement FORCE on SQL level. It is necessary under higher load when is not easy to synchronize clients.

I think Filip's approach of setting pg_database.datallowconn='false'
is pretty clever to avoid the synchronization problem. But it's also a
good idea to expose this functionality via DROP DATABASE in SQL, like
Pavel's patch, not just the 'dropdb' binary.

If this is to be accepted into PostgreSQL core, I think the two
approaches should be combined on the server side.

Regards,
Marti Raudsepp

Attachments:

drop-database-force-20190305_01.patchtext/x-patch; charset=US-ASCII; name=drop-database-force-20190305_01.patchDownload+128-22
#9Thomas Munro
thomas.munro@gmail.com
In reply to: Filip Rembiałkowski (#8)
Re: dropdb --force

On Wed, Mar 6, 2019 at 1:39 PM Filip Rembiałkowski
<filip.rembialkowski@gmail.com> wrote:

Here is Pavel's patch rebased to master branch, added the dropdb
--force option, a test case & documentation.

Hello,

cfbot.cputube.org says this fails on Windows, due to a missing semicolon here:

#ifdef HAVE_SETSID
kill(-(proc->pid), SIGTERM);
#else
kill(proc->pid, SIGTERM)
#endif

The test case failed on Linux, I didn't check why exactly:

Test Summary Report
-------------------
t/050_dropdb.pl (Wstat: 65280 Tests: 13 Failed: 2)
Failed tests: 12-13
Non-zero exit status: 255
Parse errors: Bad plan. You planned 11 tests but ran 13.

+/* Time to sleep after isuing SIGTERM to backends */
+#define TERMINATE_SLEEP_TIME 1

s/isuing/issuing/

But, hmm, this macro doesn't actually seem to be used in the patch.
Wait, is that because the retry loop forgot to actually include the
sleep?

+ /* without "force" flag raise exception immediately, or after
5 minutes */

Normally we call it an "error", not an "exception".

--
Thomas Munro
https://enterprisedb.com

#10Filip Rembiałkowski
filip.rembialkowski@gmail.com
In reply to: Thomas Munro (#9)
Re: dropdb --force

Thank you. Updated patch attached.

Show quoted text

On Sat, Mar 9, 2019 at 2:53 AM Thomas Munro <thomas.munro@gmail.com> wrote:

On Wed, Mar 6, 2019 at 1:39 PM Filip Rembiałkowski
<filip.rembialkowski@gmail.com> wrote:

Here is Pavel's patch rebased to master branch, added the dropdb
--force option, a test case & documentation.

Hello,

cfbot.cputube.org says this fails on Windows, due to a missing semicolon here:

#ifdef HAVE_SETSID
kill(-(proc->pid), SIGTERM);
#else
kill(proc->pid, SIGTERM)
#endif

The test case failed on Linux, I didn't check why exactly:

Test Summary Report
-------------------
t/050_dropdb.pl (Wstat: 65280 Tests: 13 Failed: 2)
Failed tests: 12-13
Non-zero exit status: 255
Parse errors: Bad plan. You planned 11 tests but ran 13.

+/* Time to sleep after isuing SIGTERM to backends */
+#define TERMINATE_SLEEP_TIME 1

s/isuing/issuing/

But, hmm, this macro doesn't actually seem to be used in the patch.
Wait, is that because the retry loop forgot to actually include the
sleep?

+ /* without "force" flag raise exception immediately, or after
5 minutes */

Normally we call it an "error", not an "exception".

--
Thomas Munro
https://enterprisedb.com

Attachments:

drop-database-force-20190310_01.patchtext/x-patch; charset=US-ASCII; name=drop-database-force-20190310_01.patchDownload+124-22
#11Ryan Lambert
ryan@rustprooflabs.com
In reply to: Filip Rembiałkowski (#10)
Re: dropdb --force

Hello,
This is a feature I have wanted for a long time, thank you for your work on
this.
The latest patch [1]/messages/by-id/attachment/99536/drop-database-force-20190310_01.patch applied cleanly for me. In dbcommands.c the comment
references a 5 second delay, I don't see where that happens, am I missing
something?

I tested both the dropdb program and the in database commands. Without
FORCE I get
the expected error message about active connections.

postgres=# DROP DATABASE testdb;
ERROR: source database "testdb" is being accessed by other users
DETAIL: There is 1 other session using the database.

With FORCE the database drops cleanly.

postgres=# DROP DATABASE testdb FORCE;
DROP DATABASE

The active connections get terminated as expected. Thanks,

[1]: /messages/by-id/attachment/99536/drop-database-force-20190310_01.patch
/messages/by-id/attachment/99536/drop-database-force-20190310_01.patch

*Ryan Lambert*
RustProof Labs

On Sun, Mar 10, 2019 at 12:54 PM Filip Rembiałkowski <
filip.rembialkowski@gmail.com> wrote:

Show quoted text

Thank you. Updated patch attached.

On Sat, Mar 9, 2019 at 2:53 AM Thomas Munro <thomas.munro@gmail.com>
wrote:

On Wed, Mar 6, 2019 at 1:39 PM Filip Rembiałkowski
<filip.rembialkowski@gmail.com> wrote:

Here is Pavel's patch rebased to master branch, added the dropdb
--force option, a test case & documentation.

Hello,

cfbot.cputube.org says this fails on Windows, due to a missing

semicolon here:

#ifdef HAVE_SETSID
kill(-(proc->pid), SIGTERM);
#else
kill(proc->pid, SIGTERM)
#endif

The test case failed on Linux, I didn't check why exactly:

Test Summary Report
-------------------
t/050_dropdb.pl (Wstat: 65280 Tests: 13 Failed: 2)
Failed tests: 12-13
Non-zero exit status: 255
Parse errors: Bad plan. You planned 11 tests but ran 13.

+/* Time to sleep after isuing SIGTERM to backends */
+#define TERMINATE_SLEEP_TIME 1

s/isuing/issuing/

But, hmm, this macro doesn't actually seem to be used in the patch.
Wait, is that because the retry loop forgot to actually include the
sleep?

+ /* without "force" flag raise exception immediately, or after
5 minutes */

Normally we call it an "error", not an "exception".

--
Thomas Munro
https://enterprisedb.com

#12Andres Freund
andres@anarazel.de
In reply to: Filip Rembiałkowski (#10)
Re: dropdb --force

Hi,

On 2019-03-10 11:20:42 +0100, Filip Rembiałkowski wrote:

bool
-CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared)
+CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared, bool force_terminate)
{

That doesn't seem like a decent API to me.

Greetings,

Andres Freund

#13Filip Rembiałkowski
filip.rembialkowski@gmail.com
In reply to: Andres Freund (#12)
Re: dropdb --force

On 31.03.2019, 04:35 Andres Freund <andres@anarazel.de> wrote:

bool
-CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared)
+CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared, bool force_terminate)
{

That doesn't seem like a decent API to me.

Only excuse is that naming was already a bit off, as the function
includes killing autovacuum workers.

Please advise what would be a good approach to improve it. I would
propose something like:

bool CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared);
// make it actually do what the name announces - only the count, no
side effects.

bool KillDBBackends(Oid databaseId, bool killAutovacuum, bool killBackends);
// try to kill off all the backends, return false when there are still any.

Also, there is a question - should the FORCE option rollback prepared
transactions?

Thanks!

#14Ibrar Ahmed
ibrar.ahmad@gmail.com
In reply to: Filip Rembiałkowski (#13)
Re: dropdb --force

Is this the intended behavior? SIGTERM is received.

test=# begin;
BEGIN
test=# create table test(a int);
CREATE TABLE

In another terminal drop the database.

test=# begin;
psql: FATAL: terminating connection due to administrator command
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

#15Ibrar Ahmed
ibrar.ahmad@gmail.com
In reply to: Ibrar Ahmed (#14)
Re: dropdb --force

Yes, I think it is because of this code Snippet

if (force_terminate)
{
/* try to terminate backend */
#ifdef HAVE_SETSID
kill(-(proc->pid), SIGTERM);
#else
kill(proc->pid, SIGTERM);

On Tue, Apr 9, 2019 at 3:06 PM Ibrar Ahmed <ibrar.ahmad@gmail.com> wrote:

Is this the intended behavior? SIGTERM is received.

test=# begin;
BEGIN
test=# create table test(a int);
CREATE TABLE

In another terminal drop the database.

test=# begin;
psql: FATAL: terminating connection due to administrator command
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

--
Ibrar Ahmed

#16Ibrar Ahmed
ibrar.ahmad@gmail.com
In reply to: Ibrar Ahmed (#15)
Re: dropdb --force

The following review has been posted through the commitfest application:
make installcheck-world: tested, passed
Implements feature: tested, passed
Spec compliant: tested, passed
Documentation: not tested

The feature works fine on my machine. The code is well-written.

The new status of this patch is: Ready for Committer

#17Anthony Nowocien
anowocien@gmail.com
In reply to: Ibrar Ahmed (#16)
Re: dropdb --force

Also works fine according to my testing. Documentation is also clear.
Thanks for this useful patch.

#18Anthony Nowocien
anowocien@gmail.com
In reply to: Anthony Nowocien (#17)
Re: dropdb --force

Hi,
patch no longer applies (as of 12beta2).

postgres@ubuntudev:~/pg_testing/source/postgresql-12beta2$ patch -p1 < drop-database-force-20190310_01.patch
patching file doc/src/sgml/ref/drop_database.sgml
patching file doc/src/sgml/ref/dropdb.sgml
patching file src/backend/commands/dbcommands.c
Hunk #1 succeeded at 489 (offset 2 lines).
Hunk #2 succeeded at 779 (offset 2 lines).
Hunk #3 succeeded at 787 (offset 2 lines).
Hunk #4 succeeded at 871 (offset 2 lines).
Hunk #5 succeeded at 1056 (offset 2 lines).
Hunk #6 succeeded at 1186 (offset 2 lines).
patching file src/backend/nodes/copyfuncs.c
Hunk #1 succeeded at 3852 (offset 10 lines).
patching file src/backend/nodes/equalfuncs.c
Hunk #1 succeeded at 1666 (offset 3 lines).
patching file src/backend/parser/gram.y
Hunk #1 succeeded at 10194 (offset 45 lines).
Hunk #2 succeeded at 10202 (offset 45 lines).
patching file src/backend/storage/ipc/procarray.c
Hunk #1 succeeded at 2906 (offset -14 lines).
Hunk #2 succeeded at 2948 (offset -14 lines).
patching file src/backend/tcop/utility.c
patching file src/bin/scripts/dropdb.c
Hunk #1 succeeded at 34 (offset 1 line).
Hunk #2 succeeded at 50 (offset 1 line).
Hunk #3 succeeded at 63 (offset 2 lines).
Hunk #4 succeeded at 88 (offset 2 lines).
Hunk #5 succeeded at 128 (offset 2 lines).
Hunk #6 succeeded at 136 (offset 2 lines).
Hunk #7 succeeded at 164 (offset 1 line).
patching file src/bin/scripts/t/050_dropdb.pl
patching file src/include/commands/dbcommands.h
patching file src/include/nodes/parsenodes.h
Hunk #1 succeeded at 3133 (offset 16 lines).
patching file src/include/storage/procarray.h
Hunk #1 FAILED at 112.
1 out of 1 hunk FAILED -- saving rejects to file src/include/storage/procarray.h.rej

Could you please update it ? Thanks.
Anthony

The new status of this patch is: Waiting on Author

#19Pavel Stehule
pavel.stehule@gmail.com
In reply to: Anthony Nowocien (#18)
Re: dropdb --force

Hi

po 24. 6. 2019 v 10:28 odesílatel Anthony Nowocien <anowocien@gmail.com>
napsal:

Hi,
patch no longer applies (as of 12beta2).

postgres@ubuntudev:~/pg_testing/source/postgresql-12beta2$ patch -p1 <
drop-database-force-20190310_01.patch
patching file doc/src/sgml/ref/drop_database.sgml
patching file doc/src/sgml/ref/dropdb.sgml
patching file src/backend/commands/dbcommands.c
Hunk #1 succeeded at 489 (offset 2 lines).
Hunk #2 succeeded at 779 (offset 2 lines).
Hunk #3 succeeded at 787 (offset 2 lines).
Hunk #4 succeeded at 871 (offset 2 lines).
Hunk #5 succeeded at 1056 (offset 2 lines).
Hunk #6 succeeded at 1186 (offset 2 lines).
patching file src/backend/nodes/copyfuncs.c
Hunk #1 succeeded at 3852 (offset 10 lines).
patching file src/backend/nodes/equalfuncs.c
Hunk #1 succeeded at 1666 (offset 3 lines).
patching file src/backend/parser/gram.y
Hunk #1 succeeded at 10194 (offset 45 lines).
Hunk #2 succeeded at 10202 (offset 45 lines).
patching file src/backend/storage/ipc/procarray.c
Hunk #1 succeeded at 2906 (offset -14 lines).
Hunk #2 succeeded at 2948 (offset -14 lines).
patching file src/backend/tcop/utility.c
patching file src/bin/scripts/dropdb.c
Hunk #1 succeeded at 34 (offset 1 line).
Hunk #2 succeeded at 50 (offset 1 line).
Hunk #3 succeeded at 63 (offset 2 lines).
Hunk #4 succeeded at 88 (offset 2 lines).
Hunk #5 succeeded at 128 (offset 2 lines).
Hunk #6 succeeded at 136 (offset 2 lines).
Hunk #7 succeeded at 164 (offset 1 line).
patching file src/bin/scripts/t/050_dropdb.pl
patching file src/include/commands/dbcommands.h
patching file src/include/nodes/parsenodes.h
Hunk #1 succeeded at 3133 (offset 16 lines).
patching file src/include/storage/procarray.h
Hunk #1 FAILED at 112.
1 out of 1 hunk FAILED -- saving rejects to file
src/include/storage/procarray.h.rej

Could you please update it ? Thanks.

fixed

Regards

Pavel

Anthony

Show quoted text

The new status of this patch is: Waiting on Author

Attachments:

drop-database-force-20190626_01.patchtext/x-patch; charset=US-ASCII; name=drop-database-force-20190626_01.patchDownload+124-22
#20Thomas Munro
thomas.munro@gmail.com
In reply to: Pavel Stehule (#19)
Re: dropdb --force

On Thu, Jun 27, 2019 at 7:15 AM Pavel Stehule <pavel.stehule@gmail.com> wrote:

fixed

Hi Pavel,

FYI t/050_dropdb.pl fails consistently with this patch applied:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/555234838

--
Thomas Munro
https://enterprisedb.com

#21Pavel Stehule
pavel.stehule@gmail.com
In reply to: Thomas Munro (#20)
#22Ryan Lambert
ryan@rustprooflabs.com
In reply to: Pavel Stehule (#21)
#23Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavel Stehule (#21)
#24Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tom Lane (#23)
#25Thomas Munro
thomas.munro@gmail.com
In reply to: Pavel Stehule (#24)
#26Ryan Lambert
ryan@rustprooflabs.com
In reply to: Thomas Munro (#25)
#27Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Pavel Stehule (#24)
#28Pavel Stehule
pavel.stehule@gmail.com
In reply to: Alvaro Herrera (#27)
#29Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tom Lane (#23)
#30Ryan Lambert
ryan@rustprooflabs.com
In reply to: Pavel Stehule (#29)
#31Pavel Stehule
pavel.stehule@gmail.com
In reply to: Ryan Lambert (#30)
#32Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#31)
#33vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#32)
#34Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#33)
#35vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#34)
#36Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#35)
#37Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#36)
#38vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#37)
#39Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#38)
#40Thomas Munro
thomas.munro@gmail.com
In reply to: Pavel Stehule (#37)
#41vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#39)
#42Dilip Kumar
dilipbalaut@gmail.com
In reply to: Pavel Stehule (#37)
#43Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dilip Kumar (#42)
#44Pavel Stehule
pavel.stehule@gmail.com
In reply to: Thomas Munro (#40)
#45Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#43)
#46vignesh C
vignesh21@gmail.com
In reply to: Amit Kapila (#45)
#47Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#45)
#48vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#43)
#49Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#45)
#50Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#46)
#51Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#48)
#52Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#47)
#53Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Pavel Stehule (#49)
#54Pavel Stehule
pavel.stehule@gmail.com
In reply to: Alvaro Herrera (#53)
#55Peter Eisentraut
peter_e@gmx.net
In reply to: Alvaro Herrera (#53)
#56Pavel Stehule
pavel.stehule@gmail.com
In reply to: Peter Eisentraut (#55)
#57Amit Kapila
amit.kapila16@gmail.com
In reply to: Peter Eisentraut (#55)
#58Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#49)
#59Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#58)
#60vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#59)
#61vignesh C
vignesh21@gmail.com
In reply to: vignesh C (#60)
#62Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#60)
#63vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#62)
#64Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#63)
#65Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#62)
#66Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#65)
#67Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#66)
#68Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#67)
#69Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#68)
#70Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#69)
#71Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#67)
#72Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#70)
#73Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#72)
#74Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#73)
#75Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#74)
#76Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#75)
#77Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#76)
#78Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#77)
#79Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#78)
#80Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#79)
#81Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#80)
#82Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#81)
#83Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#81)
#84Tom Lane
tgl@sss.pgh.pa.us
In reply to: Amit Kapila (#83)
#85Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tom Lane (#84)
#86Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#85)
#87Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#86)
#88Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#87)
#89Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#88)
#90Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#89)
#91Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#90)
#92Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#91)
#93Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#92)
#94Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#93)
#95Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#94)
#96Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#95)
#97Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#96)
#98Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#97)
#99Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#98)
#100Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#99)
#101Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#100)
#102Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#101)
#103Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#102)
#104Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#102)
#105vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#100)
#106Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#105)
#107vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#106)
#108Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#107)
#109vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#108)
#110Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#109)
#111Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#110)
#112Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#111)
#113Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#112)
#114Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#113)
#115Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#114)
#116Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#112)
#117Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#116)
#118vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#115)
#119Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#118)
#120vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#119)
#121Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#120)
#122Amit Kapila
amit.kapila16@gmail.com
In reply to: vignesh C (#120)
#123vignesh C
vignesh21@gmail.com
In reply to: Amit Kapila (#122)
#124Pavel Stehule
pavel.stehule@gmail.com
In reply to: vignesh C (#123)
#125Amit Kapila
amit.kapila16@gmail.com
In reply to: vignesh C (#123)
#126vignesh C
vignesh21@gmail.com
In reply to: Pavel Stehule (#124)
#127Amit Kapila
amit.kapila16@gmail.com
In reply to: vignesh C (#126)
#128vignesh C
vignesh21@gmail.com
In reply to: Amit Kapila (#127)
#129Amit Kapila
amit.kapila16@gmail.com
In reply to: vignesh C (#128)
#130vignesh C
vignesh21@gmail.com
In reply to: Amit Kapila (#129)
#131Michael Paquier
michael@paquier.xyz
In reply to: Amit Kapila (#129)
#132Juan José Santamaría Flecha
juanjo.santamaria@gmail.com
In reply to: Michael Paquier (#131)
#133Amit Kapila
amit.kapila16@gmail.com
In reply to: Juan José Santamaría Flecha (#132)
#134vignesh C
vignesh21@gmail.com
In reply to: Juan José Santamaría Flecha (#132)
#135Michael Paquier
michael@paquier.xyz
In reply to: Amit Kapila (#133)
#136Amit Kapila
amit.kapila16@gmail.com
In reply to: Michael Paquier (#135)