Thread: jsonb_delete not documented
The new function jsonb_delete does not appear to be documented. Is that intentional? The only thing that's documented is the #- operator for jsonb_delete_path. But jsonb_delete(jsonb, text) and jsonb_delete(jsonb, int) are not documented. (Those don't have an operator.)
Peter Eisentraut <peter_e@gmx.net> writes: > The new function jsonb_delete does not appear to be documented. Is that > intentional? > The only thing that's documented is the #- operator for > jsonb_delete_path. But jsonb_delete(jsonb, text) and > jsonb_delete(jsonb, int) are not documented. (Those don't have an > operator.) Yeah they do ... regression=# \df+ jsonb_delete List of functions Schema | Name | Result data type | Argument data types | Type | Security | Volatility | Owner |Language | Source code | Description ------------+--------------+------------------+---------------------+--------+----------+------------+----------+----------+------------------+------------------------------pg_catalog |jsonb_delete | jsonb | jsonb, integer | normal | invoker | immutable | postgres | internal | jsonb_delete_idx| implementation of - operatorpg_catalog | jsonb_delete | jsonb | jsonb, text | normal| invoker | immutable | postgres | internal | jsonb_delete | implementation of - operator (2 rows) regression=# \do+ - ...pg_catalog | - | jsonb | integer | jsonb | pg_catalog.jsonb_delete| delete array elementpg_catalog | - | jsonb | text | jsonb | pg_catalog.jsonb_delete | delete object field ... regards, tom lane
On 12/6/15 9:51 PM, Tom Lane wrote: > Peter Eisentraut <peter_e@gmx.net> writes: >> The new function jsonb_delete does not appear to be documented. Is that >> intentional? > >> The only thing that's documented is the #- operator for >> jsonb_delete_path. But jsonb_delete(jsonb, text) and >> jsonb_delete(jsonb, int) are not documented. (Those don't have an >> operator.) > > Yeah they do ... > regression=# \do+ - > ... > pg_catalog | - | jsonb | integer | jsonb | pg_catalog.jsonb_delete| delete array element > pg_catalog | - | jsonb | text | jsonb | pg_catalog.jsonb_delete| delete object field > ... I see. The reference from pg_operator to pg_proc is by OID rather than function name, so I didn't find them. Is that because the function is overloaded? It's kind of odd that these are the only operators (at first glance) that are set up like that.
Peter Eisentraut <peter_e@gmx.net> writes: > I see. The reference from pg_operator to pg_proc is by OID rather than > function name, so I didn't find them. Is that because the function is > overloaded? Yeah, I suppose so --- regproc can't resolve overloaded function names. > It's kind of odd that these are the only operators (at > first glance) that are set up like that. I think the customary thing when creating functions meant as operator support is to give them unique names. These weren't done that way ... I wasn't involved, but I wonder whether there was uncertainty as to whether these should be documented as functions or operators. regards, tom lane
On 12/06/2015 10:49 PM, Tom Lane wrote: > Peter Eisentraut <peter_e@gmx.net> writes: >> I see. The reference from pg_operator to pg_proc is by OID rather than >> function name, so I didn't find them. Is that because the function is >> overloaded? > Yeah, I suppose so --- regproc can't resolve overloaded function names. > >> It's kind of odd that these are the only operators (at >> first glance) that are set up like that. > I think the customary thing when creating functions meant as operator > support is to give them unique names. These weren't done that way ... > I wasn't involved, but I wonder whether there was uncertainty as to > whether these should be documented as functions or operators. > > If we want to require that then perhaps we should have a check for it? I don't recall the exact reasoning so many months later, but you're probably right about how it came about. cheers andrew