Rob Sargent <robjsargent@xxxxxxxxx> writes: > I cannot create a plain sql function unless the search_path covers any > table mentioned. Not the case when using plpgsql - no path needed. Oh, one of the things that's quite a lot different is the checking applied at function creation time ;-). For a SQL function, by default we'll try to parse and analyze the body, so any unknown tables will draw an error. plpgsql doesn't go further than a very crude syntax check. If you don't like that, you can set check_function_bodies = off while creating your SQL functions. But in any case, it's only related to what happens at execution if the search path is the same. regards, tom lane