Module: SearchCop::Visitors::Postgres

Defined in:
lib/search_cop/visitors/postgres.rb

Defined Under Namespace

Classes: FulltextQuery

Instance Method Summary collapse

Instance Method Details

#visit_SearchCopGrammar_Attributes_Collection(node) ⇒ Object



27
28
29
# File 'lib/search_cop/visitors/postgres.rb', line 27

def visit_SearchCopGrammar_Attributes_Collection(node)
  node.attributes.collect { |attribute| visit attribute }.join(" || ' ' || ")
end

#visit_SearchCopGrammar_Nodes_FulltextExpression(node) ⇒ Object



31
32
33
34
35
# File 'lib/search_cop/visitors/postgres.rb', line 31

def visit_SearchCopGrammar_Nodes_FulltextExpression(node)
  dictionary = node.collection.options[:dictionary] || "simple"

  "to_tsvector(#{visit dictionary}, #{visit node.collection}) @@ to_tsquery(#{visit dictionary}, #{visit FulltextQuery.new(connection).visit(node.node)})"
end

#visit_SearchCopGrammar_Nodes_Matches(node) ⇒ Object



23
24
25
# File 'lib/search_cop/visitors/postgres.rb', line 23

def visit_SearchCopGrammar_Nodes_Matches(node)
  "#{visit node.left} ILIKE #{visit node.right}"
end