Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tDVE6-001Ao9-9w for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Nov 2024 20:53:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tDVE4-00GzEI-NR for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Nov 2024 20:53:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tDVE4-00GzDV-DK for pgsql-hackers@lists.postgresql.org; Tue, 19 Nov 2024 20:53:32 +0000 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tDVDx-002l0l-A8 for pgsql-hackers@lists.postgresql.org; Tue, 19 Nov 2024 20:53:30 +0000 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-2fb3da341c9so33412701fa.2 for ; Tue, 19 Nov 2024 12:53:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732049603; x=1732654403; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SNVAtwj1o7SyqxStWbHb5KfY2nRuT5MR0d5A8h+3UyU=; b=DjCF5n51ZzcoIehFuChbPTJST2SzdsM1X6jQNNyJHKc5dPND9YYm6N9wn8NZBpC/4b exaZdwy9d3HuTUfAAoiPIuzzeFysa2z2UaTaexT/ujxlQFBiPZtk2q8XsHf/T6DjIINM 5l6+XhcCOY7orGMohtduNkHq22YLu+Q7PPffW1mT74T4tbPwp/6VwJNI/cBXYwGqqRdi FXo2G8ymyQ5+SHGrpb6xPlAacMI0b5NqOCsItxL6/95gxs1BtFHTUCKQNABgWe8JtSXR +4eKH8cMaZAFDfxIRjvLLe8wB840W6gBKIlJ622/AEiIhn3apVCrCENg1olzvRjvgME6 /+XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732049603; x=1732654403; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SNVAtwj1o7SyqxStWbHb5KfY2nRuT5MR0d5A8h+3UyU=; b=Tjc/fvQzka2UkmoSZflPsQ14rHtZ5SeTWe/mkpeyT89dBUJ9D2If0U5i2xP2vK0cpZ 5Zmih0eQmnAMz5U1VcYteQhF62Mb+zf1kLsIpMDKgBJuzy5Ft0HktkBtYy9D8rk+hSSb sASOXBoVyAlEwaUzzDEgMRe5sgLD1p0J8favbFY7sH0UeCbJgWfMF+960P44xWJ1XxzG hpsWxXnmWP5p5WCUnpuEmCi1zy9eJjFhOQkze7KUIqCkFNp445ZjfKTvGYm6k+2Lb8q0 1AfCldZSihXcXIgytq2DwqlUuSWzoA7sayi0wg/2uniCeZMNGV2MySKDNspEmJmkSl1C 7byA== X-Forwarded-Encrypted: i=1; AJvYcCUsh6p4ygnLRatjf8dTTP1O67MkXanv4g8uprdFPlmhe4P3HJkKURAB4HDUTPnuGKPpsgZG9bxL+V/efWUM@lists.postgresql.org X-Gm-Message-State: AOJu0YxN4X2a0vpoQijwvKtUnlQy+DIdCnDmmZIgWKk7mfO7w+HLUEMc XtzWSrZRwHQ0lCH3nJkRo921TxMlmfiFE4SSotNac9KBcxIci32DtTsl6N7I5hZZdfLXbUL8ECc tyb+6YdfVsDB076Q0TxQdXxlADk4= X-Google-Smtp-Source: AGHT+IGOnqwHRYGN4qwVRsRHWfa1IJ2RsEQRfEYYdWs+X/MPYI4pIiSbWz+ta3NINie0Og/GvCKdKIzhxj7oRxxrNDI= X-Received: by 2002:a05:651c:548:b0:2ff:55f0:ae65 with SMTP id 38308e7fff4ca-2ff8dc62a2bmr2400751fa.17.1732049603090; Tue, 19 Nov 2024 12:53:23 -0800 (PST) MIME-Version: 1.0 References: <1342498.1729444411@sss.pgh.pa.us> <1445998.1729482404@sss.pgh.pa.us> <2062830.1729625620@sss.pgh.pa.us> <2265411.1729699470@sss.pgh.pa.us> <2354718.1729737539@sss.pgh.pa.us> <2581216.1729794746@sss.pgh.pa.us> <1948345.1730500073@sss.pgh.pa.us> <3797606.1732045516@sss.pgh.pa.us> In-Reply-To: <3797606.1732045516@sss.pgh.pa.us> From: Michel Pelletier Date: Tue, 19 Nov 2024 12:52:46 -0800 Message-ID: Subject: Re: Using Expanded Objects other than Arrays from plpgsql To: Tom Lane Cc: Pavel Stehule , pgsql-hackers@lists.postgresql.org Content-Type: multipart/alternative; boundary="00000000000053608306274a39ef" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000053608306274a39ef Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Nov 19, 2024 at 11:45=E2=80=AFAM Tom Lane wrote= : > Pavel Stehule writes: > > =C3=BAt 19. 11. 2024 v 18:51 odes=C3=ADlatel Michel Pelletier < > > pelletier.michel@gmail.com> napsal: > >> A couple years ago I tried to compress what I learned about expanded > >> objects into a dummy extension that just provides the necessary > >> boilerplate. It wasn't great but a start: > >> https://github.com/michelp/pgexpanded > >> Pavel Stehule indicated this might be a good example to put into > contrib: > > > another position can be src/test/modules - I think so your example is > > "similar" to plsample > > Yeah. I think we've largely adopted the position that contrib should > contain installable modules that do something potentially useful to > end-users. A pure skeleton wouldn't be that, but if it's fleshed out > enough to be test code for some core features then src/test/modules > could be a reasonable home. > Great! I'll put a patch together that adds the skeleton object to src/test/modules and I'll write some expected tests that run the expansion through its paces, when the support function feature happens I'll update it to include tests for that. Should I include Tom's patch changes on top of mine or keep those separate? I'm not entirely clear on the best practice to carry those forward as well. -Michel --00000000000053608306274a39ef Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Nov 19, 2024 at 11:45=E2=80=AFAM = Tom Lane <tgl@sss.pgh.pa.us>= wrote:
Pavel Stehule <pavel.stehule@gmail.com> writes:
> =C3=BAt 19. 11. 2024 v 18:51 odes=C3=ADlatel Michel Pelletier <
> pellet= ier.michel@gmail.com> napsal:
>> A couple years ago I tried to compress what I learned about expand= ed
>> objects into a dummy extension that just provides the necessary >> boilerplate.=C2=A0 It wasn't great but a start:
>> https://github.com/michelp/pgexpanded
>> Pavel Stehule indicated this might be a good example to put into c= ontrib:

> another position can be src/test/modules - I think so your example is<= br> > "similar" to plsample

Yeah.=C2=A0 I think we've largely adopted the position that contrib sho= uld
contain installable modules that do something potentially useful to
end-users.=C2=A0 A pure skeleton wouldn't be that, but if it's fles= hed out
enough to be test code for some core features then src/test/modules
could be a reasonable home.

Great!=C2= =A0 I'll put a patch together that adds the skeleton object to src/test= /modules and I'll write some expected tests that run the expansion thro= ugh its paces, when the support function feature happens I'll update it= to include tests for that.

Should I include Tom&#= 39;s patch changes on top of mine or keep those separate?=C2=A0 I'm not= entirely clear on the best practice to carry those forward as well.
<= div>
-Michel

=C2=A0
--00000000000053608306274a39ef--