Re: Stored procedure code no longer stored in v14 and v15, changed behaviour

From: Gavan Schneider <list(dot)pg(dot)gavan(at)pendari(dot)org>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Cc: Dominique Devienne <ddevienne(at)gmail(dot)com>, Christophe Pettus <xof(at)thebuild(dot)com>, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "Martijn Tonies (Upscene Productions)" <m(dot)tonies(at)upscene(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: Stored procedure code no longer stored in v14 and v15, changed behaviour
Date: 2022-12-01 23:22:49
Message-ID: D11C5B92-8B25-42D2-9BFF-04DB3DD3233D@pendari.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 2 Dec 2022, at 6:51, Tom Lane wrote:

> Dominique Devienne <ddevienne(at)gmail(dot)com> writes:
>> On Thu, Dec 1, 2022 at 8:09 PM Christophe Pettus <xof(at)thebuild(dot)com> wrote:
>>> Since this is a custom-built system, there is nothing keeping you from creating your own table in the database that stores the original text of the function.
>
>> That's not the point. If a DBA updates one of our triggers or proc or
>> whatever else,
>> the recorded info in a custom table won't be affected. We are diff'ing
>> the server-side
>> schema, against the expected in-memory model of the physical model.
>
>> Thus the dictionaries are the only source of truth we can trust for
>> the current state of the schema.
>> And beside minor syntactic differences, and some more troublesome
>> object-name rewrites, this is
>> exactly what we want. The system itself needs to preserve the original
>> DDL IMHO. --DD
>
> Do you really fail to see the contradictions in this? You want the
> database to preserve the original DDL, but you also want it to update
> in response to subsequent alterations. You can't have both those
> things.
>
At the risk of stating the (over) obvious…

NEW: the Pg system has a parsed/tokenised version of functions and such like, with the excellent feature that these will be kept synchronised with any name change of objects referenced
OLD: easily available text version of functions, etc. with comments and layout (but not easily updatable in the event referenced objects get renamed) — sysadmin usage

The contradiction is obvious but both needs can be justified…

NEXT(?): human readable version of function, etc definitions be generated from the parsed version, with the addition of tokens within this parsed version that allow programer’s comments to be reinstated. Leave the layout style conventions to the system and promise to keep this style consistent and maintained as part of the feature. Putting this generated (and updated as needed) text into pg_proc.prosrc would seem to be the least change needed to allow existing usage to move with the new Pg versions (and maybe help pgAdmin as well)

Regards

Gavan Schneider
——
Gavan Schneider, Sodwalls, NSW, Australia
Explanations exist; they have existed for all time; there is always a well-known solution to every human problem — neat, plausible, and wrong.
— H. L. Mencken, 1920

In response to

Browse pgsql-general by date

  From Date Subject
Next Message raf 2022-12-02 00:24:17 Re: Stored procedure code no longer stored in v14 and v15, changed behaviour
Previous Message Young Seung Andrew Ko 2022-12-01 22:50:47 Re: PostgreSQL extension for processing Graph queries (Apache AGE)