Add support for case-sensitive search for conan packages
What does this MR do and why?
Add support for case-sensitive search for conan packages.
References
Full support on conan search queries with * (#507340 - closed)
Screenshots or screen recordings
How to set up and validate locally
Main idea: Create two packages with different names: 'FooBar' and 'foobar' and perform a search with and without --case-sensitive option.
Prerequisites
-
Create two conan packages in
rails console.def fixture_file_upload(*args, **kwargs) Rack::Test::UploadedFile.new(*args, **kwargs) end p = Project.first FactoryBot.create(:conan_package, name: 'foobar', project: p) FactoryBot.create(:conan_package, name: 'FooBar', project: p) -
Add a remote for your project to conan cli docs.
-
Add credentials to the remote docs.
Search package
Without --case-sensitive
$ conan search foobar -r local
Returns two packages
$ conan search FooBar -r local
Returns two packages
$ conan search 'Foo*' -r local
Returns two packages
With --case-sensitive
$ conan search foobar -r local --case-sensitive
Returns only foobar package
$ conan search FooBar -r local --case-sensitive
Returns only FooBar package
$ conan search 'Foo*' -r local --case-sensitive
Returns only FooBar package
Database analysis
SELECT "packages_packages".*
FROM "packages_packages"
WHERE "packages_packages"."package_type" = 3
AND "packages_packages"."project_id" = XXX
AND "packages_packages"."status" IN (0,
1,
5)
AND "packages_packages"."name" LIKE 'XXX%'
ORDER BY "packages_packages"."created_at" DESC
LIMIT 500;
https://console.postgres.ai/gitlab/gitlab-production-main/sessions/42902/commands/131334
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #507340 (closed)
