class DB::Postgres::Connection

This implements the interface between the underlying

Public Class Methods

new(**options) click to toggle source
Calls superclass method
# File lib/db/postgres/connection.rb, line 32
def initialize(**options)
        @native = Native::Connection.connect(**options)
        
        super()
end

Public Instance Methods

append_identifier(value, buffer = String.new) click to toggle source
# File lib/db/postgres/connection.rb, line 67
def append_identifier(value, buffer = String.new)
        case value
        when Array
                first = true
                value.each do |part|
                        buffer << '.' unless first
                        first = false
                        
                        buffer << @native.escape_identifier(part)
                end
        else
                buffer << @native.escape_identifier(value)
        end
        
        return buffer
end
append_literal(value, buffer = String.new) click to toggle source
# File lib/db/postgres/connection.rb, line 50
def append_literal(value, buffer = String.new)
        case value
        when Numeric
                buffer << value.to_s
        when TrueClass
                buffer << 'TRUE'
        when FalseClass
                buffer << 'FALSE'
        when nil
                buffer << 'NULL'
        else
                append_string(value, buffer)
        end
        
        return buffer
end
append_string(value, buffer = String.new) click to toggle source
# File lib/db/postgres/connection.rb, line 44
def append_string(value, buffer = String.new)
        buffer << @native.escape_literal(value)
        
        return buffer
end
close() click to toggle source
Calls superclass method
# File lib/db/postgres/connection.rb, line 38
def close
        @native.close
        
        super
end
key_column(name = 'id', primary: true, null: false) click to toggle source
# File lib/db/postgres/connection.rb, line 84
def key_column(name = 'id', primary: true, null: false)
        buffer = String.new
        
        append_identifier(name, buffer)
        
        if primary
                buffer << " BIGSERIAL"
        else
                buffer << " BIGINT"
        end
        
        if primary
                buffer << " PRIMARY KEY"
        elsif !null
                buffer << " NOT NULL"
        end
        
        return buffer
end
next_result() click to toggle source
# File lib/db/postgres/connection.rb, line 114
def next_result
        @native.next_result
end
send_query(statement) click to toggle source
# File lib/db/postgres/connection.rb, line 108
def send_query(statement)
        @native.discard_results
        
        @native.send_query(statement)
end
status() click to toggle source
# File lib/db/postgres/connection.rb, line 104
def status
        @native.status
end