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 (tags jsonb);
insert into test values
('{"name": "NoName", "brand": "NoName", "amenity": "fuel", "wheelchair": "yes", "opening_hours": "Mo-Su,PH 07:00-24:00"}'),
(null);
CREATE TABLE
INSERT 0 2
select
jsonb_build_object(
'addInfo',
jsonb_build_object(
'name',
tags ->> 'name',
'brand',
tags ->> 'brand',
'amenity',
tags ->> 'amenity'
)
)
from
test
where tags notnull;
select
jsonb_build_object(
'addInfo',
jsonb_build_object(
'name',
e.name,
'brand',
e.brand,
'amenity',
e.amenity
)
)
from
test t
cross join jsonb_to_record(tags) as e(name text, brand text, amenity text)
where t.tags notnull;
jsonb_build_object |
---|
{"addInfo": {"name": "NoName", "brand": "NoName", "amenity": "fuel"}} |
SELECT 1
jsonb_build_object |
---|
{"addInfo": {"name": "NoName", "brand": "NoName", "amenity": "fuel"}} |
SELECT 1