Re: Cleanup isolation specs from unused steps

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Cleanup isolation specs from unused steps
Date: 2019-08-23 04:19:47
Message-ID: CAAKRu_a7oZLHW+RKEODCxds1TwQhBvLtpPgfXusG4FHtnshcwg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Aug 22, 2019 at 6:53 PM Michael Paquier <michael(at)paquier(dot)xyz> wrote:

> On Thu, Aug 22, 2019 at 10:20:48AM -0700, Melanie Plageman wrote:
> > So, there is some historical context as to why it is a separate test
> suite.
> > And some of the differences are specific to Greenplum -- e.g. needing to
> > connect to a specific database in "utility mode" to do something.
>
> What is "utility mode"?
>

It's a connection parameter that allows you to connect to a single Postgres
node
in a Greenplum cluster. I only included it as an example of the kind of
"Greenplum-specific" things that are in the test framework.

>
> > The syntax for what would be a "step" in isolation is like this:
> >
> > [<#>[flag]:] <sql> | ! <shell scripts or command>
> >
> > where # is the session number and flags include the following:
> >
> > &: expect blocking behavior
> > >: running in background without blocking
> > <: join an existing session
> > q: quit the given session
>
> These could be transposed as new meta commands for the existing
> specs? Of course not as "step" per-se, but new dedicated commands?
>
>
Yes, I think you could definitely add some of the flags as meta-commands for
existing steps -- the current implementation of "blocking" for isolation is
really limiting.
However, features aside, I actually find the existing "step" syntax in
isolation
clunkier than the syntax used in Greenplum's "isolation2" framework.

> > See the script [1] for parsing the test cases for more details on the
> > syntax and capabilities (it is in Python).
>
> Hmm. The bar to add a new hard language dependency in the test
> suites is very high. I am not sure that we'd want something with a
> python dependency for the tests, also knowing how Python likes
> breaking compatibility (isolation2_main() also mentions a dependency
> to Python).
>

Agreed, I don't think it needs to be in Python.

My point was that some of our "isolation2" framework has to be different
because
it is enabling us to test features that are in Greenplum and not in
Postgres.
However, many of the features it has would actually be really handy to have
for
testing Postgres.
It wasn't initially suggested upstream because it is actually mainly ported
from
a separate standalone testing framework that was written at Greenplum in
Python.

I've heard Greenplum folks talk about re-writing our "isolation2" framework
in
(probably) C and making it a better fit to contribute. It's definitely on
my wishlist.

--
Melanie Plageman

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2019-08-23 04:26:02 Hooks for session start and end, take two
Previous Message Michael Paquier 2019-08-23 03:27:32 Re: [HACKERS] [PATCH] pageinspect function to decode infomasks