Re: Autovacuum analyze can't find C based function

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Thomas Butz <tbutz(at)optitool(dot)de>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Autovacuum analyze can't find C based function
Date: 2018-07-18 13:55:46
Message-ID: 8572.1531922146@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Thomas Butz <tbutz(at)optitool(dot)de> writes:
> While installing Nominatim(OSM geocoding service) I stumbled upon this issue: https://github.com/openstreetmap/Nominatim/issues/1097#issue-341799919
> The function "transliteration" has been properly created during the installation processes according to the following template:
> https://github.com/openstreetmap/Nominatim/blob/v3.1.0/sql/functions.sql#L25

> The strange thing is that i'm able to execute the function while background analyzation of the table "placex" repeatedly fails with the following error:

> 2018-07-17 06:59:35.908 UTC [30641] ERROR: function transliteration(text) does not exist at character 23

In recent PG releases, autovacuum executes stuff under a restrictive
search_path setting (just pg_catalog, in fact). So you need to do
something explicit to reference stuff in other schemas; either schema
qualify the name, or add a "SET search_path" clause to the function
definition. This is good practice anyway: what you're seeing is that this
function fails with any search_path other than the one you use by default.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Keith Hickey 2018-07-18 14:37:49 Re: BUG #15282: Materialized view with transitive TYPE dependency fails refresh using pg_restore and psql
Previous Message Tom Lane 2018-07-18 13:48:51 Re: PostgreSQL :: Catalog Query