Thread: In pageinspect, perform clean-up after testing gin-related functions

In pageinspect, perform clean-up after testing gin-related functions

From
Kuntal Ghosh
Date:
Hello all,

In pageinspect/sql/gin.sql, we don't drop the table test1 at the end
of the test. IMHO, we should clean-up at the end of a test. I've
attached the patch to perform the same.

-- 
Thanks & Regards,
Kuntal Ghosh
EnterpriseDB: http://www.enterprisedb.com

Attachment

Re: In pageinspect, perform clean-up after testing gin-related functions

From
Amit Kapila
Date:
On Wed, Jul 11, 2018 at 12:37 PM, Kuntal Ghosh
<kuntalghosh.2007@gmail.com> wrote:
> Hello all,
>
> In pageinspect/sql/gin.sql, we don't drop the table test1 at the end
> of the test. IMHO, we should clean-up at the end of a test.
>

Yeah, it is good practice to drop the objects at the end.  It is
strange that original commit adfb81d9e1 has this at the end of the
test, but a later commit 367b99bbb1 by Tom has removed the Drop
statement.  AFAICS, this is just a silly mistake, but I might be
missing something.  Tom, do you remember any reason for doing so?  If
not, then I think we can revert back that change (aka commit Kuntal's
patch).

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Re: In pageinspect, perform clean-up after testing gin-relatedfunctions

From
Andres Freund
Date:
On 2018-07-11 12:56:49 +0530, Amit Kapila wrote:
> On Wed, Jul 11, 2018 at 12:37 PM, Kuntal Ghosh
> <kuntalghosh.2007@gmail.com> wrote:
> > Hello all,
> >
> > In pageinspect/sql/gin.sql, we don't drop the table test1 at the end
> > of the test. IMHO, we should clean-up at the end of a test.
> >
> 
> Yeah, it is good practice to drop the objects at the end.  It is
> strange that original commit adfb81d9e1 has this at the end of the
> test, but a later commit 367b99bbb1 by Tom has removed the Drop
> statement.  AFAICS, this is just a silly mistake, but I might be
> missing something.  Tom, do you remember any reason for doing so?  If
> not, then I think we can revert back that change (aka commit Kuntal's
> patch).

We actually sometimes intentionally want to persist objects past the end
of the test. Allows to test pg_dump / pg_upgrade. Don't know whether
that's the case here, but it's worthwhile to note.

Greetings,

Andres Freund


Andres Freund <andres@anarazel.de> writes:
> On 2018-07-11 12:56:49 +0530, Amit Kapila wrote:
>> Yeah, it is good practice to drop the objects at the end.  It is
>> strange that original commit adfb81d9e1 has this at the end of the
>> test, but a later commit 367b99bbb1 by Tom has removed the Drop
>> statement.  AFAICS, this is just a silly mistake, but I might be
>> missing something.  Tom, do you remember any reason for doing so?  If
>> not, then I think we can revert back that change (aka commit Kuntal's
>> patch).

> We actually sometimes intentionally want to persist objects past the end
> of the test. Allows to test pg_dump / pg_upgrade. Don't know whether
> that's the case here, but it's worthwhile to note.

I don't think our pg_dump testbed makes any use of contrib regression
tests, so that's not the reason here.  I believe I took out the DROP
because it made it impossible to do additional manual tests after the end
of an installcheck run without laboriously re-creating the test table.

In other words, I disagree with Amit's opinion that it's good practice
to drop everything at the end of a test script.  There are often good
reasons to leave the objects available for later use.

            regards, tom lane


Re: In pageinspect, perform clean-up after testing gin-related functions

From
Amit Kapila
Date:
On Wed, Jul 11, 2018 at 11:04 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Andres Freund <andres@anarazel.de> writes:
>> On 2018-07-11 12:56:49 +0530, Amit Kapila wrote:
>>> Yeah, it is good practice to drop the objects at the end.  It is
>>> strange that original commit adfb81d9e1 has this at the end of the
>>> test, but a later commit 367b99bbb1 by Tom has removed the Drop
>>> statement.  AFAICS, this is just a silly mistake, but I might be
>>> missing something.  Tom, do you remember any reason for doing so?  If
>>> not, then I think we can revert back that change (aka commit Kuntal's
>>> patch).
>
>> We actually sometimes intentionally want to persist objects past the end
>> of the test. Allows to test pg_dump / pg_upgrade. Don't know whether
>> that's the case here, but it's worthwhile to note.
>
> I don't think our pg_dump testbed makes any use of contrib regression
> tests, so that's not the reason here.  I believe I took out the DROP
> because it made it impossible to do additional manual tests after the end
> of an installcheck run without laboriously re-creating the test table.
>

Fair point, but using a generic name like 'test1' and leaving it can
sometimes cause confusion. In this case, it was not clear by looking
at the test and all the nearby tests (brin, btree and page) uses the
same table name and drops the table at end of the test.  The name
conflict doesn't arise because the test for 'gin' was at the end of
those.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com