From b38a1309f7740c457037df1ad8354b0d5e81894d Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 19 Aug 2015 09:27:47 +1000 Subject: [PATCH] FIX: add more quoting to avoid invalid terms --- lib/search.rb | 2 +- spec/components/search_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/search.rb b/lib/search.rb index 0b3bf5328c4..25840cd6780 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -481,7 +481,7 @@ class Search t.split(/[\)\(&']/)[0] end.compact! - query = Post.sanitize(all_terms.map {|t| "#{PG::Connection.escape_string(t)}:*"}.join(" #{joiner} ")) + query = Post.sanitize(all_terms.map {|t| "'#{PG::Connection.escape_string(t)}':*"}.join(" #{joiner} ")) "TO_TSQUERY(#{locale || query_locale}, #{query})" end diff --git a/spec/components/search_spec.rb b/spec/components/search_spec.rb index 498887c115b..a74bffee1b9 100644 --- a/spec/components/search_spec.rb +++ b/spec/components/search_spec.rb @@ -447,7 +447,7 @@ describe Search do it 'can parse complex strings using ts_query helper' do str = " grigio:babel deprecated? " - str << "page page on Atmosphere](https://atmospherejs.com/grigio/babel)xxx: aaa'\"bbb" + str << "page page on Atmosphere](https://atmospherejs.com/grigio/babel)xxx: aaa.js:222 aaa'\"bbb" ts_query = Search.ts_query(str, "simple") Post.exec_sql("SELECT to_tsvector('bbb') @@ " << ts_query)