Re: How to build a btree index with integer values on jsonb data? - Mailing list pgsql-general

From Laurenz Albe
Subject Re: How to build a btree index with integer values on jsonb data?
Date
Msg-id 750facc26efc79b1e44836ea1c3d985a9577f80a.camel@cybertec.at
Whole thread Raw
In response to How to build a btree index with integer values on jsonb data?  (Johann Spies <johann.spies@gmail.com>)
Responses Re: How to build a btree index with integer values on jsonb data?  (Johann Spies <johann.spies@gmail.com>)
List pgsql-general
Johann Spies wrote:
> How can I transform the following definition to index pubyear as
> integer and not text?
> 
> CREATE INDEX pubyear_idx
>     ON some_table_where_data_field_is_of_type_jsonb USING btree
>     ((((((data -> 'REC'::text) -> 'static_data'::text) ->
> 'summary'::text) -> 'pub_info'::text) ->> '@pubyear'::text) COLLATE
> pg_catalog."default");
> 
> While I can cast the value in a SELECT statement to integer I have
> been able to do the same while creating the index.

Replace

  COLLATE pg_catalog."default"

with

  ::integer

> Why btree index?  I want to do queries like
> 
> select stuff from sometable where pubyear between 2015 and 2018;

Because b-tree indexes are perfect for >= and <=.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com



pgsql-general by date:

Previous
From: Ravi Krishna
Date:
Subject: Re: Limitting full join to one match
Next
From: Laurenz Albe
Date:
Subject: Re: n_mod_since_analyze