diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index c4dacc85ff..6052c30174 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,16 @@
*SVN*
+* Added encoding and min_messages options for PostgreSQL #1205 [shugo]. Configuration example:
+
+ development:
+ adapter: postgresql
+ database: rails_development
+ host: localhost
+ username: postgres
+ password:
+ encoding: UTF8
+ min_messages: ERROR
+
* Fixed acts_as_list where deleting an item that was removed from the list would ruin the positioning of other list items #1197 [Jamis Buck]
* Added validates_exclusion_of as a negative of validates_inclusion_of
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
index f9719b9f2b..9161878d5a 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -25,6 +25,8 @@ module ActiveRecord
password = config[:password].to_s
schema_order = config[:schema_order]
+ encoding = config[:encoding]
+ min_messages = config[:min_messages]
if config.has_key?(:database)
database = config[:database]
@@ -37,6 +39,8 @@ module ActiveRecord
)
pga.execute("SET search_path TO #{schema_order}") if schema_order
+ pga.execute("SET client_encoding TO '#{encoding}'") if encoding
+ pga.execute("SET client_min_messages TO '#{min_messages}'") if min_messages
pga
end
@@ -54,6 +58,8 @@ module ActiveRecord
# * :password -- Defaults to nothing
# * :database -- The name of the database. No default, must be provided.
# * :schema_order -- An optional schema order string that is using in a SET search_path TO call on connection.
+ # * :encoding -- An optional client encoding that is using in a SET client_encoding TO call on connection.
+ # * :min_messages -- An optional client min messages that is using in a SET client_min_messages TO call on connection.
class PostgreSQLAdapter < AbstractAdapter
def select_all(sql, name = nil)
select(sql, name)