partitioned 0.8.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.
- data/Gemfile +17 -0
- data/LICENSE +30 -0
- data/PARTITIONING_EXPLAINED.txt +351 -0
- data/README +111 -0
- data/Rakefile +27 -0
- data/examples/README +23 -0
- data/examples/company_id.rb +417 -0
- data/examples/company_id_and_created_at.rb +689 -0
- data/examples/created_at.rb +590 -0
- data/examples/created_at_referencing_awards.rb +1000 -0
- data/examples/id.rb +475 -0
- data/examples/lib/by_company_id.rb +11 -0
- data/examples/lib/command_line_tool_mixin.rb +71 -0
- data/examples/lib/company.rb +29 -0
- data/examples/lib/get_options.rb +44 -0
- data/examples/lib/roman.rb +41 -0
- data/examples/start_date.rb +621 -0
- data/init.rb +1 -0
- data/lib/monkey_patch_activerecord.rb +92 -0
- data/lib/monkey_patch_postgres.rb +73 -0
- data/lib/partitioned.rb +26 -0
- data/lib/partitioned/active_record_overrides.rb +34 -0
- data/lib/partitioned/bulk_methods_mixin.rb +288 -0
- data/lib/partitioned/by_created_at.rb +13 -0
- data/lib/partitioned/by_foreign_key.rb +21 -0
- data/lib/partitioned/by_id.rb +35 -0
- data/lib/partitioned/by_integer_field.rb +32 -0
- data/lib/partitioned/by_monthly_time_field.rb +23 -0
- data/lib/partitioned/by_time_field.rb +65 -0
- data/lib/partitioned/by_weekly_time_field.rb +30 -0
- data/lib/partitioned/multi_level.rb +20 -0
- data/lib/partitioned/multi_level/configurator/data.rb +14 -0
- data/lib/partitioned/multi_level/configurator/dsl.rb +32 -0
- data/lib/partitioned/multi_level/configurator/reader.rb +162 -0
- data/lib/partitioned/multi_level/partition_manager.rb +47 -0
- data/lib/partitioned/partitioned_base.rb +354 -0
- data/lib/partitioned/partitioned_base/configurator.rb +6 -0
- data/lib/partitioned/partitioned_base/configurator/data.rb +62 -0
- data/lib/partitioned/partitioned_base/configurator/dsl.rb +628 -0
- data/lib/partitioned/partitioned_base/configurator/reader.rb +209 -0
- data/lib/partitioned/partitioned_base/partition_manager.rb +138 -0
- data/lib/partitioned/partitioned_base/sql_adapter.rb +286 -0
- data/lib/partitioned/version.rb +3 -0
- data/lib/tasks/desirable_tasks.rake +4 -0
- data/partitioned.gemspec +21 -0
- data/spec/dummy/.rspec +1 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +9 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +51 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +32 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +60 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +58 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/spec/spec_helper.rb +27 -0
- data/spec/monkey_patch_posgres_spec.rb +176 -0
- data/spec/partitioned/bulk_methods_mixin_spec.rb +512 -0
- data/spec/partitioned/by_created_at_spec.rb +62 -0
- data/spec/partitioned/by_foreign_key_spec.rb +95 -0
- data/spec/partitioned/by_id_spec.rb +97 -0
- data/spec/partitioned/by_integer_field_spec.rb +143 -0
- data/spec/partitioned/by_monthly_time_field_spec.rb +100 -0
- data/spec/partitioned/by_time_field_spec.rb +182 -0
- data/spec/partitioned/by_weekly_time_field_spec.rb +100 -0
- data/spec/partitioned/multi_level/configurator/dsl_spec.rb +88 -0
- data/spec/partitioned/multi_level/configurator/reader_spec.rb +147 -0
- data/spec/partitioned/partitioned_base/configurator/dsl_spec.rb +459 -0
- data/spec/partitioned/partitioned_base/configurator/reader_spec.rb +513 -0
- data/spec/partitioned/partitioned_base/sql_adapter_spec.rb +204 -0
- data/spec/partitioned/partitioned_base_spec.rb +173 -0
- data/spec/spec_helper.rb +32 -0
- data/spec/support/shared_example_spec_helper_for_integer_key.rb +137 -0
- data/spec/support/shared_example_spec_helper_for_time_key.rb +147 -0
- data/spec/support/tables_spec_helper.rb +47 -0
- metadata +250 -0
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Partitioned
|
|
4
|
+
class PartitionedBase
|
|
5
|
+
module Configurator
|
|
6
|
+
describe Dsl do
|
|
7
|
+
|
|
8
|
+
before(:all) do
|
|
9
|
+
class Employee
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
after(:all) do
|
|
15
|
+
Partitioned::PartitionedBase::Configurator.send(:remove_const, :Employee)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
let!(:dsl) { Partitioned::PartitionedBase::Configurator::Dsl.new(Employee) }
|
|
19
|
+
|
|
20
|
+
describe "initialize" do
|
|
21
|
+
|
|
22
|
+
let!(:data_stubs) do
|
|
23
|
+
{
|
|
24
|
+
"on_field" => nil,
|
|
25
|
+
"indexes" => [],
|
|
26
|
+
"foreign_keys" => [],
|
|
27
|
+
"last_partitions_order_by_clause" => nil,
|
|
28
|
+
"schema_name" => nil,
|
|
29
|
+
"name_prefix" => nil,
|
|
30
|
+
"base_name" => nil,
|
|
31
|
+
"part_name" => nil,
|
|
32
|
+
"table_name" => nil,
|
|
33
|
+
"parent_table_schema_name" => nil,
|
|
34
|
+
"parent_table_name" => nil,
|
|
35
|
+
"check_constraint" => nil,
|
|
36
|
+
"encoded_name" => nil
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context "when try to create the new object" do
|
|
41
|
+
|
|
42
|
+
context "check the model name" do
|
|
43
|
+
|
|
44
|
+
it "returns Employer" do
|
|
45
|
+
dsl.model.should == Employee
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end # check the model name
|
|
49
|
+
|
|
50
|
+
context "check the object data" do
|
|
51
|
+
|
|
52
|
+
it "returns data" do
|
|
53
|
+
dsl.data.instance_values.should == data_stubs
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end # check the object data
|
|
57
|
+
|
|
58
|
+
end # when try to create a new object
|
|
59
|
+
|
|
60
|
+
end # initialize
|
|
61
|
+
|
|
62
|
+
describe "on" do
|
|
63
|
+
|
|
64
|
+
context "when try to set the field which used to partition child tables" do
|
|
65
|
+
|
|
66
|
+
it "returns data.on value" do
|
|
67
|
+
dsl.on(:company_id)
|
|
68
|
+
dsl.data.on_field.should == :company_id
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end # when try to set the field which used to partition child tables
|
|
72
|
+
|
|
73
|
+
context "when try to set the field represented as a string to be interpolated naming the field to partition child tables" do
|
|
74
|
+
|
|
75
|
+
it "returns data.on value" do
|
|
76
|
+
dsl.on('#{model.partition_field}')
|
|
77
|
+
dsl.data.on_field.should == '#{model.partition_field}'
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end # when try to set the field represented as a string to be interpolated naming the field to partition child tables
|
|
81
|
+
|
|
82
|
+
context "when try to set the field(with proc) which used to partition child tables" do
|
|
83
|
+
|
|
84
|
+
let(:lmd) do
|
|
85
|
+
lambda { |model| model.partition_field }
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it "returns proc" do
|
|
89
|
+
dsl.on lmd
|
|
90
|
+
dsl.data.on_field.should == lmd
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end # when try to set the field which(with proc) used to partition child tables
|
|
94
|
+
|
|
95
|
+
end # on
|
|
96
|
+
|
|
97
|
+
describe "index" do
|
|
98
|
+
|
|
99
|
+
context "when try to set the index to be created on all child tables" do
|
|
100
|
+
|
|
101
|
+
it "returns index" do
|
|
102
|
+
dsl.index(:id, { :unique => true })
|
|
103
|
+
dsl.data.indexes.first.field.should == :id
|
|
104
|
+
dsl.data.indexes.first.options.should == { :unique => true }
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
end # when try to set the index to be created on all child tables
|
|
108
|
+
|
|
109
|
+
context "when try to set the index(with proc) to be created on all child tables" do
|
|
110
|
+
|
|
111
|
+
let(:lmd) do
|
|
112
|
+
lambda { |model, *partition_key_values|
|
|
113
|
+
return Partitioned::PartitionedBase::Configurator::Data::Index.new(model.partition_field, {})
|
|
114
|
+
}
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "returns proc" do
|
|
118
|
+
dsl.index lmd
|
|
119
|
+
dsl.data.indexes.first.should == lmd
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end # when try to set the index(with proc) to be created on all child tables
|
|
123
|
+
|
|
124
|
+
end # index
|
|
125
|
+
|
|
126
|
+
describe "foreign_key" do
|
|
127
|
+
|
|
128
|
+
context "when try to set the foreign key on a child table" do
|
|
129
|
+
|
|
130
|
+
it "returns foreign_keys" do
|
|
131
|
+
dsl.foreign_key(:company_id)
|
|
132
|
+
dsl.data.foreign_keys.first.referencing_field.should == :company_id
|
|
133
|
+
dsl.data.foreign_keys.first.referenced_table.should == "companies"
|
|
134
|
+
dsl.data.foreign_keys.first.referenced_field.should == :id
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
end # when try to set the foreign key on a child table
|
|
138
|
+
|
|
139
|
+
context "when try to set the foreign key(with proc) on a child table" do
|
|
140
|
+
|
|
141
|
+
let(:lmd) do
|
|
142
|
+
lambda { |model, *partition_key_values|
|
|
143
|
+
return Partitioned::PartitionedBase::Configurator::Data::ForeignKey.new(model.foreign_key_field)
|
|
144
|
+
}
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
it "returns proc" do
|
|
148
|
+
dsl.index lmd
|
|
149
|
+
dsl.data.indexes.first.should == lmd
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end # when try to set the foreign key(with proc) on a child table
|
|
153
|
+
|
|
154
|
+
end # foreign_key
|
|
155
|
+
|
|
156
|
+
describe "check_constraint" do
|
|
157
|
+
|
|
158
|
+
context "when try to set the check constraint for a given child table" do
|
|
159
|
+
|
|
160
|
+
it "returns check_constraint" do
|
|
161
|
+
dsl.check_constraint('company_id = #{field_value}')
|
|
162
|
+
dsl.data.check_constraint.should == 'company_id = #{field_value}'
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
end # when try to set the check constraint for a given child table
|
|
166
|
+
|
|
167
|
+
context "when try to set the check constraint(with proc) for a given child table" do
|
|
168
|
+
|
|
169
|
+
let(:lmd) do
|
|
170
|
+
lambda {|model, value|
|
|
171
|
+
return "#{model.field_to_partition} = #{value}"
|
|
172
|
+
}
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
it "returns proc" do
|
|
176
|
+
dsl.check_constraint lmd
|
|
177
|
+
dsl.data.check_constraint.should == lmd
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
end # when try to set the check constraint(with proc) for a given child table
|
|
181
|
+
|
|
182
|
+
end # check_constraint
|
|
183
|
+
|
|
184
|
+
describe "order" do
|
|
185
|
+
|
|
186
|
+
context "when try to set the check constraint for a given child table" do
|
|
187
|
+
|
|
188
|
+
it "returns check_constraint" do
|
|
189
|
+
dsl.order('tablename desc')
|
|
190
|
+
dsl.data.last_partitions_order_by_clause.should == 'tablename desc'
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
end # when try to set the check constraint for a given child table
|
|
194
|
+
|
|
195
|
+
end # order
|
|
196
|
+
|
|
197
|
+
describe "schema_name" do
|
|
198
|
+
|
|
199
|
+
context "when try to set the name of the schema that will contain all child tables" do
|
|
200
|
+
|
|
201
|
+
it "returns schema_name" do
|
|
202
|
+
dsl.schema_name("employees_partitions")
|
|
203
|
+
dsl.data.schema_name.should == "employees_partitions"
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
end # when try to set the name of the schema that will contain all child tables
|
|
207
|
+
|
|
208
|
+
context "when try to set the schema name represented as a string to be interpolated at run time" do
|
|
209
|
+
|
|
210
|
+
it "returns schema_name" do
|
|
211
|
+
dsl.schema_name('#{model.table_name}_partitions')
|
|
212
|
+
dsl.data.schema_name.should == '#{model.table_name}_partitions'
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
end # when try to set the schema name represented as a string to be interpolated at run time
|
|
216
|
+
|
|
217
|
+
context "when try to set the name of the schema(with proc) that will contain all child tables" do
|
|
218
|
+
|
|
219
|
+
let(:lmd) do
|
|
220
|
+
lambda {|model, *value|
|
|
221
|
+
return "#{model.table_name}_partitions"
|
|
222
|
+
}
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
it "returns proc" do
|
|
226
|
+
dsl.schema_name lmd
|
|
227
|
+
dsl.data.schema_name.should == lmd
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
end # when try to set the name of the schema(with proc) that will contain all child tables
|
|
231
|
+
|
|
232
|
+
end # schema_name
|
|
233
|
+
|
|
234
|
+
describe "name_prefix" do
|
|
235
|
+
|
|
236
|
+
context "when try to set the name prefix for the child table's name" do
|
|
237
|
+
|
|
238
|
+
it "returns name_prefix" do
|
|
239
|
+
dsl.name_prefix("p")
|
|
240
|
+
dsl.data.name_prefix.should == "p"
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
end # when try to set the name prefix for the child table's name
|
|
244
|
+
|
|
245
|
+
context "when try to set the name prefix represented as a string to be interpolated at run time" do
|
|
246
|
+
|
|
247
|
+
it "returns name_prefix" do
|
|
248
|
+
dsl.name_prefix('#{model.table_name}_child_')
|
|
249
|
+
dsl.data.name_prefix.should == '#{model.table_name}_child_'
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
end # when try to set the name prefix represented as a string to be interpolated at run time
|
|
253
|
+
|
|
254
|
+
context "when try to set the name prefix(with proc) for the child table's name" do
|
|
255
|
+
|
|
256
|
+
let(:lmd) do
|
|
257
|
+
lambda {|model, *value|
|
|
258
|
+
return "#{model.table_name}_child_"
|
|
259
|
+
}
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
it "returns proc" do
|
|
263
|
+
dsl.name_prefix lmd
|
|
264
|
+
dsl.data.name_prefix.should == lmd
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
end # when try to set the name prefix(with proc) for the child table's name
|
|
268
|
+
|
|
269
|
+
end # name_prefix
|
|
270
|
+
|
|
271
|
+
describe "base_name" do
|
|
272
|
+
|
|
273
|
+
context "when try to set the name of the child table without the schema name or name prefix" do
|
|
274
|
+
|
|
275
|
+
it "returns base_name" do
|
|
276
|
+
dsl.base_name("25")
|
|
277
|
+
dsl.data.base_name.should == "25"
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
end # when try to set the name of the child table without the schema name or name prefix
|
|
281
|
+
|
|
282
|
+
context "when try to set the name of the child table represented as a string to be interpolated at run time" do
|
|
283
|
+
|
|
284
|
+
it "returns base_name" do
|
|
285
|
+
dsl.base_name('#{model.partition_normalize_key_value(field_value)}')
|
|
286
|
+
dsl.data.base_name.should == '#{model.partition_normalize_key_value(field_value)}'
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
end # when try to set the name of the child table represented as a string to be interpolated at run time
|
|
290
|
+
|
|
291
|
+
context "when try to set the name of the child table(with proc) without the schema name or name prefix" do
|
|
292
|
+
|
|
293
|
+
let(:lmd) do
|
|
294
|
+
lambda {|model, *partition_key_values|
|
|
295
|
+
return model.partition_normalize_key_value(*partition_key_values).to_s
|
|
296
|
+
}
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
it "returns proc" do
|
|
300
|
+
dsl.base_name lmd
|
|
301
|
+
dsl.data.base_name.should == lmd
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
end # when try to set the name of the child table(with proc) without the schema name or name prefix
|
|
305
|
+
|
|
306
|
+
end # base_name
|
|
307
|
+
|
|
308
|
+
describe "part_name" do
|
|
309
|
+
|
|
310
|
+
context "when try to set the part name of the child table without the schema name" do
|
|
311
|
+
|
|
312
|
+
it "returns part_name" do
|
|
313
|
+
dsl.part_name("p42")
|
|
314
|
+
dsl.data.part_name.should == "p42"
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
end # when try to set the part name of the child table without the schema name
|
|
318
|
+
|
|
319
|
+
context "when try to set the part name of the child table represented as a string to be interpolated at run time" do
|
|
320
|
+
|
|
321
|
+
it "returns part_name" do
|
|
322
|
+
dsl.part_name('#{model.table_name}_child_#{model.partition_normalize_key_value(field_value)}')
|
|
323
|
+
dsl.data.part_name.should == '#{model.table_name}_child_#{model.partition_normalize_key_value(field_value)}'
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
end # when try to set the part name of the child table represented as a string to be interpolated at run time
|
|
327
|
+
|
|
328
|
+
context "when try to set the part name(with proc) of the child table without the schema name" do
|
|
329
|
+
|
|
330
|
+
let(:lmd) do
|
|
331
|
+
lambda {|model, *partition_key_values|
|
|
332
|
+
return "#{model.table_name}_child_#{model.partition_normalize_key_value(field_value)}"
|
|
333
|
+
}
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
it "returns proc" do
|
|
337
|
+
dsl.part_name lmd
|
|
338
|
+
dsl.data.part_name.should == lmd
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
end # when try to set the part name(with proc) of the child table without the schema name
|
|
342
|
+
|
|
343
|
+
end # part_name
|
|
344
|
+
|
|
345
|
+
describe "table_name" do
|
|
346
|
+
|
|
347
|
+
context "when try to set the full name of a child table" do
|
|
348
|
+
|
|
349
|
+
it "returns table_name" do
|
|
350
|
+
dsl.table_name("foos_partitions.p42")
|
|
351
|
+
dsl.data.table_name.should == "foos_partitions.p42"
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
end # when try to set the full name of a child table
|
|
355
|
+
|
|
356
|
+
context "when try to set the table name of the child table represented as a string to be interpolated at run time" do
|
|
357
|
+
|
|
358
|
+
it "returns table_name" do
|
|
359
|
+
dsl.table_name('#{model.table_name}_partitions.#{model.table_name}_child_#{model.partition_normalize_key_value(field_value)}')
|
|
360
|
+
dsl.data.table_name.should == '#{model.table_name}_partitions.#{model.table_name}_child_#{model.partition_normalize_key_value(field_value)}'
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
end # when try to set the table name of the child table represented as a string to be interpolated at run time
|
|
364
|
+
|
|
365
|
+
context "when try to set the full name(with proc) of a child table" do
|
|
366
|
+
|
|
367
|
+
let(:lmd) do
|
|
368
|
+
lambda {|model, *partition_key_values|
|
|
369
|
+
return "#{model.table_name}_partitions.#{model.table_name}_child_#{model.partition_normalize_key_value(partition_key_values.first)}"
|
|
370
|
+
}
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
it "returns proc" do
|
|
374
|
+
dsl.table_name lmd
|
|
375
|
+
dsl.data.table_name.should == lmd
|
|
376
|
+
end
|
|
377
|
+
|
|
378
|
+
end # when try to set the full name(with proc) of a child table
|
|
379
|
+
|
|
380
|
+
end # table_name
|
|
381
|
+
|
|
382
|
+
describe "parent_table_name" do
|
|
383
|
+
|
|
384
|
+
context "when try to set the table name who is the direct ancestor of a child table" do
|
|
385
|
+
|
|
386
|
+
it "returns parent_table_name" do
|
|
387
|
+
dsl.parent_table_name("employees")
|
|
388
|
+
dsl.data.parent_table_name.should == "employees"
|
|
389
|
+
end
|
|
390
|
+
|
|
391
|
+
end # when try to set the table name who is the direct ancestor of a child table
|
|
392
|
+
|
|
393
|
+
context "when try to set the parent table name represented as a string to be interpolated at run time" do
|
|
394
|
+
|
|
395
|
+
it "returns parent_table_name" do
|
|
396
|
+
dsl.parent_table_name('#{model.table_name}')
|
|
397
|
+
dsl.data.parent_table_name.should == '#{model.table_name}'
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
end # when try to set the parent table name represented as a string to be interpolated at run time
|
|
401
|
+
|
|
402
|
+
context "when try to set the table name(with proc) who is the direct ancestor of a child table" do
|
|
403
|
+
|
|
404
|
+
let(:lmd) do
|
|
405
|
+
lambda {|model, *partition_key_values|
|
|
406
|
+
return "#{model.table_name}"
|
|
407
|
+
}
|
|
408
|
+
end
|
|
409
|
+
|
|
410
|
+
it "returns proc" do
|
|
411
|
+
dsl.parent_table_name lmd
|
|
412
|
+
dsl.data.parent_table_name.should == lmd
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
end # when try to set the table name(with proc) who is the direct ancestor of a child table
|
|
416
|
+
|
|
417
|
+
end # parent_table_name
|
|
418
|
+
|
|
419
|
+
describe "parent_table_schema_name" do
|
|
420
|
+
|
|
421
|
+
context "when try to set the schema name of the table who is the direct ancestor of a child table" do
|
|
422
|
+
|
|
423
|
+
it "returns parent_table_schema_name" do
|
|
424
|
+
dsl.parent_table_schema_name("public")
|
|
425
|
+
dsl.data.parent_table_schema_name.should == "public"
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
end # when try to set the schema name of the table who is the direct ancestor of a child table
|
|
429
|
+
|
|
430
|
+
context "when try to set the schema name represented as a string to be interpolated at run time" do
|
|
431
|
+
|
|
432
|
+
it "returns parent_table_schema_name" do
|
|
433
|
+
dsl.parent_table_schema_name('#{model.table_name}')
|
|
434
|
+
dsl.data.parent_table_schema_name.should == '#{model.table_name}'
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
end # when try to set the schema name represented as a string to be interpolated at run time
|
|
438
|
+
|
|
439
|
+
context "when try to set the schema name(with proc) of the table who is the direct ancestor of a child table" do
|
|
440
|
+
|
|
441
|
+
let(:lmd) do
|
|
442
|
+
lambda {|model, *partition_key_values|
|
|
443
|
+
return "#{model.table_name}"
|
|
444
|
+
}
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
it "returns proc" do
|
|
448
|
+
dsl.parent_table_schema_name lmd
|
|
449
|
+
dsl.data.parent_table_schema_name.should == lmd
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
end # when try to set the schema name(with proc) of the table who is the direct ancestor of a child table
|
|
453
|
+
|
|
454
|
+
end # parent_table_schema_name
|
|
455
|
+
|
|
456
|
+
end # Dsl
|
|
457
|
+
end # Configurator
|
|
458
|
+
end # PartitionedBase
|
|
459
|
+
end # Partitioned
|