Re: Cast jsonb to numeric, int, float, bool
Teodor Sigaev <teodor@sigaev.ru>
From: Teodor Sigaev <teodor@sigaev.ru>
To: Aleksander Alekseev <a.alekseev@postgrespro.ru>,
David Steele <david@pgmasters.net>
Cc: Nikita Glukhov <n.gluhov@postgrespro.ru>,
Darafei Praliaskouski <me@komzpa.net>,
Anastasia Lubennikova <a.lubennikova@postgrespro.ru>,
pgsql-hackers@lists.postgresql.org
Date: 2018-03-28T08:35:06Z
Lists: pgsql-hackers
> I think, it should support from/to numeric/bool/text only. If we want to have
> casts to from numeric to other numeric types then it should be full set (int2,
> int4, int8, float4, float8).
I was too optimistic about casting to/from text. It already exists and it works
by differ way from suggested casts:
1) select '"foo"'::jsonb::text; -> "foo" // with ""
2) select '123'::jsonb::text; -> 123
3) select '123'::jsonb::int4; -> 123
Seems, sometime it would be desirable result in 1) as just
'foo' without "" decoration, but we cannot have 2 different explicit casts for
the same types. So, I withdraw objections about text casting, but I still
believe that we need one of two variants:
1) numeric/bool
2) bool, numeric/all variants of numeric types
--
Teodor Sigaev E-mail: teodor@sigaev.ru
WWW: http://www.sigaev.ru/
Commits
-
Add casts from jsonb
- c0cbe00fee6d 11.0 landed