activerecord-postgresql-extensions 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 884595fe6ca7f7decbe13587cfd320816f6fe1aa
|
4
|
+
data.tar.gz: e655d1e1363ce3089488c383a1a86bf5dc7ac2a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1982f5f26ac5b40052c3d7a92000e6594c0a1d9b44c828e802c6f91623a106428129d74316529b9591754560254ce32f788558984f46f5bf35c95c5d0958b7ae
|
7
|
+
data.tar.gz: b3b04fa975238f7381d3f324d32bd195601fd7c38506983be39fafbe2c8656567ff12e4750459fed4f8de5a7ff2e2516cfa4c6a65e814fe7937397403f68cdc7
|
@@ -712,6 +712,21 @@ module ActiveRecord
|
|
712
712
|
end
|
713
713
|
alias_method_chain :add_column_options!, :expression
|
714
714
|
|
715
|
+
def change_column_with_using(table_name, column_name, type, options = {}) #:nodoc:
|
716
|
+
if options.has_key?(:using) && options[:using].present?
|
717
|
+
clear_cache!
|
718
|
+
quoted_table_name = quote_table_name(table_name)
|
719
|
+
|
720
|
+
execute "ALTER TABLE #{quoted_table_name} ALTER COLUMN #{quote_column_name(column_name)} TYPE #{type_to_sql(type, options[:limit], options[:precision], options[:scale])} USING #{options[:using]}"
|
721
|
+
|
722
|
+
change_column_default(table_name, column_name, options[:default]) if options_include_default?(options)
|
723
|
+
change_column_null(table_name, column_name, options[:null], options[:default]) if options.key?(:null)
|
724
|
+
else
|
725
|
+
change_column_without_using(table_name, column_name, type, options)
|
726
|
+
end
|
727
|
+
end
|
728
|
+
alias_method_chain :change_column, :using
|
729
|
+
|
715
730
|
def change_column_default_with_expression(table_name, column_name, default) #:nodoc:
|
716
731
|
if default.is_a?(Hash) && default.has_key?(:expression)
|
717
732
|
execute "ALTER TABLE #{quote_table_name(table_name)} ALTER COLUMN #{quote_column_name(column_name)} SET DEFAULT #{default[:expression]};"
|
@@ -186,6 +186,28 @@ class AdapterExtensionTests < PostgreSQLExtensionsTestCase
|
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
189
|
+
def test_change_column_with_using
|
190
|
+
Mig.change_column(:foo, :bar, :integer, :using => '100', :default => 100)
|
191
|
+
Mig.change_column(:foo, :bar, :integer, :using => '100', :default => {
|
192
|
+
:expression => '1 + 1'
|
193
|
+
})
|
194
|
+
|
195
|
+
Mig.change_column(:foo, :bar, :integer, :null => false, :using => '100', :default => {
|
196
|
+
:expression => '1 + 1'
|
197
|
+
})
|
198
|
+
|
199
|
+
assert_equal([
|
200
|
+
%{ALTER TABLE "foo" ALTER COLUMN "bar" TYPE integer USING 100},
|
201
|
+
%{ALTER TABLE "foo" ALTER COLUMN "bar" SET DEFAULT 100},
|
202
|
+
%{ALTER TABLE "foo" ALTER COLUMN "bar" TYPE integer USING 100},
|
203
|
+
%{ALTER TABLE "foo" ALTER COLUMN "bar" SET DEFAULT 1 + 1;},
|
204
|
+
%{ALTER TABLE "foo" ALTER COLUMN "bar" TYPE integer USING 100},
|
205
|
+
%{ALTER TABLE "foo" ALTER COLUMN "bar" SET DEFAULT 1 + 1;},
|
206
|
+
%{UPDATE "foo" SET "bar" = 1 + 1 WHERE "bar" IS NULL},
|
207
|
+
%{ALTER TABLE "foo" ALTER "bar" SET NOT NULL},
|
208
|
+
], statements)
|
209
|
+
end
|
210
|
+
|
189
211
|
def test_change_column_with_expression
|
190
212
|
Mig.change_column(:foo, :bar, :integer, :default => 100)
|
191
213
|
Mig.change_column(:foo, :bar, :integer, :default => {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-postgresql-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
112
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.
|
113
|
+
rubygems_version: 2.4.6
|
114
114
|
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: A whole bunch of extensions the ActiveRecord PostgreSQL adapter.
|