postgres_ext 1.0.0 → 2.0.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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +6 -47
  4. data/lib/postgres_ext/active_record/relation/predicate_builder.rb +36 -55
  5. data/lib/postgres_ext/active_record/relation/query_methods.rb +0 -14
  6. data/lib/postgres_ext/active_record.rb +0 -3
  7. data/lib/postgres_ext/version.rb +1 -1
  8. data/postgres_ext.gemspec +6 -5
  9. data/spec/arel/arel_spec.rb +0 -1
  10. data/spec/dummy/app/models/person.rb +0 -1
  11. data/spec/dummy/config/application.rb +0 -3
  12. data/spec/dummy/config/environments/development.rb +2 -7
  13. data/spec/dummy/config/environments/production.rb +1 -0
  14. data/spec/dummy/config/environments/test.rb +1 -5
  15. data/spec/dummy/db/migrate/20120501163758_create_people.rb +3 -3
  16. data/spec/dummy/db/schema.rb +15 -12
  17. data/spec/queries/sanity_spec.rb +1 -1
  18. data/spec/spec_helper.rb +1 -2
  19. metadata +21 -105
  20. data/docs/indexes.md +0 -28
  21. data/docs/migrations.md +0 -92
  22. data/docs/type_casting.md +0 -70
  23. data/lib/postgres_ext/active_record/connection_adapters/postgres_adapter.rb +0 -537
  24. data/lib/postgres_ext/active_record/connection_adapters.rb +0 -1
  25. data/lib/postgres_ext/active_record/sanitization.rb +0 -30
  26. data/lib/postgres_ext/active_record/schema_dumper.rb +0 -157
  27. data/spec/columns/array_spec.rb +0 -119
  28. data/spec/columns/inet_spec.rb +0 -25
  29. data/spec/columns/ranges/daterange_spec.rb +0 -37
  30. data/spec/columns/ranges/int4range_spec.rb +0 -38
  31. data/spec/columns/ranges/int8range_spec.rb +0 -38
  32. data/spec/columns/ranges/numrange_spec.rb +0 -37
  33. data/spec/columns/ranges/tsrange_spec.rb +0 -37
  34. data/spec/migrations/active_record_migration_spec.rb +0 -29
  35. data/spec/migrations/array_spec.rb +0 -214
  36. data/spec/migrations/cidr_spec.rb +0 -26
  37. data/spec/migrations/citext_spec.rb +0 -32
  38. data/spec/migrations/ean13_spec.rb +0 -27
  39. data/spec/migrations/index_spec.rb +0 -67
  40. data/spec/migrations/inet_spec.rb +0 -26
  41. data/spec/migrations/macaddr_spec.rb +0 -26
  42. data/spec/migrations/ranges/daterange_spec.rb +0 -27
  43. data/spec/migrations/ranges/int4range_spec.rb +0 -27
  44. data/spec/migrations/ranges/int8range_spec.rb +0 -27
  45. data/spec/migrations/ranges/numrange_spec.rb +0 -27
  46. data/spec/migrations/ranges/tsrange_spec.rb +0 -27
  47. data/spec/migrations/ranges/tstzrange_spec.rb +0 -27
  48. data/spec/migrations/uuid_spec.rb +0 -26
  49. data/spec/models/array_spec.rb +0 -285
  50. data/spec/models/ean13_spec.rb +0 -57
  51. data/spec/models/inet_spec.rb +0 -88
  52. data/spec/models/ranges/daterange_spec.rb +0 -88
  53. data/spec/models/ranges/int4range_spec.rb +0 -85
  54. data/spec/models/ranges/int8range_spec.rb +0 -85
  55. data/spec/models/ranges/numrange_spec.rb +0 -85
  56. data/spec/models/ranges/tsrange_spec.rb +0 -89
  57. data/spec/models/ranges/tstzrange_spec.rb +0 -89
  58. data/spec/schema_dumper/array_spec.rb +0 -17
  59. data/spec/schema_dumper/cidr_spec.rb +0 -17
  60. data/spec/schema_dumper/citext_spec.rb +0 -17
  61. data/spec/schema_dumper/ean13_spec.rb +0 -17
  62. data/spec/schema_dumper/extension_spec.rb +0 -14
  63. data/spec/schema_dumper/index_spec.rb +0 -46
  64. data/spec/schema_dumper/inet_spec.rb +0 -17
  65. data/spec/schema_dumper/macaddr_spec.rb +0 -17
  66. data/spec/schema_dumper/ranges/daterange_spec.rb +0 -18
  67. data/spec/schema_dumper/ranges/int4range_spec.rb +0 -18
  68. data/spec/schema_dumper/ranges/int8range_spec.rb +0 -18
  69. data/spec/schema_dumper/ranges/numrange_spec.rb +0 -18
  70. data/spec/schema_dumper/ranges/tsrange_spec.rb +0 -18
  71. data/spec/schema_dumper/ranges/tstzrange_spec.rb +0 -17
  72. data/spec/schema_dumper/uuid_spec.rb +0 -17
@@ -1,214 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Array migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
-
6
- context 'New Table' do
7
- after { connection.drop_table :data_types }
8
- describe 'Create table methods' do
9
- it 'creates an array column' do
10
- lambda do
11
- connection.create_table :data_types do |t|
12
- t.cidr :array_1, :array => true
13
- t.cidr :array_2, :array_3, :array => true
14
- t.column :array_4, :cidr, :array => true
15
- end
16
- end.should_not raise_exception
17
-
18
- columns = connection.columns(:data_types)
19
-
20
- array_1 = columns.detect { |c| c.name == 'array_1'}
21
- array_2 = columns.detect { |c| c.name == 'array_2'}
22
- array_3 = columns.detect { |c| c.name == 'array_3'}
23
- array_4 = columns.detect { |c| c.name == 'array_4'}
24
-
25
- array_1.sql_type.should eq 'cidr[]'
26
- array_2.sql_type.should eq 'cidr[]'
27
- array_3.sql_type.should eq 'cidr[]'
28
- array_4.sql_type.should eq 'cidr[]'
29
- end
30
- end
31
- end
32
-
33
- context 'Existing Table' do
34
- before { connection.create_table :data_types }
35
- after { connection.drop_table :data_types }
36
- describe 'Add Column' do
37
- context 'no default' do
38
- it 'creates an array column' do
39
- lambda do
40
- connection.add_column :data_types, :array_5, :cidr, :array => true
41
- end.should_not raise_exception
42
-
43
- columns = connection.columns(:data_types)
44
-
45
- array_5 = columns.detect { |c| c.name == 'array_5'}
46
- array_5.sql_type.should eq 'cidr[]'
47
- end
48
- end
49
-
50
- context 'with default' do
51
- it 'creates an array column' do
52
- lambda do
53
- connection.add_column :data_types, :array_6, :integer, :array => true, :default => []
54
- end.should_not raise_exception
55
-
56
- columns = connection.columns(:data_types)
57
-
58
- array_6 = columns.detect { |c| c.name == 'array_6'}
59
- array_6.sql_type.should eq 'integer[]'
60
- end
61
- end
62
-
63
- end
64
-
65
- describe 'Change table methods' do
66
- it 'creates an array column' do
67
- lambda do
68
- connection.change_table :data_types do |t|
69
- t.column :array_6, :cidr, :array => true
70
- t.cidr :array_7, :array => true
71
- end
72
- end.should_not raise_exception
73
-
74
- columns = connection.columns(:data_types)
75
-
76
- array_6 = columns.detect { |c| c.name == 'array_6'}
77
- array_7 = columns.detect { |c| c.name == 'array_7'}
78
-
79
- array_6.sql_type.should eq 'cidr[]'
80
- array_7.sql_type.should eq 'cidr[]'
81
- end
82
- end
83
- end
84
-
85
- context 'Change Column' do
86
- describe 'Change with column existing as array' do
87
- after { connection.drop_table :data_types }
88
- it 'updates the column definitions' do
89
- lambda do
90
- connection.create_table :data_types do |t|
91
- t.integer :array_1, :array => true, :default => []
92
- end
93
-
94
- connection.change_column :data_types, :array_1, :integer, :array => true, :default => [], :null => false
95
- end.should_not raise_exception
96
-
97
- columns = connection.columns(:data_types)
98
-
99
- array_1 = columns.detect { |c| c.name == 'array_1'}
100
- array_1.sql_type.should eq 'integer[]'
101
- array_1.default.should eq []
102
- array_1.null.should be_false
103
- end
104
- end
105
-
106
- describe 'Change string column to array' do
107
- after { connection.drop_table :data_types }
108
- it 'updates the column definitions' do
109
- lambda do
110
- connection.create_table :data_types do |t|
111
- t.string :string_1
112
- end
113
-
114
- connection.exec_query "INSERT INTO data_types (string_1) VALUES ('some,values,here')"
115
- connection.change_column :data_types, :string_1, :string, :array => true, :default => [], :null => false
116
- end.should_not raise_exception
117
-
118
- columns = connection.columns(:data_types)
119
-
120
- string_1 = columns.detect { |c| c.name == 'string_1'}
121
- string_1.sql_type.should eq 'character varying(255)[]'
122
- string_1.default.should eq []
123
- string_1.null.should be_false
124
-
125
- new_string_value = connection.exec_query "SELECT array_length(string_1, 1) FROM data_types LIMIT 1"
126
- if RUBY_PLATFORM =~ /java/
127
- new_string_value.first['array_length'].should eq 3
128
- else
129
- new_string_value.rows.first.should == ['3']
130
- end
131
- end
132
- end
133
-
134
- describe 'Change text column to array' do
135
- after { connection.drop_table :data_types }
136
- it 'updates the column definitions' do
137
- lambda do
138
- connection.create_table :data_types do |t|
139
- t.text :text_1
140
- end
141
-
142
- connection.exec_query "INSERT INTO data_types (text_1) VALUES ('some,values,here')"
143
- connection.change_column :data_types, :text_1, :text, :array => true, :default => [], :null => false
144
- end.should_not raise_exception
145
-
146
- columns = connection.columns(:data_types)
147
-
148
- text_1 = columns.detect { |c| c.name == 'text_1'}
149
- text_1.sql_type.should eq 'text[]'
150
- text_1.default.should eq []
151
- text_1.null.should be_false
152
-
153
- new_text_value = connection.exec_query "SELECT array_length(text_1, 1) FROM data_types LIMIT 1"
154
- if RUBY_PLATFORM =~ /java/
155
- new_text_value.first['array_length'].should eq 3
156
- else
157
- new_text_value.rows.first.should eq ['3']
158
- end
159
- end
160
- end
161
- end
162
-
163
- context 'Default Values' do
164
- describe 'String defaults' do
165
- after { connection.drop_table :default_strings }
166
- it 'creates array column with proper defaults' do
167
- lambda do
168
- connection.create_table :default_strings do |t|
169
- t.string :names_1, :array => true, :default => []
170
- t.string :names_2, :array => true, :default => '{}'
171
- t.string :names_3, :array => true, :default => ['something']
172
- t.string :names_4, :array => true, :default => '{something}'
173
- end
174
- end.should_not raise_exception
175
- columns = connection.columns(:default_strings)
176
-
177
- names_1 = columns.detect { |c| c.name == 'names_1' }
178
- names_2 = columns.detect { |c| c.name == 'names_2' }
179
- names_3 = columns.detect { |c| c.name == 'names_3' }
180
- names_4 = columns.detect { |c| c.name == 'names_4' }
181
-
182
- names_1.default.should eq []
183
- names_2.default.should eq []
184
- names_3.default.should eq ['something']
185
- names_4.default.should eq ['something']
186
- end
187
- end
188
-
189
- describe 'Integer defaults' do
190
- after { connection.drop_table :default_integers }
191
- it 'creates array column with proper defaults' do
192
- lambda do
193
- connection.create_table :default_integers do |t|
194
- t.integer :numbers_1, :array => true, :default => []
195
- t.integer :numbers_2, :array => true, :default => '{}'
196
- t.integer :numbers_3, :array => true, :default => [3]
197
- t.integer :numbers_4, :array => true, :default => '{4}'
198
- end
199
- end.should_not raise_exception
200
- columns = connection.columns(:default_integers)
201
-
202
- numbers_1 = columns.detect { |c| c.name == 'numbers_1' }
203
- numbers_2 = columns.detect { |c| c.name == 'numbers_2' }
204
- numbers_3 = columns.detect { |c| c.name == 'numbers_3' }
205
- numbers_4 = columns.detect { |c| c.name == 'numbers_4' }
206
-
207
- numbers_1.default.should eq []
208
- numbers_2.default.should eq []
209
- numbers_3.default.should eq [3]
210
- numbers_4.default.should eq [4]
211
- end
212
- end
213
- end
214
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'CIDR migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
- it 'creates an cidr column' do
7
- lambda do
8
- connection.create_table :data_types do |t|
9
- t.cidr :cidr_1
10
- t.cidr :cidr_2, :cidr_3
11
- t.column :cidr_4, :cidr
12
- end
13
- end.should_not raise_exception
14
-
15
- columns = connection.columns(:data_types)
16
- cidr_1 = columns.detect { |c| c.name == 'cidr_1'}
17
- cidr_2 = columns.detect { |c| c.name == 'cidr_2'}
18
- cidr_3 = columns.detect { |c| c.name == 'cidr_3'}
19
- cidr_4 = columns.detect { |c| c.name == 'cidr_4'}
20
-
21
- cidr_1.sql_type.should eq 'cidr'
22
- cidr_2.sql_type.should eq 'cidr'
23
- cidr_3.sql_type.should eq 'cidr'
24
- cidr_4.sql_type.should eq 'cidr'
25
- end
26
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'CITEXT migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- before(:all) { ActiveRecord::Base.connection.add_extension('citext') if ActiveRecord::Base.connection.supports_extensions? }
6
- after { connection.drop_table :data_types }
7
- it 'creates an citext column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.citext :citext_1
11
- t.citext :citext_2, :citext_3
12
- t.column :citext_4, :citext
13
- t.text :citext_5
14
- end
15
-
16
- connection.change_column :data_types, :citext_5, :citext
17
- end.should_not raise_exception
18
-
19
- columns = connection.columns(:data_types)
20
- citext_1 = columns.detect { |c| c.name == 'citext_1'}
21
- citext_2 = columns.detect { |c| c.name == 'citext_2'}
22
- citext_3 = columns.detect { |c| c.name == 'citext_3'}
23
- citext_4 = columns.detect { |c| c.name == 'citext_4'}
24
- citext_5 = columns.detect { |c| c.name == 'citext_5'}
25
-
26
- citext_1.sql_type.should eq 'citext'
27
- citext_2.sql_type.should eq 'citext'
28
- citext_3.sql_type.should eq 'citext'
29
- citext_4.sql_type.should eq 'citext'
30
- citext_5.sql_type.should eq 'citext'
31
- end
32
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'ean13 migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- before(:all) { ActiveRecord::Base.connection.add_extension('isn') if ActiveRecord::Base.connection.supports_extensions? }
6
- after { connection.drop_table :data_types }
7
- it 'creates an ean13 column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.ean13 :ean13_1
11
- t.ean13 :ean13_2, :ean13_3
12
- t.column :ean13_4, :ean13
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- ean13_1 = columns.detect { |c| c.name == 'ean13_1'}
18
- ean13_2 = columns.detect { |c| c.name == 'ean13_2'}
19
- ean13_3 = columns.detect { |c| c.name == 'ean13_3'}
20
- ean13_4 = columns.detect { |c| c.name == 'ean13_4'}
21
-
22
- ean13_1.sql_type.should eq 'ean13'
23
- ean13_2.sql_type.should eq 'ean13'
24
- ean13_3.sql_type.should eq 'ean13'
25
- ean13_4.sql_type.should eq 'ean13'
26
- end
27
- end
@@ -1,67 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Index migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- let!(:stream) { StringIO.new }
6
- before do
7
- ActiveRecord::Base.logger = ActiveSupport::TaggedLogging.new(Logger.new stream)
8
- end
9
-
10
- after do
11
- [:tag_ids, :lucky_number, :biography].each do |column|
12
- begin
13
- connection.remove_index :people, column
14
- rescue ArgumentError
15
- end
16
- end
17
- end
18
-
19
- it 'creates special index' do
20
- lambda do
21
- connection.add_index(:people, :tag_ids, :using => :gin)
22
- end.should_not raise_exception
23
-
24
- indexes = connection.indexes(:people)
25
- index_1 = indexes.detect { |c| c.columns.map(&:to_s) == ['tag_ids']}
26
-
27
- index_1.using.should eq :gin
28
- end
29
-
30
- it 'creates indexes with where clauses' do
31
- lambda do
32
- connection.add_index(:people, :lucky_number, :where => '(lucky_number > 50)')
33
- end.should_not raise_exception
34
-
35
- indexes = connection.indexes(:people)
36
- index_2 = indexes.detect { |c| c.columns.map(&:to_s) == ['lucky_number']}
37
-
38
- index_2.where.should match /lucky_number > 50/
39
- end
40
-
41
- it 'creates index concurrently' do
42
- lambda do
43
- connection.add_index(:people, :lucky_number, :algorithm => :concurrently)
44
- end.should_not raise_exception
45
-
46
- output = stream.string
47
- output.should match /CREATE INDEX CONCURRENTLY "index_people_on_lucky_number" ON "people"\(\"lucky_number\" \)/
48
- end
49
-
50
- it 'rejects bad algorithm arguments' do
51
- lambda do
52
- connection.add_index(:people, :lucky_number, :algorithm => :conurrently)
53
- end.should raise_exception
54
- end
55
-
56
- it 'creates indexes with operator classes', :if => ActiveRecord::Base.connection.supports_extensions? do
57
- lambda do
58
- connection.add_index(:people, :biography, :using => :gin, :index_opclass => :gin_trgm_ops)
59
- end.should_not raise_exception
60
-
61
- indexes = connection.indexes(:people)
62
- index_3 = indexes.detect { |c| c.columns.map(&:to_s) == ['biography']}
63
-
64
- index_3.using.should eq :gin
65
- index_3.index_opclass.should eq :gin_trgm_ops
66
- end
67
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'INET migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
- it 'creates an inet column' do
7
- lambda do
8
- connection.create_table :data_types do |t|
9
- t.inet :ip_1
10
- t.inet :ip_2, :ip_3
11
- t.column :ip_4, :inet
12
- end
13
- end.should_not raise_exception
14
-
15
- columns = connection.columns(:data_types)
16
- ip_1 = columns.detect { |c| c.name == 'ip_1'}
17
- ip_2 = columns.detect { |c| c.name == 'ip_2'}
18
- ip_3 = columns.detect { |c| c.name == 'ip_3'}
19
- ip_4 = columns.detect { |c| c.name == 'ip_4'}
20
-
21
- ip_1.sql_type.should eq 'inet'
22
- ip_2.sql_type.should eq 'inet'
23
- ip_3.sql_type.should eq 'inet'
24
- ip_4.sql_type.should eq 'inet'
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'MACADDR migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
- it 'creates an macaddr column' do
7
- lambda do
8
- connection.create_table :data_types do |t|
9
- t.macaddr :macaddr_1
10
- t.macaddr :macaddr_2, :macaddr_3
11
- t.column :macaddr_4, :macaddr
12
- end
13
- end.should_not raise_exception
14
-
15
- columns = connection.columns(:data_types)
16
- macaddr_1 = columns.detect { |c| c.name == 'macaddr_1'}
17
- macaddr_2 = columns.detect { |c| c.name == 'macaddr_2'}
18
- macaddr_3 = columns.detect { |c| c.name == 'macaddr_3'}
19
- macaddr_4 = columns.detect { |c| c.name == 'macaddr_4'}
20
-
21
- macaddr_1.sql_type.should eq 'macaddr'
22
- macaddr_2.sql_type.should eq 'macaddr'
23
- macaddr_3.sql_type.should eq 'macaddr'
24
- macaddr_4.sql_type.should eq 'macaddr'
25
- end
26
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'daterange migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
-
7
- it 'creates an daterange column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.daterange :date_range_1
11
- t.daterange :date_range_2, :date_range_3
12
- t.column :date_range_4, :daterange
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- date_range_1 = columns.detect { |c| c.name == 'date_range_1'}
18
- date_range_2 = columns.detect { |c| c.name == 'date_range_2'}
19
- date_range_3 = columns.detect { |c| c.name == 'date_range_3'}
20
- date_range_4 = columns.detect { |c| c.name == 'date_range_4'}
21
-
22
- date_range_1.sql_type.should eq 'daterange'
23
- date_range_2.sql_type.should eq 'daterange'
24
- date_range_3.sql_type.should eq 'daterange'
25
- date_range_4.sql_type.should eq 'daterange'
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'int4range migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
-
7
- it 'creates an numrange column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.int4range :range_1
11
- t.int4range :range_2, :range_3
12
- t.column :range_4, :int4range
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- range_1 = columns.detect { |c| c.name == 'range_1'}
18
- range_2 = columns.detect { |c| c.name == 'range_2'}
19
- range_3 = columns.detect { |c| c.name == 'range_3'}
20
- range_4 = columns.detect { |c| c.name == 'range_4'}
21
-
22
- range_1.sql_type.should eq 'int4range'
23
- range_2.sql_type.should eq 'int4range'
24
- range_3.sql_type.should eq 'int4range'
25
- range_4.sql_type.should eq 'int4range'
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'int8range migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
-
7
- it 'creates an numrange column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.int8range :range_1
11
- t.int8range :range_2, :range_3
12
- t.column :range_4, :int8range
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- range_1 = columns.detect { |c| c.name == 'range_1'}
18
- range_2 = columns.detect { |c| c.name == 'range_2'}
19
- range_3 = columns.detect { |c| c.name == 'range_3'}
20
- range_4 = columns.detect { |c| c.name == 'range_4'}
21
-
22
- range_1.sql_type.should eq 'int8range'
23
- range_2.sql_type.should eq 'int8range'
24
- range_3.sql_type.should eq 'int8range'
25
- range_4.sql_type.should eq 'int8range'
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'numrange migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
-
7
- it 'creates an numrange column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.numrange :num_range_1
11
- t.numrange :num_range_2, :num_range_3
12
- t.column :num_range_4, :numrange
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- num_range_1 = columns.detect { |c| c.name == 'num_range_1'}
18
- num_range_2 = columns.detect { |c| c.name == 'num_range_2'}
19
- num_range_3 = columns.detect { |c| c.name == 'num_range_3'}
20
- num_range_4 = columns.detect { |c| c.name == 'num_range_4'}
21
-
22
- num_range_1.sql_type.should eq 'numrange'
23
- num_range_2.sql_type.should eq 'numrange'
24
- num_range_3.sql_type.should eq 'numrange'
25
- num_range_4.sql_type.should eq 'numrange'
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'tsrange migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
-
7
- it 'creates an tsrange column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.tsrange :ts_range_1
11
- t.tsrange :ts_range_2, :ts_range_3
12
- t.column :ts_range_4, :tsrange
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- ts_range_1 = columns.detect { |c| c.name == 'ts_range_1'}
18
- ts_range_2 = columns.detect { |c| c.name == 'ts_range_2'}
19
- ts_range_3 = columns.detect { |c| c.name == 'ts_range_3'}
20
- ts_range_4 = columns.detect { |c| c.name == 'ts_range_4'}
21
-
22
- ts_range_1.sql_type.should eq 'tsrange'
23
- ts_range_2.sql_type.should eq 'tsrange'
24
- ts_range_3.sql_type.should eq 'tsrange'
25
- ts_range_4.sql_type.should eq 'tsrange'
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'tstzrange migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
-
7
- it 'creates an tstzrange column' do
8
- lambda do
9
- connection.create_table :data_types do |t|
10
- t.tstzrange :tstz_range_1
11
- t.tstzrange :tstz_range_2, :tstz_range_3
12
- t.column :tstz_range_4, :tstzrange
13
- end
14
- end.should_not raise_exception
15
-
16
- columns = connection.columns(:data_types)
17
- tstz_range_1 = columns.detect { |c| c.name == 'tstz_range_1'}
18
- tstz_range_2 = columns.detect { |c| c.name == 'tstz_range_2'}
19
- tstz_range_3 = columns.detect { |c| c.name == 'tstz_range_3'}
20
- tstz_range_4 = columns.detect { |c| c.name == 'tstz_range_4'}
21
-
22
- tstz_range_1.sql_type.should eq 'tstzrange'
23
- tstz_range_2.sql_type.should eq 'tstzrange'
24
- tstz_range_3.sql_type.should eq 'tstzrange'
25
- tstz_range_4.sql_type.should eq 'tstzrange'
26
- end
27
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'UUID migrations' do
4
- let!(:connection) { ActiveRecord::Base.connection }
5
- after { connection.drop_table :data_types }
6
- it 'creates an uuid column' do
7
- lambda do
8
- connection.create_table :data_types do |t|
9
- t.uuid :uuid_1
10
- t.uuid :uuid_2, :uuid_3
11
- t.column :uuid_4, :uuid
12
- end
13
- end.should_not raise_exception
14
-
15
- columns = connection.columns(:data_types)
16
- uuid_1 = columns.detect { |c| c.name == 'uuid_1'}
17
- uuid_2 = columns.detect { |c| c.name == 'uuid_2'}
18
- uuid_3 = columns.detect { |c| c.name == 'uuid_3'}
19
- uuid_4 = columns.detect { |c| c.name == 'uuid_4'}
20
-
21
- uuid_1.sql_type.should eq 'uuid'
22
- uuid_2.sql_type.should eq 'uuid'
23
- uuid_3.sql_type.should eq 'uuid'
24
- uuid_4.sql_type.should eq 'uuid'
25
- end
26
- end