By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
create table test (jsonb_value json);
insert into test values
('{"en": "value", "ru": "значение"}')
,('{"ru": "значение", "en": "value"}')
,('{"en": 6, "ru": "значение"}')
,('{"en": "", "ru": "значение"}')
,('{"en": "value", "ru": "значение", "fr": "de valuje"}');
5 rows affected
select jsonb_value,
jsonb_value::text ~ '^{"en": "[^"]+", "ru": "[^"]+"}$',
jsonb_value::jsonb::text ~ '^{"en": "[^"]+", "ru": "[^"]+"}$'
from test
jsonb_value | ?column? | ?column? |
---|---|---|
{"en": "value", "ru": "значение"} | t | t |
{"ru": "значение", "en": "value"} | f | t |
{"en": 6, "ru": "значение"} | f | f |
{"en": "", "ru": "значение"} | f | f |
{"en": "value", "ru": "значение", "fr": "de valuje"} | f | f |