Path: | lib/sequel/adapters/shared/postgres.rb |
Last Update: | Thu Feb 18 18:19:30 +0000 2010 |
Apply connection settings for this connection. Currently, turns standard_conforming_strings ON if Postgres.force_standard_strings is true.
# File lib/sequel/adapters/shared/postgres.rb, line 117 117: def apply_connection_settings 118: if Postgres.force_standard_strings 119: sql = "SET standard_conforming_strings = ON" 120: @db.log_info(sql) 121: # This setting will only work on PostgreSQL 8.2 or greater 122: # and we don't know the server version at this point, so 123: # try it unconditionally and rescue any errors. 124: execute(sql) rescue nil 125: end 126: if cmm = Postgres.client_min_messages 127: sql = "SET client_min_messages = '#{cmm.to_s.upcase}'" 128: @db.log_info(sql) 129: execute(sql) 130: end 131: end
Get the last inserted value for the given sequence.
# File lib/sequel/adapters/shared/postgres.rb, line 134 134: def last_insert_id(sequence) 135: sql = SELECT_CURRVAL % sequence 136: @db.log_info(sql) 137: execute(sql) do |r| 138: val = single_value(r) 139: return val.to_i if val 140: end 141: end
Get the primary key for the given table.
# File lib/sequel/adapters/shared/postgres.rb, line 144 144: def primary_key(schema, table) 145: sql = SELECT_PK[schema, table] 146: @db.log_info(sql) 147: execute(sql) do |r| 148: return single_value(r) 149: end 150: end
Get the primary key and sequence for the given table.
# File lib/sequel/adapters/shared/postgres.rb, line 153 153: def sequence(schema, table) 154: sql = SELECT_SERIAL_SEQUENCE[schema, table] 155: @db.log_info(sql) 156: execute(sql) do |r| 157: seq = single_value(r) 158: return seq if seq 159: end 160: 161: sql = SELECT_CUSTOM_SEQUENCE[schema, table] 162: @db.log_info(sql) 163: execute(sql) do |r| 164: return single_value(r) 165: end 166: end