Dennis <dennis@xxxxxxxxxx> writes: > The 16.x documentation still says the following: > However, you can explicitly place |pg_catalog| at the end of your search > path if you prefer to have user-defined names override built-in names. It does work that way, for ordinary names. JSON_OBJECT is special because it has special calling syntax (thank you, SQL committee) and the grammar productions for that always resolve it as the built-in function. You could override things by writing explicitly "myschema.json_object(...)" but I imagine you don't want to. I'm not sure if this should be considered a bug or not. It looks like we've gone out of our way to avoid capturing some other comparable cases such as OVERLAY and SUBSTRING, if they aren't actually written with special syntax. Don't know offhand if it's practical to handle JSON_OBJECT similarly, or whether it'd really make sense to have an exception for that. regards, tom lane