BUG #16835: btree index does not work for where clause using 'foo%'

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

BUG #16835: btree index does not work for where clause using 'foo%'

PG Bug reporting form
The following bug has been logged on the website:

Bug reference:      16835
Logged by:          Hongyan (Heather) Zhang
Email address:      [hidden email]
PostgreSQL version: 11.9
Operating system:   aurora postgres 11
Description:        

https://www.postgresql.org/docs/11/indexes-types.html, according to this
page, btree index is supposed to work for where clause col like 'foo%', but
does not work for me. we are on aurora postgres 11, I also tested on
postgres 11, it does not work either.

Reply | Threaded
Open this post in threaded view
|

Re: BUG #16835: btree index does not work for where clause using 'foo%'

Tom Lane-2
PG Bug reporting form <[hidden email]> writes:
> https://www.postgresql.org/docs/11/indexes-types.html, according to this
> page, btree index is supposed to work for where clause col like 'foo%', but
> does not work for me. we are on aurora postgres 11, I also tested on
> postgres 11, it does not work either.

As the manual explains, that will not work by default unless your
database locale is C (which is an uncommon default nowadays).

It's also possible that Aurora has changed something that keeps
it from working, but I'd investigate the locale angle first.

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

Zhang, Hongyan

Thanks, Tom.

Locale is en_US.UTF-8.

 

Is there plan to alter that behavior to allow index in non C locale?

 

From: Tom Lane <[hidden email]>
Date: Friday, January 22, 2021 at 10:52 AM
To: "Zhang, Hongyan" <[hidden email]>
Cc: "[hidden email]" <[hidden email]>
Subject: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

 

**** External Email - Use Caution ****

PG Bug reporting form <[hidden email]> writes:
> https://www.postgresql.org/docs/11/indexes-types.html, according to this
> page, btree index is supposed to work for where clause col like 'foo%', but
> does not work for me. we are on aurora postgres 11, I also tested on
> postgres 11, it does not work either.

As the manual explains, that will not work by default unless your
database locale is C (which is an uncommon default nowadays).

It's also possible that Aurora has changed something that keeps
it from working, but I'd investigate the locale angle first.

regards, tom lane



NOTICE TO RECIPIENT OF INFORMATION:

This e-mail may contain confidential or privileged information. If you think you have received this e-mail in error, please advise the sender by reply e-mail and then delete this e-mail immediately.

This e-mail may also contain protected health information (PHI) with information about sensitive medical conditions, including, but not limited to, treatment for substance use disorders, behavioral health, HIV/AIDS, or pregnancy. This type of information may be protected by various federal and/or state laws which prohibit any further disclosure without the express written consent of the person to whom it pertains or as otherwise permitted by law. Any unauthorized further disclosure may be considered a violation of federal and/or state law. A general authorization for the release of medical or other information may NOT be sufficient consent for release of this type of information.

Thank you, Aetna

Reply | Threaded
Open this post in threaded view
|

Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

luis.roberto
De: "Zhang, Hongyan" <[hidden email]>
Para: "Tom Lane" <[hidden email]>
Cc: "pgsql-bugs" <[hidden email]>
Enviadas: Sexta-feira, 22 de janeiro de 2021 16:07:22
Assunto: Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

Thanks, Tom.

Locale is en_US.UTF-8.

 

Is there plan to alter that behavior to allow index in non C locale?

 


According to documentation:  "However, if your database does not use the C locale you will need to create the index with a special operator class to support indexing of pattern-matching queries;"

So you'll have to create the index with a specific operator class.

You can use:.

CREATE INDEX tbl_col_text_pattern_ops_idx ON tbl(col text_pattern_ops) [1]


[1] https://stackoverflow.com/questions/1566717/postgresql-like-query-performance-variations
Reply | Threaded
Open this post in threaded view
|

Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

Zhang, Hongyan

Thanks, Luis

 

From: "[hidden email]" <[hidden email]>
Date: Friday, January 22, 2021 at 1:28 PM
To: "Zhang, Hongyan" <[hidden email]>
Cc: Tom Lane <[hidden email]>, pgsql-bugs <[hidden email]>
Subject: Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

 

**** External Email - Use Caution ****


De: "Zhang, Hongyan" <[hidden email]>
Para: "Tom Lane" <[hidden email]>
Cc: "pgsql-bugs" <[hidden email]>
Enviadas: Sexta-feira, 22 de janeiro de 2021 16:07:22
Assunto: Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'

 

Thanks, Tom.

Locale is en_US.UTF-8.

 

Is there plan to alter that behavior to allow index in non C locale?

 

 

According to documentation:  "However, if your database does not use the C locale you will need to create the index with a special operator class to support indexing of pattern-matching queries;"

 

So you'll have to create the index with a specific operator class.

 

You can use:.

 

CREATE INDEX tbl_col_text_pattern_ops_idx ON tbl(col text_pattern_ops) [1]

 

 



NOTICE TO RECIPIENT OF INFORMATION:

This e-mail may contain confidential or privileged information. If you think you have received this e-mail in error, please advise the sender by reply e-mail and then delete this e-mail immediately.

This e-mail may also contain protected health information (PHI) with information about sensitive medical conditions, including, but not limited to, treatment for substance use disorders, behavioral health, HIV/AIDS, or pregnancy. This type of information may be protected by various federal and/or state laws which prohibit any further disclosure without the express written consent of the person to whom it pertains or as otherwise permitted by law. Any unauthorized further disclosure may be considered a violation of federal and/or state law. A general authorization for the release of medical or other information may NOT be sufficient consent for release of this type of information.

Thank you, Aetna