class EventSource::Postgres::Get::Last::SelectStatement

Public Class Methods

build(stream_name) click to toggle source
# File lib/event_source/postgres/get/last/select_statement.rb, line 10
def self.build(stream_name)
  new(stream_name)
end

Public Instance Methods

sql() click to toggle source
# 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 = <<-SQL
              SELECT
                id::varchar,
                stream_name::varchar,
                position::int,
                type::varchar,
                global_position::bigint,
                data::varchar,
                metadata::varchar,
                time::timestamp
              FROM
                events
              WHERE
                stream_name = '#{stream_name}'
              ORDER BY
                position DESC
              LIMIT
                1
              ;
            SQL

            logger.debug(tag: :sql) { "Composed select statement (Stream: #{stream_name})" }
            logger.debug(tags: [:data, :sql]) { "Statement: #{statement}" }

            statement
          end