Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mdkAh-0000uz-Bs for pgsql-admin@arkaria.postgresql.org; Fri, 22 Oct 2021 02:20:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mdkAg-0002DZ-99 for pgsql-admin@arkaria.postgresql.org; Fri, 22 Oct 2021 02:20:38 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mdkAf-00028n-On for pgsql-admin@lists.postgresql.org; Fri, 22 Oct 2021 02:20:37 +0000 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mdkAd-0004Ib-B0 for pgsql-admin@lists.postgresql.org; Fri, 22 Oct 2021 02:20:36 +0000 Received: by mail-qk1-x72f.google.com with SMTP id r15so3303603qkp.8 for ; Thu, 21 Oct 2021 19:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to; bh=d5+uKYYgRRW0bBhX33aXqiqhm0R6G+EtJh2bW2+rb2E=; b=UquVqi10S/TwKAgeorpgZbM2Qb5xM3DytMO0hgCGoP0/ILlOpvREXeYjtzb7WgjP9U NVcr9ybIO2bfRdKVJD2x1L6RTDzM5pT2pxxAqntExIuWAOWdgBy6pqNRVi6yB19LtlMD R7+UYi5pEsZYUyfoV+YfLcPjeZ3kzvOq/RCP4KmtF8RjxVoaTNRf7fpQSAQi0P73O4EP Knd0PRgOrL6gOBMo/L9N0P7rp1Qm2fLGODR/+qCPboieJeUOhyrAeYmv95OmsOmCIIcj DebcQ/ov0WyxtvphQCI3m6aXv2ek423aBX+nSkVPxCGAfnmbVblpjoP/n6B33uIe2wCV J+gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to; bh=d5+uKYYgRRW0bBhX33aXqiqhm0R6G+EtJh2bW2+rb2E=; b=ydD68dgnQY9CP+5ew53V5gFcxXdhjE1BSYxcYbv9Td0FixleaGb1aJUd3J81MbL6r2 LnEUSLgp6HPk7KXuVNGapFhCbZVGYk6DNzR+BSVeilpprahUjbe70a1aZnFMQeSXh5MZ Qc0s+iTUB5+4wc7JzTVW2O4CCRi/+l0FHfQGJ9jOpsvWe3naaO4UWBZ+O4S3g+hZfNMd r2Az/nJtpRkctHglA927FdhFZMM5hTaQkJ3LQBB1IiS5eCBqzS+4/v+SgOaKcAjlb2vj RVfAYXHAhdcjasvLIEFV26B7Y7p8M3PP+vquX3LHAK7x04CtSO1xERYg/GPeQtIV1dyi tEKg== X-Gm-Message-State: AOAM5322mjicR4qGM8OFqty/A5qBaOsgr/h0dRuQGNYrM9S7vG+cZFpo z/6QYa8IF8AYRymW/jZ1Dl1brbUnnEbckA== X-Google-Smtp-Source: ABdhPJwGFze5wJ7arWnKYTv4Q35l3rlt+mAVfPV0UuZ7eLsZNcHYu14/+Pr0cSv1RhGndI6z77gM6g== X-Received: by 2002:a37:67c9:: with SMTP id b192mr7751581qkc.164.1634869233854; Thu, 21 Oct 2021 19:20:33 -0700 (PDT) Received: from [192.168.2.100] (pool-72-79-19-93.nwrknj.east.verizon.net. [72.79.19.93]) by smtp.gmail.com with ESMTPSA id e16sm3484376qkl.108.2021.10.21.19.20.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Oct 2021 19:20:33 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------rbrDERxoPTGdHWY44O50CdFC" Message-ID: Date: Thu, 21 Oct 2021 22:20:32 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: RDS and postgres extension approval Content-Language: en-US To: pgsql-admin@lists.postgresql.org References: From: Mladen Gogala In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------rbrDERxoPTGdHWY44O50CdFC Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 10/21/21 21:42, Wells Oliver wrote: > Hi-- maybe more an RDS question, but does anyone know how > extensions go about being approved for use in PG on RDS? For example, > we'd like to make use of plpython3u but you get the old "Extension > "plpython3u" is not supported by Amazon RDS" error.. > > -- > Wells Oliver > wells.oliver@gmail.com You should try PLPerl. That extension is supported by RDS: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.Extensions.12x Your code will look prettier, thanks to perltidy. You will also get the whole of CPAN in your toolkit. Above all, you will not have to use COBOL-like tabulation. Whatever you can do in Python, you can also do in Perl. And, as always, use strict. #!/usr/bin/perl -w # camel code use strict; $_='ev al("seek\040D ATA,0, 0;");foreach(1..3) {;}my @camel1hump;my$camel; my$Camel ;while( ){$_=sprintf("%-6 9s",$_);my@dromedary 1=split(//);if(defined($ _=)){@camel1hum p=split(//);}while(@dromeda ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;} $CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){ $camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift( @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if( defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@ camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\ 064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse; print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/; $_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval ("seek\040DATA,0,0;");undef$/;$_=;s/\s*//g;( );;s ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124 \1 50\145\040\165\163\145\040\157\1 46\040\1 41\0 40\143\141 \155\145\1 54\040\1 51\155\ 141 \147\145\0 40\151\156 \040\141 \163\16 3\ 157\143\ 151\141\16 4\151\1 57\156 \040\167 \151\164\1 50\040\ 120\1 45\162\ 154\040\15 1\163\ 040\14 1\040\1 64\162\1 41\144 \145\ 155\14 1\162\ 153\04 0\157 \146\ 040\11 7\047\ 122\1 45\15 1\154\1 54\171 \040 \046\ 012\101\16 3\16 3\15 7\143\15 1\14 1\16 4\145\163 \054 \040 \111\156\14 3\056 \040\ 125\163\145\14 4\040\ 167\1 51\164\1 50\0 40\160\ 145\162 \155\151 \163\163 \151\1 57\156\056 Note that in the language that enforces indentation rules, the code above would not be possible. Regards -- Mladen Gogala Database Consultant Tel: (347) 321-1217 https://dbwhisperer.wordpress.com --------------rbrDERxoPTGdHWY44O50CdFC Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 10/21/21 21:42, Wells Oliver wrote:
Hi-- maybe more an RDS question, but does anyone know how extensions go about being approved for use in PG on RDS? For example, we'd like to make use of plpython3u but you get the old "Extension "plpython3u" is not supported by Amazon RDS" error..

--

You should try PLPerl. That extension is supported by RDS:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.Extensions.12x

Your code will look prettier, thanks to perltidy. You will also get the whole of CPAN in your toolkit. Above all, you will not have to use COBOL-like tabulation. Whatever you can do in Python, you can also do in Perl. And, as always, use strict.

#!/usr/bin/perl -w                                      # camel code
use strict;

                                           $_='ev
                                       al("seek\040D
           ATA,0,                  0;");foreach(1..3)
       {<DATA>;}my               @camel1hump;my$camel;
  my$Camel  ;while(             <DATA>){$_=sprintf("%-6
9s",$_);my@dromedary           1=split(//);if(defined($
_=<DATA>)){@camel1hum        p=split(//);}while(@dromeda
 ry1){my$camel1hump=0      ;my$CAMEL=3;if(defined($_=shif
        t(@dromedary1    ))&&/\S/){$camel1hump+=1<<$CAMEL;}
       $CAMEL--;if(d   efined($_=shift(@dromedary1))&&/\S/){
      $camel1hump+=1  <<$CAMEL;}$CAMEL--;if(defined($_=shift(
     @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(
     defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME
     L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h
      ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@
      camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\
      064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;
       print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y
        /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;
         $_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval;   eval
           ("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;(   );;s
             ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__   \124
               \1   50\145\040\165\163\145\040\157\1 46\040\1  41\0
                    40\143\141  \155\145\1 54\040\1   51\155\  141
                    \147\145\0  40\151\156 \040\141    \163\16 3\
                     157\143\   151\141\16  4\151\1     57\156
                     \040\167  \151\164\1   50\040\      120\1
                     45\162\   154\040\15    1\163\      040\14
                     1\040\1   64\162\1      41\144       \145\
                     155\14    1\162\       153\04        0\157
                      \146\     040\11     7\047\         122\1
                      45\15      1\154\1  54\171          \040
                      \046\         012\101\16            3\16
                      3\15           7\143\15             1\14
                      1\16            4\145\163           \054
                     \040            \111\156\14         3\056
                    \040\         125\163\145\14         4\040\
                    167\1        51\164\1  50\0         40\160\
                  145\162                              \155\151
                \163\163                                \151\1
              57\156\056

Note that in the language that enforces indentation rules, the code above would not be possible.

Regards

-- 
Mladen Gogala
Database Consultant
Tel: (347) 321-1217
https://dbwhisperer.wordpress.com
--------------rbrDERxoPTGdHWY44O50CdFC--