Class: GmailSearchSyntax::PostgresVisitor

Inherits:
SQLiteVisitor show all
Defined in:
lib/gmail_search_syntax/sql_visitor.rb

Instance Method Summary collapse

Methods inherited from SQLiteVisitor

#initialize, #to_query, #visit

Constructor Details

This class inherits a constructor from GmailSearchSyntax::SQLiteVisitor

Instance Method Details

#visit_relative_date_operator(node) ⇒ Object

Override to use PostgreSQL’s NOW() and INTERVAL syntax



484
485
486
487
488
489
490
491
492
493
494
495
# File 'lib/gmail_search_syntax/sql_visitor.rb', line 484

def visit_relative_date_operator(node)
  value = node.value.is_a?(String) ? node.value : node.value.value
  interval = parse_relative_time_postgres(value)
  @query.add_param(interval)

  case node.name
  when "older_than"
    @query.add_condition("m0.internal_date < (NOW() - ?::interval)")
  when "newer_than"
    @query.add_condition("m0.internal_date > (NOW() - ?::interval)")
  end
end