BUG #16835: btree index does not work for where clause using 'foo%'
The following bug has been logged on the website:
Bug reference: 16835
Logged by: Hongyan (Heather) Zhang
Email address: zhangh3@aetna.com
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.
PG Bug reporting form <noreply@postgresql.org> 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
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 <tgl@sss.pgh.pa.us>
Date: Friday, January 22, 2021 at 10:52 AM
To: "Zhang, Hongyan" <ZhangH3@aetna.com>
Cc: "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Subject: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'
**** External Email - Use Caution ****
PG Bug reporting form <noreply@postgresql.org> writes:
https://www.postgresql.org/docs/11/indexes-types.html<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
De: "Zhang, Hongyan" <ZhangH3@aetna.com>
Para: "Tom Lane" <tgl@sss.pgh.pa.us>
Cc: "pgsql-bugs" <pgsql-bugs@lists.postgresql.org>
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]https://stackoverflow.com/questions/1566717/postgresql-like-query-performance-variations
[1]: https://stackoverflow.com/questions/1566717/postgresql-like-query-performance-variations
Thanks, Luis
From: "luis.roberto@siscobra.com.br" <luis.roberto@siscobra.com.br>
Date: Friday, January 22, 2021 at 1:28 PM
To: "Zhang, Hongyan" <ZhangH3@aetna.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-bugs <pgsql-bugs@lists.postgresql.org>
Subject: Re: [EXTERNAL] Re: BUG #16835: btree index does not work for where clause using 'foo%'
**** External Email - Use Caution ****
________________________________
De: "Zhang, Hongyan" <ZhangH3@aetna.com>
Para: "Tom Lane" <tgl@sss.pgh.pa.us>
Cc: "pgsql-bugs" <pgsql-bugs@lists.postgresql.org>
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]https://stackoverflow.com/questions/1566717/postgresql-like-query-performance-variations<https://stackoverflow.com/questions/1566717/postgresql-like-query-performance-variations>
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