Skip to content

Allow underscores in full text search query

Heinrich Lee Yu requested to merge 381301-fix-text-search-regression into master

What does this MR do and why?

This fixes a regression introduced in !101565 (merged).

Previously, we were able to search for paths with underscores:

gitlabhq_development=# SELECT websearch_to_tsquery('english', 'browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb');
                            websearch_to_tsquery
-----------------------------------------------------------------------------
 'browser' & 'ui/5_package/package_registry/maven/maven_group_level_spec.rb'
(1 row)

With that MR, we built the tsquery ourselves and it ended up being unintentionally split by underscore:

[1] pry(main)> Issue.send(:build_tsquery, "browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb", []).expr
=> "browser:* & ui/5:* & package/package:* & registry/maven/maven:* & group:* & level:* & spec.rb:*"

After this MR:

[1] pry(main)> Issue.send(:build_tsquery, "browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb", []).expr
=> "browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb:*"

This will result in the same tsquery as before:

gitlabhq_development=# SELECT to_tsquery('english', 'browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb:*');
                                   to_tsquery
---------------------------------------------------------------------------------
 'browser':* & 'ui/5_package/package_registry/maven/maven_group_level_spec.rb':*
(1 row)

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #381301 (closed)

Edited by Heinrich Lee Yu

Merge request reports