<div dir="auto"><div dir="ltr"><div>Hi Tatsuo<br></div><div dir="auto"><br></div><div>Thanks. Got it.<br></div><div><br clear="all"><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>BR</div></div></div></div>Igor Yurchenko</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 31 Oct 2023 at 10:01, Tatsuo Ishii <<a href="mailto:ishii@sraoss.co.jp" target="_blank" rel="noreferrer">ishii@sraoss.co.jp</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> Hi guys<br>
> <br>
> I am implementing a code (python if it matters) for upgrading rather<br>
> outdated pgpool 3.6 up to a bit less outdated pgpool 4.2. But we are<br>
> planning to quickly update up to the latest version. I was stuck with how<br>
> to remove old extensions/functions clearly and install new one.<br>
> <br>
> 1. I have no questions about extensions installation. It's described well<br>
> in documentation.<br>
> But for removing, I'm not sure. A straightforward solution is parsing all<br>
> names of functions/extensions from install scripts of pgpool 3.6 and<br>
> removing them one by one.<br>
> For pgpool_adm it's a single row. But pgpool_recovery.sql defines several<br>
> functions. And hard coding them in the code makes it really smell.But maybe<br>
> I missed something.<br>
<br>
I think you don't need to remove 3.6 extensions: you can just override<br>
3.6 extensions by 4.2 extensions.  After installing Pgpool-II 4.2<br>
pgpool_recovery, You can run "ALTER EXTENSION pgpool_recovery UPDATE<br>
TO '1.3'" on each database. (1.3 is the version number of<br>
pgpool_recovery extension coming with Pgpool-II 4.2).  If this does<br>
not work, you can run "DROP EXTENSION pgpool_recovery", then "CREATE<br>
EXTENSION pgpool_recovery" on each database.<br>
<br>
> 2. In the documentation examples the extensions are installed in template1<br>
> database. It affects only databases that will be created after it. If a<br>
> database already exists, I should install it (preliminary remove a previous<br>
> version) to the certain database too. Right?<br>
<br>
Yes.<br>
<br>
Best reagards,<br>
--<br>
Tatsuo Ishii<br>
SRA OSS LLC<br>
English: <a href="http://www.sraoss.co.jp/index_en/" rel="noreferrer noreferrer" target="_blank">http://www.sraoss.co.jp/index_en/</a><br>
Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
</blockquote></div></div>