From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | armand pirvu <armand(dot)pirvu(at)gmail(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: jsonb case insensitive search |
Date: | 2017-05-31 19:32:20 |
Message-ID: | CAKFQuwYhOk=FvxzazZeo78NbaAokBBU3neeHocMHL20c4KL5KQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, May 31, 2017 at 12:18 PM, armand pirvu <armand(dot)pirvu(at)gmail(dot)com>
wrote:
>
> For the example mentioned
>
> SELECT *
> FROM cfg_files_data
> WHERE cfg_files_data.show_id = 32
> AND cfg_files_data.file_id = 123
> AND lower((file_data_record ->> 'Company')) = lower('CompuTestSystems');
> ;
>
>
> create index cfg_files_data_record_idx on cfg_files_data (show_id,
> file_id,
>
> lower(file_data_record::text));
>
>
> Not sure why the index is ignored
>
Because "lower((file_data_record ->> 'Company'))" is not the same
as "lower(file_data_record::text)"
> But is is possible to go for a broader search, aka being able to search by
> any key:value , efficient and case insensitive ? What am I missing in
> this picture ?
>
>
Use a trigger to maintain an all lower case copy of the json
file_data_record and use the copy for predicates while using the original
for select-list outputs.
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | armand pirvu | 2017-05-31 20:06:16 | Re: jsonb case insensitive search |
Previous Message | armand pirvu | 2017-05-31 19:18:21 | jsonb case insensitive search |