X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/77daa60985c94cf4137c8a54681bb89278db8436..c4fa80c6ed2445e1e384455944eb6c4108906cad:/services/api/lib/record_filters.rb?ds=sidebyside diff --git a/services/api/lib/record_filters.rb b/services/api/lib/record_filters.rb index 3786a70990..c009bf537f 100644 --- a/services/api/lib/record_filters.rb +++ b/services/api/lib/record_filters.rb @@ -42,13 +42,16 @@ module RecordFilters if attrs_in != 'any' raise ArgumentError.new("Full text search on individual columns is not supported") end + if operand.is_a? Array + raise ArgumentError.new("Full text search not supported for array operands") + end + # Skip the generic per-column operator loop below attrs = [] # Use to_tsquery since plainto_tsquery does not support prefix - # search. Instead split operand, add ':*' to each word and - # join the words with ' & ' + # search. And, split operand and join the words with ' & ' cond_out << model_class.full_text_tsvector+" @@ to_tsquery(?)" - param_out << operand.split.each {|s| s.concat(':*')}.join(' & ') + param_out << operand.split.join(' & ') end attrs.each do |attr| if !model_class.searchable_columns(operator).index attr.to_s