Re: Converting contrib SQL functions to new style

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Noah Misch <noah@leadboat.com>
Cc: Ronan Dunklau <ronan.dunklau@aiven.io>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2025-01-08T02:32:00Z
Lists: pgsql-hackers

Attachments

On Mon, Jan 06, 2025 at 11:04:28AM -0800, Noah Misch wrote:
> Per postgr.es/m/3489827.1618411777@sss.pgh.pa.us and
> postgr.es/m/1471865.1734212070@sss.pgh.pa.us one requirement for migrating to
> SQL-standard function bodies is removing these inexact-match function and
> operator calls.  Here, one could either write pg_catalog.generate_series or
> make the argument types match exactly.

Thanks for the report.

Tom has used casts for xml2 in 667368fd26de, and also combined some
pg_catalog for schema qualifications in citext for example.  In this
case forcing the data types seems more elegant to me.

What do you think about the attached?
--
Michael

Commits

  1. Use @extschema:name@ notation in contrib transform modules.

  2. pg_freespacemap: Fix declaration of pg_freespace(regclass)

  3. contrib/pageinspect: Use SQL-standard function bodies.

  4. contrib/xml2: Use SQL-standard function bodies.

  5. contrib/citext: Use SQL-standard function bodies.

  6. contrib/earthdistance: Use SQL-standard function bodies.

  7. contrib/lo: Use SQL-standard function bodies

  8. xml2: Add tests for functions xpath_nodeset() and xpath_list()

  9. contrib/lo: Add test for function lo_oid()

  10. pg_freespacemap: Use SQL-standard function bodies

  11. Add @extschema:name@ and no_relocate options to extensions.

  12. Make contrib modules' installation scripts more secure.