Re: dropdb --force - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: dropdb --force
Date
Msg-id CAFj8pRCWXLOy+M=PMMb+SfXfwm2sKWcqCXJX6GesWLBg5bFtJw@mail.gmail.com
Whole thread Raw
In response to Re: dropdb --force  (vignesh C <vignesh21@gmail.com>)
Responses Re: dropdb --force  (vignesh C <vignesh21@gmail.com>)
List pgsql-hackers


čt 21. 11. 2019 v 6:33 odesílatel vignesh C <vignesh21@gmail.com> napsal:
On Mon, Nov 18, 2019 at 6:30 PM Pavel Stehule <pavel.stehule@gmail.com> wrote:
>>
>> I'll send this test today
>
>
> here is it
>

Thanks for adding the test.
Few comments:
This function is same as in test/recovery/t/013_crash_restart.pl, we
can add to a common file and use in both places:
+# Pump until string is matched, or timeout occurs
+sub pump_until
+{
+    my ($proc, $stream, $untl) = @_;
+    $proc->pump_nb();
+    while (1)
+    {
+        last if $$stream =~ /$untl/;
+        if ($psql_timeout->is_expired)
+        {

yes, I know - probably it can be moved to testlib.pm. Unfortunately it is perl, and I am not able to this correctly. More it use global object - timer

This can be Tests drop database with force option:

done

+#
+# Tests killing session connected to dropped database
+#

This can be changed to check database foobar1 does not exist.

done

+# and there is not a database with this name
+is($node->safe_psql('postgres', qq[SELECT EXISTS(SELECT * FROM
pg_database WHERE datname='foobar1');]),
+    'f', 'database foobar1 was removed');

This can be changed to check the connections on foobar1 database
+
+# and it is connected to foobar1 database
+is($node->safe_psql('postgres', qq[SELECT pid FROM pg_stat_activity
WHERE datname='foobar1' AND pid = $pid;]),
+    $pid, 'database foobar1 is used');

done


This can be changed to restart psql as the previous connection will be
terminated by previous drop database.
+

done

new patch attached

Regards

Pavel


+# restart psql processes, now that the crash cycle finished
+($killme_stdin, $killme_stdout, $killme_stderr) = ('', '', '');
+$killme->run();

Regards,
Vignesh
EnterpriseDB: http://www.enterprisedb.com
Attachment

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Remove configure --disable-float4-byval and--disable-float8-byval
Next
From: Nikolay Shaplov
Date:
Subject: Re: [PATCH] Do not use StdRdOptions in Access Methods