From: | Jehan-Guillaume de Rorthais <jgdr(at)dalibo(dot)com> |
---|---|
To: | Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: multi-install PostgresNode fails with older postgres versions |
Date: | 2021-04-07 14:37:12 |
Message-ID: | 20210407163712.05858be2@firost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi all,
First, sorry to step in this discussion this late. I didn't noticed it before :(
I did some work about these compatibility issues in late 2020 to use
PostgresNode in the check_pgactivity TAP tests.
See https://github.com/ioguix/check_pgactivity/tree/tests/t/lib
PostgresNode.pm, TestLib.pm, SimpleTee.pm and RecursiveCopy.pm comes unchanged
from PostgreSQL source file (see headers and COPYRIGHT.pgsql).
Then, I'm using the facet class PostgresNodeFacet to extend it with some more
methods. Finaly, I created one class per majpr version, each inheriting from the
next version. That means 13 inherits from PostgresNodeFacet.pm, 12 inherits from
13, 11 inherits from 12, etc.
When I'm creating a new node, I'm using the "pgaTester" factory class. It
relies on PATH to check the major version using pg_config, then loads the
appropriate class.
That means some class overrides almost no methods but version(), which returns
the major version. Eg.:
https://github.com/ioguix/check_pgactivity/blob/tests/t/lib/PostgresNode12.pm
From tests, I can check the node version using this method, eg.:
skip "skip non-compatible test on PostgreSQL 8.0 and before", 3
unless $node->version <= 8.0;
Of course, there's a lot of duplicate code between classes, but my main goal
was to keep PostgresNode.pm unchanged from upstream so I can easily update it.
And here is a demo test file:
https://github.com/ioguix/check_pgactivity/blob/tests/t/01-streaming_delta.t
My limited set of tests are working with versions back to 9.0 so far.
My 2¢
From | Date | Subject | |
---|---|---|---|
Next Message | Hellmuth Vargas | 2021-04-07 14:48:12 | Re: PostgreSQL log query's result size |
Previous Message | David G. Johnston | 2021-04-07 14:20:16 | Re: PostgreSQL log query's result size |