Postgresql – Special syntax sth.name() in the CREATE FUNCTION statement, what does it mean

plpgsqlpostgresqlstored-procedures

In this SO question about stored procedures in plpgsql, the stored procedure look like sth.name(). I don't know what is the meaning of the prefix sth.

For example:

create or replace function something.function_name()
returns setof record as
$$
-- code
$$ language plpgsql;

Looking in this book in the "Part IV: Programming with PostgreSQL" I have found no mention of this type of creation declaration with a function name in two parts.

In the postgresql documentation, at the create function section, the only similar thing is when they deal about argtype or regtype than could be written in the form: table_name.column_name%TYPE. But it's not related to the name of the function.

So, what is this syntax related to ?

Best Answer

It's the name of a schema.
In other words, a schema-qualified function name. Just like you can schema-qualify tables or views or types or even operators (you just don't have to, normally).

Also learn about the schema search_path.