On Wed, May 31, 2017 at 12:18 PM, armand pirvu <armand.pi...@gmail.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.

Reply via email to