Merci pour cette information : 'security define' que je n'avais pas vu ( http://traduc.postgresqlfr.org/pgsql-8.0.4-fr/sql-createfunction.html )
Par contre, je m'excuse car 'create replace function' ne réinitialise pas les droits d'accès : j'ai fait l'erreur de faire 'drop type ... cascade' en amont de mon script ... ce qui supprime la fonction en cascade et donc quand je lance 'create or replace function ' les droits d'accès sont normallement null comme toute nouvelle fonction créée.
Alban