From 00327c359d575cf38675d88256cb08fc3fc5bc80 Mon Sep 17 00:00:00 2001 From: Jaanus Sellin Date: Mon, 13 Nov 2023 08:42:19 +0200 Subject: [PATCH] chore: optimize sql query to not concatenate (#5321) --- .../feature-toggle-strategies-store.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/lib/features/feature-toggle/feature-toggle-strategies-store.ts b/src/lib/features/feature-toggle/feature-toggle-strategies-store.ts index be3902ea71..3e5a8e8142 100644 --- a/src/lib/features/feature-toggle/feature-toggle-strategies-store.ts +++ b/src/lib/features/feature-toggle/feature-toggle-strategies-store.ts @@ -562,13 +562,21 @@ class FeatureStrategiesStore implements IFeatureStrategiesStore { ]); } if (hasHalfTag) { - const tagParameter = normalizedHalfTag.map((tag) => `%${tag}%`); - tagQuery.orWhereRaw( - `(?? || ':' || ??) ILIKE ANY (ARRAY[${tagParameter - .map(() => '?') - .join(',')}])`, - ['tag_type', 'tag_value', ...tagParameter], + const tagParameters = normalizedHalfTag.map( + (tag) => `%${tag}%`, ); + const tagQueryParameters = normalizedHalfTag + .map(() => '?') + .join(','); + tagQuery + .orWhereRaw( + `(??) ILIKE ANY (ARRAY[${tagQueryParameters}])`, + ['tag_type', ...tagParameters], + ) + .orWhereRaw( + `(??) ILIKE ANY (ARRAY[${tagQueryParameters}])`, + ['tag_value', ...tagParameters], + ); } query = query.where((builder) => {