Class | Sequel::Postgres::Database |
In: |
lib/sequel_core/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_core/adapters/postgres.rb, line 186 186: def initialize(*args) 187: super 188: @primary_keys = {} 189: @primary_key_sequences = {} 190: 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_core/adapters/postgres.rb, line 195 195: def connect(server) 196: opts = server_opts(server) 197: conn = Adapter.connect( 198: (opts[:host] unless opts[:host].blank?), 199: opts[:port] || 5432, 200: nil, '', 201: opts[:database], 202: opts[:user], 203: opts[:password] 204: ) 205: if encoding = opts[:encoding] || opts[:charset] 206: if conn.respond_to?(:set_client_encoding) 207: conn.set_client_encoding(encoding) 208: else 209: conn.async_exec("set client_encoding to '#{encoding}'") 210: end 211: end 212: conn.db = self 213: conn.apply_connection_settings 214: conn 215: end
Return instance of Sequel::Postgres::Dataset with the given options.
# File lib/sequel_core/adapters/postgres.rb, line 218 218: def dataset(opts = nil) 219: Postgres::Dataset.new(self, opts) 220: end
Execute the given SQL with the given args on an available connection.
# File lib/sequel_core/adapters/postgres.rb, line 223 223: def execute(sql, opts={}, &block) 224: return execute_prepared_statement(sql, opts, &block) if Symbol === sql 225: begin 226: log_info(sql, opts[:arguments]) 227: synchronize(opts[:server]){|conn| conn.execute(sql, opts[:arguments], &block)} 228: rescue => e 229: log_info(e.message) 230: raise_error(e, :classes=>CONVERTED_EXCEPTIONS) 231: end 232: end
Insert the values into the table and return the primary key (if automatically generated).
# File lib/sequel_core/adapters/postgres.rb, line 236 236: def execute_insert(sql, opts={}) 237: return execute(sql, opts) if Symbol === sql 238: begin 239: log_info(sql, opts[:arguments]) 240: synchronize(opts[:server]) do |conn| 241: conn.execute(sql, opts[:arguments]) 242: insert_result(conn, opts[:table], opts[:values]) 243: end 244: rescue => e 245: log_info(e.message) 246: raise_error(e, :classes=>CONVERTED_EXCEPTIONS) 247: end 248: end