Sha256: 321b218cf722c6ef96b1f84d06a2e9d1ea98e8c769ba162ad84caed716653a77
Contents?: true
Size: 976 Bytes
Versions: 32
Compression:
Stored size: 976 Bytes
Contents
# frozen_string_literal: true module PgEventstore class PgConnection < PG::Connection def exec(sql) log(sql, []) super end def exec_params(sql, params, ...) log(sql, params) super end private def log(sql, params) return unless PgEventstore.logger&.debug? sql = sql.gsub(/\$\d+/).each do |matched| value = params[matched[1..].to_i - 1] value = encode_value(value) normalize_value(value) end unless params&.empty? PgEventstore.logger.debug(sql) end def encode_value(value) encoder = type_map_for_queries[value.class] return type_map_for_queries.send(encoder, value).encode(value) if encoder.is_a?(Symbol) type_map_for_queries[value.class]&.encode(value) || value end def normalize_value(value) case value when String "'#{value}'" when NilClass 'NULL' else value end end end end
Version data entries
32 entries across 32 versions & 1 rubygems