On Sun, Jan 3, 2016 at 3:24 PM, Peter Krauss <ppkrauss@gmail.com> wrote: > The usefulness of ->> operator is indisputable, but even with boolean or > numeric values, with good binary internal representation, it returns JSONB > value as text data type. > > The simple (myJSONB->>'myField')::expectedType is not enough because: > > 1) there are no internal optimization, need two-step casting, first > bynary-to-text, them text-to-expectedType. > > 2) if expectedType is not the expected (in the associated jsonb_typeof), > generates an error... The ideal "return NULL" convention is not easy to > implement with usual casting.
@2 looks little bit dangerous. If expected number isn't number, but a text, then I'll expect a exception in all cases.