| Path: | lib/sequel_core/adapters/shared/postgres.rb |
| Last Update: | Mon Mar 02 15:51:08 -0700 2009 |
Apply connection settings for this connection. Currently, turns standard_conforming_strings ON if Postgres.force_standard_strings is true.
# File lib/sequel_core/adapters/shared/postgres.rb, line 113
113: def apply_connection_settings
114: if Postgres.force_standard_strings
115: sql = "SET standard_conforming_strings = ON"
116: @db.log_info(sql)
117: # This setting will only work on PostgreSQL 8.2 or greater
118: # and we don't know the server version at this point, so
119: # try it unconditionally and rescue any errors.
120: execute(sql) rescue nil
121: end
122: if cmm = Postgres.client_min_messages
123: sql = "SET client_min_messages = '#{cmm.to_s.upcase}'"
124: @db.log_info(sql)
125: execute(sql)
126: end
127: end
Get the last inserted value for the given sequence.
# File lib/sequel_core/adapters/shared/postgres.rb, line 130
130: def last_insert_id(sequence)
131: sql = SELECT_CURRVAL % sequence
132: @db.log_info(sql)
133: execute(sql) do |r|
134: val = single_value(r)
135: return val.to_i if val
136: end
137: end
Get the primary key for the given table.
# File lib/sequel_core/adapters/shared/postgres.rb, line 140
140: def primary_key(schema, table)
141: sql = SELECT_PK[schema, table]
142: @db.log_info(sql)
143: execute(sql) do |r|
144: return single_value(r)
145: end
146: end
Get the primary key and sequence for the given table.
# File lib/sequel_core/adapters/shared/postgres.rb, line 149
149: def sequence(schema, table)
150: sql = SELECT_SERIAL_SEQUENCE[schema, table]
151: @db.log_info(sql)
152: execute(sql) do |r|
153: seq = single_value(r)
154: return seq if seq
155: end
156:
157: sql = SELECT_CUSTOM_SEQUENCE[schema, table]
158: @db.log_info(sql)
159: execute(sql) do |r|
160: return single_value(r)
161: end
162: end