15106: Adds trigram support for "like" queries
authorEric Biagiotti <ebiagiotti@veritasgenetics.com>
Mon, 17 Jun 2019 18:58:17 +0000 (14:58 -0400)
committerEric Biagiotti <ebiagiotti@veritasgenetics.com>
Mon, 17 Jun 2019 18:58:17 +0000 (14:58 -0400)
Arvados-DCO-1.1-Signed-off-by: Eric Biagiotti <ebiagiotti@veritasgenetics.com>

services/api/lib/record_filters.rb

index 982a9c30b6cd3a4775b34d7cb11884378fe671a2..c8f024291c2c677c086445b294658a3c221211c0 100644 (file)
@@ -44,9 +44,9 @@ module RecordFilters
 
       cond_out = []
 
-      if attrs_in == 'any' && operator.casecmp('ilike') && (operand.is_a? String) && operand.match('^[%].*[%]$')
+      if attrs_in == 'any' && (operator.casecmp('ilike').zero? || operator.casecmp('like').zero?) && (operand.is_a? String) && operand.match('^[%].*[%]$')
         # Trigram index search
-        cond_out << model_class.full_text_trgm + " ilike ?"
+        cond_out << model_class.full_text_trgm + " #{operator} ?"
         param_out << operand
         # Skip the generic per-column operator loop below
         attrs = []