Re: Function not found while creating partial index

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: Chris Hanks <christopher(dot)m(dot)hanks(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: Function not found while creating partial index
Date: 2026-02-02 12:22:53
Message-ID: 10b34e0a0963e01bec1a34200eadc0f024f598cd.camel@cybertec.at
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Sun, 2026-02-01 at 13:56 -0500, Chris Hanks wrote:
> 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.

That's not the workaround, that's the proper solution.

See the documentation (https://www.postgresql.org/docs/current/sql-createindex.html)

> While CREATE INDEX is running, the search_path is temporarily changed to pg_catalog, pg_temp.

Yours,
Laurenz Albe

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Álvaro Herrera 2026-02-02 19:22:17 Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.
Previous Message Chris Hanks 2026-02-01 18:56:47 Function not found while creating partial index