Thread

  1. [PATCH v8.1 1/6] Handle pg_get_ruledef default args in system_functions.sql

    Mark Wong <markwkm@gmail.com> — 2025-12-08T23:41:07Z

    Modernize pg_get_ruledef to use proargdefaults for optional pretty
    argument.
    ---
     src/backend/utils/adt/ruleutils.c | 18 ------------------
     src/include/catalog/pg_proc.dat   |  8 +++-----
     2 files changed, 3 insertions(+), 23 deletions(-)
    
    diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
    index 88de5c0481c..76705db3dac 100644
    --- a/src/backend/utils/adt/ruleutils.c
    +++ b/src/backend/utils/adt/ruleutils.c
    @@ -569,24 +569,6 @@ static void get_json_table_nested_columns(TableFunc *tf, JsonTablePlan *plan,
      */
     Datum
     pg_get_ruledef(PG_FUNCTION_ARGS)
    -{
    -	Oid			ruleoid = PG_GETARG_OID(0);
    -	int			prettyFlags;
    -	char	   *res;
    -
    -	prettyFlags = PRETTYFLAG_INDENT;
    -
    -	res = pg_get_ruledef_worker(ruleoid, prettyFlags);
    -
    -	if (res == NULL)
    -		PG_RETURN_NULL();
    -
    -	PG_RETURN_TEXT_P(string_to_text(res));
    -}
    -
    -
    -Datum
    -pg_get_ruledef_ext(PG_FUNCTION_ARGS)
     {
     	Oid			ruleoid = PG_GETARG_OID(0);
     	bool		pretty = PG_GETARG_BOOL(1);
    diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
    index be157a5fbe9..49e92204bd6 100644
    --- a/src/include/catalog/pg_proc.dat
    +++ b/src/include/catalog/pg_proc.dat
    @@ -3981,9 +3981,6 @@
     { oid => '6469', descr => 'source text of a property graph',
       proname => 'pg_get_propgraphdef', provolatile => 's', prorettype => 'text',
       proargtypes => 'oid', prosrc => 'pg_get_propgraphdef' },
    -{ oid => '1573', descr => 'source text of a rule',
    -  proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text',
    -  proargtypes => 'oid', prosrc => 'pg_get_ruledef' },
     { oid => '1640', descr => 'select statement of a view',
       proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
       prorettype => 'text', proargtypes => 'text',
    @@ -8565,9 +8562,10 @@
       prosrc => 'macaddr8_send' },
     
     # System-view support functions with pretty-print option
    -{ oid => '2504', descr => 'source text of a rule with pretty-print option',
    +{ oid => '2504', descr => 'source text of a rule',
       proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text',
    -  proargtypes => 'oid bool', prosrc => 'pg_get_ruledef_ext' },
    +  proargtypes => 'oid bool', proargnames => '{rule,pretty}',
    +  proargdefaults => '{false}', prosrc => 'pg_get_ruledef' },
     { oid => '2505',
       descr => 'select statement of a view with pretty-print option',
       proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
    -- 
    2.53.0
    
    
    --AcCatzXgbvyipyEy
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: attachment;
    	filename=v8.1-0002-Handle-pg_get_viewdef-default-args-in-system_fu.patch