Thread: Having difficulties partitionning with jsonb
CREATE TABLE test ( id integer, data jsonb ) Partition by range (( data #>> '{info,time}' ));
CREATE TABLE test_part1 PARTITION OF test
FOR VALUES FROM ('30000') TO ('40000');
FOR VALUES FROM ('30000') TO ('40000');
INSERT INTO test VALUES (1,'{"info":[{"time":39814.0,"value":2}, {"time":39815.0,"value":3}]}');
Is there a way to do this ? or is it in development?
Thanks!
Marc
On Thu, Aug 22, 2019 at 5:41 PM ouellet marc-andre <Ouellet_MarcAndre@hotmail.com> wrote:
CREATE TABLE test ( id integer, data jsonb ) Partition by range (( data #>> '{info,time}' ));CREATE TABLE test_part1 PARTITION OF test
FOR VALUES FROM ('30000') TO ('40000');INSERT INTO test VALUES (1,'{"info":[{"time":39814.0,"value":2}, {"time":39815.0,"value":3}]}');
The partitioning expression yields NULL on the given input.
select '{"info":[{"time":39814.0,"value":2}, {"time":39815.0,"value":3}]}'::jsonb #>> '{info,time}';
?column?
----------
(null)
(1 row)
----------
(null)
(1 row)
Maybe you meant '{info,0,time}', or maybe you meant '{info,1,time}'. Or maybe you meant something else. You will have to explain yourself.
Cheers,
Jeff