Class | Sequel::Postgres::Database |
In: |
lib/sequel/adapters/postgres.rb
|
Parent: | Sequel::Database |
Add the primary_keys and primary_key_sequences instance variables, so we can get the correct return values for inserted rows.
# File lib/sequel/adapters/postgres.rb, line 183 183: def initialize(*args) 184: super 185: @primary_keys = {} 186: @primary_key_sequences = {} 187: end
Connects to the database. In addition to the standard database options, using the :encoding or :charset option changes the client encoding for the connection.
# File lib/sequel/adapters/postgres.rb, line 192 192: def connect(server) 193: opts = server_opts(server) 194: conn = Adapter.connect( 195: (opts[:host] unless blank_object?(opts[:host])), 196: opts[:port] || 5432, 197: nil, '', 198: opts[:database], 199: opts[:user], 200: opts[:password] 201: ) 202: if encoding = opts[:encoding] || opts[:charset] 203: if conn.respond_to?(:set_client_encoding) 204: conn.set_client_encoding(encoding) 205: else 206: conn.async_exec("set client_encoding to '#{encoding}'") 207: end 208: end 209: conn.db = self 210: conn.apply_connection_settings 211: conn 212: end
Return instance of Sequel::Postgres::Dataset with the given options.
# File lib/sequel/adapters/postgres.rb, line 215 215: def dataset(opts = nil) 216: Postgres::Dataset.new(self, opts) 217: end
Execute the given SQL with the given args on an available connection.
# File lib/sequel/adapters/postgres.rb, line 220 220: def execute(sql, opts={}, &block) 221: return execute_prepared_statement(sql, opts, &block) if Symbol === sql 222: begin 223: log_info(sql, opts[:arguments]) 224: synchronize(opts[:server]){|conn| conn.execute(sql, opts[:arguments], &block)} 225: rescue => e 226: log_info(e.message) 227: raise_error(e, :classes=>CONVERTED_EXCEPTIONS) 228: end 229: end
Insert the values into the table and return the primary key (if automatically generated).
# File lib/sequel/adapters/postgres.rb, line 233 233: def execute_insert(sql, opts={}) 234: return execute(sql, opts) if Symbol === sql 235: begin 236: log_info(sql, opts[:arguments]) 237: synchronize(opts[:server]) do |conn| 238: conn.execute(sql, opts[:arguments]) 239: insert_result(conn, opts[:table], opts[:values]) 240: end 241: rescue => e 242: log_info(e.message) 243: raise_error(e, :classes=>CONVERTED_EXCEPTIONS) 244: end 245: end