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 sometable (id int, data jsonb);
insert into sometable
values
(1,'{"data": [{"type": {"code": "S"}}, {"type": {"code": "aB"}}]}'),
(2,'{"data": [{"type": {"code": "B"}}]}'),
(3,'{"data": [{"type": {"code": "S"}}, {"type": {"code": "B"}}]}');
3 rows affected
select *
from sometable t
where (t.data -> 'data') @> '[{"type": {"code": "B"}}]'
id | data |
---|---|
2 | {"data": [{"type": {"code": "B"}}]} |
3 | {"data": [{"type": {"code": "S"}}, {"type": {"code": "B"}}]} |
select *
from sometable t
where t.data @> '{"data": [{"type": {"code": "B"}}]}'
id | data |
---|---|
2 | {"data": [{"type": {"code": "B"}}]} |
3 | {"data": [{"type": {"code": "S"}}, {"type": {"code": "B"}}]} |