Bug: Reverse like-search with '%' not working ---------------------------------------------
Key: CORE-5929 URL: http://tracker.firebirdsql.org/browse/CORE-5929 Project: Firebird Core Issue Type: Bug Affects Versions: 3.0.2 Environment: Windows 64Bit Reporter: Rajko Thon BUG: Reverse like-search with '%' not working I implemented a table containing words and tried to implement a kind of full-text-search-solution similar to that of JirĂ Cincura: "https://www.tabsoverspaces.com/233577-poor-mans-full-text-using-psql-only-on-firebird". Unfortunately, there seems to be a bug if you search with like and '%'. To illustrate the behaviour I created a small sample database. One table: SYS_WORT. Two important columns: WORT and WORT_REV, the latter one containing the reversed word. Indices on: Index SYS_WORT.WORT UC1 unique constraint SYS_WORT.WORT IX1 additional function based index on REVERSE(WORT) SYS_WORT.WORT_REV IX2 index So the first query demonstrates the behaviour hoped for. It gets three of the four rows by using indices UC1(WORT) and IX2(WORT_REV) select w.*, char_length(w.wort) len from sys_wort w where wort like 'heis%en%' or wort_rev like 'greb%sie%' Since a search-term usually has the letters in normal order, we reverse them. But this one does not work as expected and does also not use any indices. So is reverse('%eis%berg') != 'greb%sie%' ? select * from sys_wort where wort like 'Heis%en%' or wort like reverse('%eis%berg') You can find endings of words using index IX2 although, without LIKE and any '%', but with STARTING. select * from sys_wort where wort_rev starting reverse('berg') You can also find the same using the additional index IX1 on REVERSE(WORT). select * from sys_wort where reverse(wort) starting reverse('berg') But like again does not use the index IX1. select * from sys_wort where reverse(wort) like reverse('%berg') So it seems it is not possible to reverse search with like and '%' and using the index at the same time? Seems like an oversight to me. Bug? -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel