From: Noah Misch <noah@leadboat.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Ronan Dunklau <ronan.dunklau@aiven.io>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Subject: Re: Converting contrib SQL functions to new style
Date: Tue, 7 Jan 2025 18:52:33 -0800
Message-ID: <20250108025233.12.nmisch@google.com> (raw)
In-Reply-To: <Z33joDRv_r_gJSd9@paquier.xyz>
References: <3395418.1618352794@sss.pgh.pa.us>
<3133933.1730855116@sss.pgh.pa.us>
<ZysEEDZqsnP7GTKA@paquier.xyz>
<5829980.DvuYhMxLoT@aivenlaptop>
<ZywSnWzXskAxSDew@paquier.xyz>
<ZzMSJkiNZhimjXWx@paquier.xyz>
<20250106190428.ec.nmisch@google.com>
<Z33joDRv_r_gJSd9@paquier.xyz>
On Wed, Jan 08, 2025 at 11:32:00AM +0900, Michael Paquier wrote:
> 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.
> --- a/contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql
> +++ b/contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql
> @@ -9,5 +9,5 @@ RETURNS SETOF RECORD
> LANGUAGE SQL PARALLEL SAFE
> BEGIN ATOMIC
> SELECT blkno, pg_freespace($1, blkno) AS avail
> - FROM generate_series(0, pg_relation_size($1) / current_setting('block_size')::bigint - 1) AS blkno;
> + FROM generate_series(0::bigint, pg_relation_size($1) / current_setting('block_size'::text)::bigint - 1::bigint) AS blkno;
> END;
It's more optimal to write '0'::bigint. That generates a CONST node, whereas
0::bigint generates a FUNCEXPR calling the cast function. No other concerns.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: noah@leadboat.com, michael@paquier.xyz, ronan.dunklau@aiven.io, tgl@sss.pgh.pa.us, peter.eisentraut@enterprisedb.com
Subject: Re: Converting contrib SQL functions to new style
In-Reply-To: <20250108025233.12.nmisch@google.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox