Inconsistent docs for the returned type of the ->> operator
(1.1) By PChemGuy on 2024-06-02 06:54:10 edited from 1.0 [source]
The section "JSON Functions And Operators - 4.9" states that "The ->> operator returns an SQL TEXT, INTEGER, REAL, or NULL value". At the same time, the section "SQL Language Expressions - 2" states that "the -> and ->> extract operators which evaluate to either NULL or a text value".
(2.3) By Adrian Ho (lexfiend) on 2024-06-03 16:20:09 edited from 2.2 in reply to 1.1 [link] [source]
the section "SQL Language Expressions - 2" states that "the -> and ->> extract operators which evaluate to either NULL or a text value".
Where did you read this? I see instead:
The result of any binary operator is either a numeric value or NULL, except for the
||
concatenation operator, and the->
and->>
extract operators which can return values of any type.
(Though if I wanted to nitpick, ->
can only return a TEXT value or NULL, as stated in the first link you posted.)
(3.2) By PChemGuy on 2024-06-04 05:28:32 edited from 3.1 in reply to 2.3 [link] [source]
Well, apparently one of the devs has fixed the docs after my post.
As you stated, this edit ia still not consistent with the JSON library docs stating that ->> may return any [SQLite] type, but not ->, which "returns a text JSON representation of the selected subcomponent or NULL if that subcomponent does not exist". And I would disagree about nitpicking: AFAICT, this is THE difference that sets the two operators apart, and the reason why there are two operators, not one.