Function not found while creating partial index

From: Chris Hanks <christopher(dot)m(dot)hanks(at)gmail(dot)com>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Function not found while creating partial index
Date: 2026-02-01 18:56:47
Message-ID: CAK7KUdB48U+Q2MTV1+M+0sXe2sqMhfWF=EAcFtZDFsOyunPzsA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hello! The following series of statements results in an unexpected (to me)
error on 18.0 and 18.1:

CREATE FUNCTION my_function_1(n integer) RETURNS integer AS 'SELECT n'
LANGUAGE SQL IMMUTABLE;
CREATE FUNCTION my_function_2(n integer) RETURNS integer AS 'SELECT
my_function_1(n)' LANGUAGE SQL IMMUTABLE;
CREATE SCHEMA my_schema;
CREATE TABLE my_schema.my_table (my_number integer);
CREATE INDEX my_index ON my_schema.my_table (my_number) WHERE
my_function_2(my_number) = 4;

The CREATE INDEX fails with the following error:

ERROR: function my_function_1(integer) does not exist
LINE 1: SELECT my_function_1(n)
^
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.
QUERY: SELECT my_function_1(n)
CONTEXT: SQL function "my_function_2" during inlining

SQL state: 42883

If I change the definition of my_function_2 to 'SELECT
public.my_function_1(n)' then the index builds successfully, so that's my
current workaround.

Thank you!

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Laurenz Albe 2026-02-02 12:22:53 Re: Function not found while creating partial index
Previous Message Srinath Reddy Sadipiralla 2026-02-01 12:19:07 Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.