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

From: "Martijn Tonies \(Upscene Productions\)" <m(dot)tonies(at)upscene(dot)com>
To: <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Stored procedure code no longer stored in v14 and v15, changed behaviour
Date: 2022-12-01 14:58:37
Message-ID: 23DE96C56DFC404096553A22DDC5093B@MARTIJNWS
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi all,

In PosgreSQL version 13, the source code for a stored procedure or function
in SQL/plpgsql/etc was stored in pg_proc.prosrc. This column would hold the
original procedure or function body, verbatim.

Since version 14, the source code for a stored procedure or function written
in plain (compound) SQL, a new feature, is no longer stored in
pg_proc.prosrc, instead, there’s an additional column prosqlbody which
returns some kind of pre-parsed SQL which has no use for the user.

I know you can use pg_get_functiondef to get a CREATE PROCEDURE/FUNCTION
statement, but for compound SQL based routines in v14 and v15, this removes
all formatting and comments in the original CREATE statement. For database
development, including browsing an existing database and know what each
routine can do, this is quite terrible.

What is the reason for this?

Can you modify the server code to store the original body in proc.prosrc
again? It would be very helpful.

With regards,

Martijn Tonies
Upscene Productions
https://www.upscene.com

Database Workbench - developer tool for Oracle, SQL Server, PostgreSQL,
MySQL, InterBase, NexusDB and Firebird.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David G. Johnston 2022-12-01 15:14:42 Re: Stored procedure code no longer stored in v14 and v15, changed behaviour
Previous Message Vijaykumar Jain 2022-12-01 14:40:21 Re: postgres large database backup