Class: EventSource::Postgres::Get::Last::SelectStatement

Inherits:
Object
  • Object
show all
Includes:
Log::Dependency
Defined in:
lib/event_source/postgres/get/last/select_statement.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(stream_name) ⇒ Object



10
11
12
# File 'lib/event_source/postgres/get/last/select_statement.rb', line 10

def self.build(stream_name)
  new(stream_name)
end

Instance Method Details

#sqlObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/event_source/postgres/get/last/select_statement.rb', line 14

def sql
  logger.trace(tag: :sql) { "Composing select statement (Stream: #{stream_name})" }

  statement = "    SELECT\n      id::varchar,\n      stream_name::varchar,\n      position::int,\n      type::varchar,\n      global_position::bigint,\n      data::varchar,\n      metadata::varchar,\n      time::timestamp\n    FROM\n      events\n    WHERE\n      stream_name = '\#{stream_name}'\n    ORDER BY\n      position DESC\n    LIMIT\n      1\n    ;\n  SQL\n\n  logger.debug(tag: :sql) { \"Composed select statement (Stream: \#{stream_name})\" }\n  logger.debug(tags: [:data, :sql]) { \"Statement: \#{statement}\" }\n\n  statement\nend\n"