Re: BUG #19034: Recursive function with sql_body can replace an existing function but can not be created on it's own

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Yushu Chen <gentcys(at)gmail(dot)com>, "katja(dot)henke(at)foo(dot)ag" <katja(dot)henke(at)foo(dot)ag>, "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #19034: Recursive function with sql_body can replace an existing function but can not be created on it's own
Date: 2025-09-07 21:09:06
Message-ID: c48613a5ef709ae349e7f9509fa52b578b0eaecb.camel@cybertec.at
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Fri, 2025-09-05 at 05:55 -0700, David G. Johnston wrote:
> > Sure, but creating a dump that will fail to load is not good.
> > I don't have a smarter idea that dumping standard SQL functions
> > in two statements like you suggested...
>
> When resolving the dependency graph for such a function can we prevent the
> oid of the parent and the oid of the child being the same value?
> Prohibit direct self-references so it fails even if you use “or replace”.

I am not sure I can follow. With "parent" and "child", do you mean the
function as it was originally created and the function after replacing
it with a recursive function? If yes, then that's not an option.
The main point of CREATE OR REPLACE FUNCTION is to preserve the oid.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2025-09-07 21:58:34 Re: BUG #19034: Recursive function with sql_body can replace an existing function but can not be created on it's own
Previous Message Katja Henke 2025-09-07 15:34:46 Re: BUG #19034: Recursive function with sql_body can replace an existing function but can not be created on it's own