Skip to content
Browse files

Merge pull request #11714 from jetthoughts/11706_remove_bad_override_…

…of_xml

Removed redundant xml override from pg adapter
Conflicts:
	activerecord/CHANGELOG.md
  • Loading branch information...
1 parent 5fdb47e commit 367f2206f89d3dc277bd20c4a5bdc2f947a36056 @rafaelfranca rafaelfranca committed Aug 2, 2013
View
5 activerecord/CHANGELOG.md
@@ -1,5 +1,10 @@
## unreleased ##
+* Removed redundant override of `xml` column definition for PG,
+ in order to use `xml` column type instead of `text`
+
+ *Paul Nikitochkin*, *Michael Nikitochkin*
+
* Revert `ActiveRecord::Relation#order` change that make new order
prepend the old one.
View
10 activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -374,15 +374,11 @@ def column(name, type = nil, options = {})
self
end
- def xml(options = {})
- column(args[0], :text, options)
- end
-
private
- def create_column_definition(name, type)
- ColumnDefinition.new name, type
- end
+ def create_column_definition(name, type)
+ ColumnDefinition.new name, type
+ end
end
class Table < ActiveRecord::ConnectionAdapters::Table
View
39 activerecord/test/cases/adapters/postgresql/xml_test.rb
@@ -0,0 +1,39 @@
+# encoding: utf-8
+
+require 'cases/helper'
+require 'active_record/base'
+require 'active_record/connection_adapters/postgresql_adapter'
+
+class PostgresqlXMLTest < ActiveRecord::TestCase
+ class XmlDataType < ActiveRecord::Base
+ self.table_name = 'xml_data_type'
+ end
+
+ def setup
+ @connection = ActiveRecord::Base.connection
+ begin
+ @connection.transaction do
+ @connection.create_table('xml_data_type') do |t|
+ t.xml 'payload', default: {}
+ end
+ end
+ rescue ActiveRecord::StatementInvalid
+ return skip "do not test on PG without xml"
+ end
+ @column = XmlDataType.columns.find { |c| c.name == 'payload' }
+ end
+
+ def teardown
+ @connection.execute 'drop table if exists xml_data_type'
+ end
+
+ def test_column
+ assert_equal :xml, @column.type
+ end
+
+ def test_null_xml
+ @connection.execute %q|insert into xml_data_type (payload) VALUES(null)|
+ x = XmlDataType.first
+ assert_equal(nil, x.payload)
+ end
+end

0 comments on commit 367f220

Please sign in to comment.
Something went wrong with that request. Please try again.