Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
queries: make glob search case sensitive
Baptiste Daroussin committed 1 year ago
commit d908ee677db6b9a233cc241cd2e45b910010d640
parent e955718
2 files changed +5 -5
modified libpkg/pkgdb_query.c
@@ -109,12 +109,12 @@ pkgdb_get_pattern_query(const char *pattern, match_t match)
				comp = "WHERE (categories.name || substr(origin, instr(origin, '/')) || '@' || flavor GLOB ?1)";
		} else  {
			if (checkorigin == NULL)
-
				comp = " WHERE (p.name GLOB ?1 COLLATE NOCASE "
-
					"OR p.name || '-' || version GLOB ?1 COLLATE NOCASE)";
+
				comp = " WHERE (lower(p.name) GLOB lower(?1)  "
+
					"OR lower(p.name || '-' || version) GLOB lower(?1) )";
			else if (checkflavor == NULL)
-
				comp = " WHERE (origin GLOB ?1 COLLATE NOCASE OR categories.name || substr(origin, instr(origin, '/')) GLOB ?1 COLLATE NOCASE)";
+
				comp = " WHERE (lower(origin) GLOB lower(?1) OR lower(categories.name || substr(origin, instr(origin, '/'))) GLOB lower(?1))";
			else
-
				comp = "WHERE (categories.name || substr(origin, instr(origin, '/')) || '@' || flavor GLOB ?1 COLLATE NOCASE)";
+
				comp = "WHERE (lower(categories.name || substr(origin, instr(origin, '/')) || '@' || flavor) GLOB lower(?1))";
		}
		break;
	case MATCH_REGEX:
modified libpkg/repo/binary/query.c
@@ -387,7 +387,7 @@ pkg_repo_binary_search_how(match_t match)
		if (pkgdb_case_sensitive())
			how = "%s GLOB ?1";
		else
-
			how = "%s GLOB ?1 COLLATE NOCASE";
+
			how = "lower(%s) GLOB lower(?1)";
		break;
	case MATCH_REGEX:
		how = "%s REGEXP ?1";