veritas-optimizer 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. data/.travis.yml +4 -2
  2. data/Gemfile +8 -9
  3. data/Guardfile +3 -2
  4. data/README.rdoc +55 -0
  5. data/Rakefile +2 -2
  6. data/TODO +100 -98
  7. data/config/flay.yml +2 -2
  8. data/config/flog.yml +1 -1
  9. data/config/roodi.yml +2 -2
  10. data/config/site.reek +2 -2
  11. data/lib/veritas/optimizer/algebra/difference.rb +1 -1
  12. data/lib/veritas/optimizer/algebra/intersection.rb +1 -1
  13. data/lib/veritas/optimizer/algebra/join.rb +117 -1
  14. data/lib/veritas/optimizer/algebra/product.rb +1 -1
  15. data/lib/veritas/optimizer/algebra/rename.rb +12 -1
  16. data/lib/veritas/optimizer/algebra/restriction.rb +148 -0
  17. data/lib/veritas/optimizer/algebra/union.rb +1 -1
  18. data/lib/veritas/optimizer/function/connective/binary.rb +61 -8
  19. data/lib/veritas/optimizer/function/connective/conjunction.rb +1 -1
  20. data/lib/veritas/optimizer/function/connective/disjunction.rb +1 -1
  21. data/lib/veritas/optimizer/function/predicate/comparable.rb +4 -4
  22. data/lib/veritas/optimizer/relation/operation/binary.rb +1 -1
  23. data/lib/veritas/optimizer/support/predicate_partition.rb +182 -0
  24. data/lib/veritas/optimizer/version.rb +1 -1
  25. data/lib/veritas/optimizer.rb +2 -0
  26. data/spec/integration/veritas/algebra/rename/optimize_spec.rb +30 -30
  27. data/spec/integration/veritas/algebra/restriction/optimize_spec.rb +3 -3
  28. data/spec/integration/veritas/relation/operation/limit/optimize_spec.rb +1 -1
  29. data/spec/integration/veritas/relation/operation/offset/optimize_spec.rb +1 -1
  30. data/spec/integration/veritas/relation/operation/order/optimize_spec.rb +6 -6
  31. data/spec/integration/veritas/relation/operation/reverse/optimize_spec.rb +3 -3
  32. data/spec/spec_helper.rb +2 -1
  33. data/spec/unit/veritas/optimizer/algebra/extension/order_operand/optimizable_spec.rb +1 -1
  34. data/spec/unit/veritas/optimizer/algebra/extension/order_operand/optimize_spec.rb +1 -1
  35. data/spec/unit/veritas/optimizer/algebra/join/left_materialized_operand/optimizable_spec.rb +42 -0
  36. data/spec/unit/veritas/optimizer/algebra/join/left_materialized_operand/optimize_spec.rb +55 -0
  37. data/spec/unit/veritas/optimizer/algebra/join/right_materialized_operand/optimizable_spec.rb +42 -0
  38. data/spec/unit/veritas/optimizer/algebra/join/right_materialized_operand/optimize_spec.rb +55 -0
  39. data/spec/unit/veritas/optimizer/algebra/rename/limit_operand/optimizable_spec.rb +1 -1
  40. data/spec/unit/veritas/optimizer/algebra/rename/limit_operand/optimize_spec.rb +1 -1
  41. data/spec/unit/veritas/optimizer/algebra/rename/offset_operand/optimizable_spec.rb +1 -1
  42. data/spec/unit/veritas/optimizer/algebra/rename/offset_operand/optimize_spec.rb +1 -1
  43. data/spec/unit/veritas/optimizer/algebra/rename/order_operand/optimizable_spec.rb +1 -1
  44. data/spec/unit/veritas/optimizer/algebra/rename/order_operand/optimize_spec.rb +1 -1
  45. data/spec/unit/veritas/optimizer/algebra/rename/reverse_operand/optimizable_spec.rb +1 -1
  46. data/spec/unit/veritas/optimizer/algebra/rename/reverse_operand/optimize_spec.rb +1 -1
  47. data/spec/unit/veritas/optimizer/algebra/restriction/combination_operand/optimizable_spec.rb +41 -0
  48. data/spec/unit/veritas/optimizer/algebra/restriction/combination_operand/optimize_spec.rb +35 -0
  49. data/spec/unit/veritas/optimizer/algebra/restriction/join_operand/optimizable_spec.rb +51 -0
  50. data/spec/unit/veritas/optimizer/algebra/restriction/join_operand/optimize_spec.rb +48 -0
  51. data/spec/unit/veritas/optimizer/algebra/restriction/order_operand/optimizable_spec.rb +1 -1
  52. data/spec/unit/veritas/optimizer/algebra/restriction/order_operand/optimize_spec.rb +1 -1
  53. data/spec/unit/veritas/optimizer/algebra/restriction/product_operand/optimizable_spec.rb +44 -0
  54. data/spec/unit/veritas/optimizer/algebra/restriction/product_operand/optimize_spec.rb +48 -0
  55. data/spec/unit/veritas/optimizer/algebra/restriction/unoptimized_operand/optimize_spec.rb +4 -4
  56. data/spec/unit/veritas/optimizer/algebra/summarization/empty_operand/optimize_spec.rb +1 -1
  57. data/spec/unit/veritas/optimizer/algebra/summarization/empty_summarize_per/optimize_spec.rb +7 -7
  58. data/spec/unit/veritas/optimizer/algebra/summarization/order_operand/optimizable_spec.rb +1 -1
  59. data/spec/unit/veritas/optimizer/algebra/summarization/order_operand/optimize_spec.rb +1 -1
  60. data/spec/unit/veritas/optimizer/function/connective/conjunction/optimizable_to_exclusion/optimizable_spec.rb +38 -6
  61. data/spec/unit/veritas/optimizer/function/connective/conjunction/optimizable_to_exclusion/optimize_spec.rb +44 -6
  62. data/spec/unit/veritas/optimizer/function/connective/disjunction/optimizable_to_inclusion/optimizable_spec.rb +38 -6
  63. data/spec/unit/veritas/optimizer/function/connective/disjunction/optimizable_to_inclusion/optimize_spec.rb +44 -6
  64. data/spec/unit/veritas/optimizer/predicate_partition/left_spec.rb +149 -0
  65. data/spec/unit/veritas/optimizer/predicate_partition/remainder_spec.rb +149 -0
  66. data/spec/unit/veritas/optimizer/predicate_partition/right_spec.rb +149 -0
  67. data/spec/unit/veritas/optimizer/relation/operation/binary/left_order_operand/optimizable_spec.rb +1 -1
  68. data/spec/unit/veritas/optimizer/relation/operation/binary/left_order_operand/optimize_spec.rb +1 -1
  69. data/spec/unit/veritas/optimizer/relation/operation/binary/{materialized_operand → materialized_operands}/optimizable_spec.rb +1 -1
  70. data/spec/unit/veritas/optimizer/relation/operation/binary/{materialized_operand → materialized_operands}/optimize_spec.rb +1 -1
  71. data/spec/unit/veritas/optimizer/relation/operation/binary/right_order_operand/optimizable_spec.rb +1 -1
  72. data/spec/unit/veritas/optimizer/relation/operation/binary/right_order_operand/optimize_spec.rb +1 -1
  73. data/spec/unit/veritas/optimizer/relation/operation/limit/equal_limit_operand/optimizable_spec.rb +3 -3
  74. data/spec/unit/veritas/optimizer/relation/operation/limit/equal_limit_operand/optimize_spec.rb +4 -4
  75. data/spec/unit/veritas/optimizer/relation/operation/limit/limit_operand/optimizable_spec.rb +3 -3
  76. data/spec/unit/veritas/optimizer/relation/operation/limit/limit_operand/optimize_spec.rb +3 -3
  77. data/spec/unit/veritas/optimizer/relation/operation/limit/unoptimized_operand/optimizable_spec.rb +4 -4
  78. data/spec/unit/veritas/optimizer/relation/operation/limit/unoptimized_operand/optimize_spec.rb +4 -4
  79. data/spec/unit/veritas/optimizer/relation/operation/limit/zero_limit/optimizable_spec.rb +3 -3
  80. data/spec/unit/veritas/optimizer/relation/operation/limit/zero_limit/optimize_spec.rb +4 -4
  81. data/spec/unit/veritas/optimizer/relation/operation/offset/offset_operand/optimizable_spec.rb +3 -3
  82. data/spec/unit/veritas/optimizer/relation/operation/offset/offset_operand/optimize_spec.rb +3 -3
  83. data/spec/unit/veritas/optimizer/relation/operation/offset/unoptimized_operand/optimizable_spec.rb +4 -4
  84. data/spec/unit/veritas/optimizer/relation/operation/offset/unoptimized_operand/optimize_spec.rb +4 -4
  85. data/spec/unit/veritas/optimizer/relation/operation/offset/zero_offset/optimizable_spec.rb +3 -3
  86. data/spec/unit/veritas/optimizer/relation/operation/offset/zero_offset/optimize_spec.rb +3 -3
  87. data/spec/unit/veritas/optimizer/relation/operation/order/one_limit_operand/optimizable_spec.rb +3 -3
  88. data/spec/unit/veritas/optimizer/relation/operation/order/one_limit_operand/optimize_spec.rb +2 -2
  89. data/spec/unit/veritas/optimizer/relation/operation/order/order_operand/optimizable_spec.rb +2 -2
  90. data/spec/unit/veritas/optimizer/relation/operation/order/order_operand/optimize_spec.rb +2 -2
  91. data/spec/unit/veritas/optimizer/relation/operation/order/unoptimized_operand/optimizable_spec.rb +1 -1
  92. data/spec/unit/veritas/optimizer/relation/operation/order/unoptimized_operand/optimize_spec.rb +1 -1
  93. data/spec/unit/veritas/optimizer/relation/operation/reverse/order_operand/optimizable_spec.rb +2 -2
  94. data/spec/unit/veritas/optimizer/relation/operation/reverse/order_operand/optimize_spec.rb +1 -1
  95. data/spec/unit/veritas/optimizer/relation/operation/reverse/reverse_operand/optimizable_spec.rb +3 -3
  96. data/spec/unit/veritas/optimizer/relation/operation/reverse/reverse_operand/optimize_spec.rb +1 -1
  97. data/spec/unit/veritas/optimizer/relation/operation/reverse/unoptimized_operand/optimizable_spec.rb +3 -3
  98. data/spec/unit/veritas/optimizer/relation/operation/reverse/unoptimized_operand/optimize_spec.rb +1 -1
  99. data/spec/unit/veritas/optimizer/relation/operation/unary/order_operand/optimizable_spec.rb +1 -1
  100. data/spec/unit/veritas/optimizer/relation/operation/unary/order_operand/optimize_spec.rb +1 -1
  101. data/tasks/metrics/heckle.rake +1 -0
  102. data/veritas-optimizer.gemspec +33 -19
  103. metadata +37 -23
@@ -6,7 +6,7 @@ describe Optimizer::Relation::Operation::Order::UnoptimizedOperand, '#optimize'
6
6
  subject { object.optimize }
7
7
 
8
8
  let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each) }
9
- let(:relation) { base.rename({}).order }
9
+ let(:relation) { base.rename({}).sort_by { |r| r.id } }
10
10
  let(:object) { described_class.new(relation) }
11
11
 
12
12
  before do
@@ -14,13 +14,13 @@ describe Optimizer::Relation::Operation::Reverse::OrderOperand, '#optimizable?'
14
14
  end
15
15
 
16
16
  context 'when the operand is ordered' do
17
- let(:operand) { base.order }
17
+ let(:operand) { base.sort_by { |r| r.id } }
18
18
 
19
19
  it { should be(true) }
20
20
  end
21
21
 
22
22
  context 'when the operand is not ordered' do
23
- let(:operand) { base.order.take(2) }
23
+ let(:operand) { base.sort_by { |r| r.id }.take(2) }
24
24
 
25
25
  it { should be(false) }
26
26
  end
@@ -6,7 +6,7 @@ describe Optimizer::Relation::Operation::Reverse::OrderOperand, '#optimize' do
6
6
  subject { object.optimize }
7
7
 
8
8
  let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each) }
9
- let(:operand) { base.order }
9
+ let(:operand) { base.sort_by { |r| r.id } }
10
10
  let(:relation) { operand.reverse }
11
11
  let(:object) { described_class.new(relation) }
12
12
 
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  describe Optimizer::Relation::Operation::Reverse::ReverseOperand, '#optimizable?' do
6
6
  subject { object.optimizable? }
7
7
 
8
- let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each).order }
9
- let(:relation) { operand.reverse }
10
- let(:object) { described_class.new(relation) }
8
+ let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each).sort_by { |r| r.id } }
9
+ let(:relation) { operand.reverse }
10
+ let(:object) { described_class.new(relation) }
11
11
 
12
12
  before do
13
13
  object.operation.should be_kind_of(Relation::Operation::Reverse)
@@ -6,7 +6,7 @@ describe Optimizer::Relation::Operation::Reverse::ReverseOperand, '#optimize' do
6
6
  subject { object.optimize }
7
7
 
8
8
  let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each) }
9
- let(:limit) { base.order.take(2) }
9
+ let(:limit) { base.sort_by { |r| r.id }.take(2) }
10
10
  let(:operand) { limit.reverse }
11
11
  let(:relation) { operand.reverse }
12
12
  let(:object) { described_class.new(relation) }
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  describe Optimizer::Relation::Operation::Reverse::UnoptimizedOperand, '#optimizable?' do
6
6
  subject { object.optimizable? }
7
7
 
8
- let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each).order }
9
- let(:relation) { operand.reverse }
10
- let(:object) { described_class.new(relation) }
8
+ let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each).sort_by { |r| r.id } }
9
+ let(:relation) { operand.reverse }
10
+ let(:object) { described_class.new(relation) }
11
11
 
12
12
  before do
13
13
  object.operation.should be_kind_of(Relation::Operation::Reverse)
@@ -6,7 +6,7 @@ describe Optimizer::Relation::Operation::Reverse::UnoptimizedOperand, '#optimize
6
6
  subject { object.optimize }
7
7
 
8
8
  let(:base) { Relation.new([ [ :id, Integer ] ], [ [ 1 ] ].each) }
9
- let(:order) { base.order }
9
+ let(:order) { base.sort_by { |r| r.id } }
10
10
  let(:relation) { order.rename({}).reverse }
11
11
  let(:object) { described_class.new(relation) }
12
12
 
@@ -15,7 +15,7 @@ describe Optimizer::Relation::Operation::Unary::OrderOperand, '#optimizable?' do
15
15
  end
16
16
 
17
17
  context 'when operand is an order' do
18
- let(:operand) { base.order }
18
+ let(:operand) { base.sort_by { |r| r.id } }
19
19
 
20
20
  it { should be(true) }
21
21
  end
@@ -7,7 +7,7 @@ describe Optimizer::Relation::Operation::Unary::OrderOperand, '#optimize' do
7
7
 
8
8
  let(:described_class) { Class.new(Optimizer::Relation::Operation::Unary) }
9
9
  let(:base) { Relation.new([ [ :id, Integer ] ], [].each) }
10
- let(:operand) { base.order }
10
+ let(:operand) { base.sort_by { |r| r.id } }
11
11
  let(:relation) { operand.project([]) }
12
12
  let(:object) { described_class.new(relation) }
13
13
 
@@ -6,6 +6,7 @@ $LOAD_PATH.unshift(File.expand_path('../../../lib', __FILE__))
6
6
  begin
7
7
  require 'pathname'
8
8
  require 'backports'
9
+ require 'backports/basic_object'
9
10
  require 'active_support/inflector'
10
11
  require 'heckle'
11
12
  require 'mspec'
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{veritas-optimizer}
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Dan Kubb}]
12
- s.date = %q{2011-06-01}
12
+ s.date = %q{2011-07-29}
13
13
  s.description = %q{Optimizes veritas relations}
14
14
  s.email = %q{dan.kubb@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -93,6 +93,7 @@ Gem::Specification.new do |s|
93
93
  "lib/veritas/optimizer/relation/operation/order.rb",
94
94
  "lib/veritas/optimizer/relation/operation/reverse.rb",
95
95
  "lib/veritas/optimizer/relation/operation/unary.rb",
96
+ "lib/veritas/optimizer/support/predicate_partition.rb",
96
97
  "lib/veritas/optimizer/version.rb",
97
98
  "spec/integration/veritas/algebra/difference/optimize_spec.rb",
98
99
  "spec/integration/veritas/algebra/intersection/optimize_spec.rb",
@@ -142,6 +143,10 @@ Gem::Specification.new do |s|
142
143
  "spec/unit/veritas/optimizer/algebra/intersection/equal_operands/optimize_spec.rb",
143
144
  "spec/unit/veritas/optimizer/algebra/join/equal_headers/optimizable_spec.rb",
144
145
  "spec/unit/veritas/optimizer/algebra/join/equal_headers/optimize_spec.rb",
146
+ "spec/unit/veritas/optimizer/algebra/join/left_materialized_operand/optimizable_spec.rb",
147
+ "spec/unit/veritas/optimizer/algebra/join/left_materialized_operand/optimize_spec.rb",
148
+ "spec/unit/veritas/optimizer/algebra/join/right_materialized_operand/optimizable_spec.rb",
149
+ "spec/unit/veritas/optimizer/algebra/join/right_materialized_operand/optimize_spec.rb",
145
150
  "spec/unit/veritas/optimizer/algebra/product/table_dee_left/optimizable_spec.rb",
146
151
  "spec/unit/veritas/optimizer/algebra/product/table_dee_left/optimize_spec.rb",
147
152
  "spec/unit/veritas/optimizer/algebra/product/table_dee_right/optimizable_spec.rb",
@@ -177,11 +182,17 @@ Gem::Specification.new do |s|
177
182
  "spec/unit/veritas/optimizer/algebra/rename/set_operand/optimize_spec.rb",
178
183
  "spec/unit/veritas/optimizer/algebra/rename/unoptimized_operand/optimizable_spec.rb",
179
184
  "spec/unit/veritas/optimizer/algebra/rename/unoptimized_operand/optimize_spec.rb",
185
+ "spec/unit/veritas/optimizer/algebra/restriction/combination_operand/optimizable_spec.rb",
186
+ "spec/unit/veritas/optimizer/algebra/restriction/combination_operand/optimize_spec.rb",
180
187
  "spec/unit/veritas/optimizer/algebra/restriction/contradiction/optimizable_spec.rb",
181
188
  "spec/unit/veritas/optimizer/algebra/restriction/contradiction/optimize_spec.rb",
189
+ "spec/unit/veritas/optimizer/algebra/restriction/join_operand/optimizable_spec.rb",
190
+ "spec/unit/veritas/optimizer/algebra/restriction/join_operand/optimize_spec.rb",
182
191
  "spec/unit/veritas/optimizer/algebra/restriction/order_operand/optimizable_spec.rb",
183
192
  "spec/unit/veritas/optimizer/algebra/restriction/order_operand/optimize_spec.rb",
184
193
  "spec/unit/veritas/optimizer/algebra/restriction/predicate_spec.rb",
194
+ "spec/unit/veritas/optimizer/algebra/restriction/product_operand/optimizable_spec.rb",
195
+ "spec/unit/veritas/optimizer/algebra/restriction/product_operand/optimize_spec.rb",
185
196
  "spec/unit/veritas/optimizer/algebra/restriction/restriction_operand/optimizable_spec.rb",
186
197
  "spec/unit/veritas/optimizer/algebra/restriction/restriction_operand/optimize_spec.rb",
187
198
  "spec/unit/veritas/optimizer/algebra/restriction/set_operand/optimizable_spec.rb",
@@ -282,6 +293,9 @@ Gem::Specification.new do |s|
282
293
  "spec/unit/veritas/optimizer/optimizable/optimize_spec.rb",
283
294
  "spec/unit/veritas/optimizer/optimizable_spec.rb",
284
295
  "spec/unit/veritas/optimizer/optimize_spec.rb",
296
+ "spec/unit/veritas/optimizer/predicate_partition/left_spec.rb",
297
+ "spec/unit/veritas/optimizer/predicate_partition/remainder_spec.rb",
298
+ "spec/unit/veritas/optimizer/predicate_partition/right_spec.rb",
285
299
  "spec/unit/veritas/optimizer/relation/materialized/empty_operand/optimizable_spec.rb",
286
300
  "spec/unit/veritas/optimizer/relation/materialized/empty_operand/optimize_spec.rb",
287
301
  "spec/unit/veritas/optimizer/relation/operation/binary/empty_left/optimizable_spec.rb",
@@ -290,8 +304,8 @@ Gem::Specification.new do |s|
290
304
  "spec/unit/veritas/optimizer/relation/operation/binary/left_order_operand/optimizable_spec.rb",
291
305
  "spec/unit/veritas/optimizer/relation/operation/binary/left_order_operand/optimize_spec.rb",
292
306
  "spec/unit/veritas/optimizer/relation/operation/binary/left_spec.rb",
293
- "spec/unit/veritas/optimizer/relation/operation/binary/materialized_operand/optimizable_spec.rb",
294
- "spec/unit/veritas/optimizer/relation/operation/binary/materialized_operand/optimize_spec.rb",
307
+ "spec/unit/veritas/optimizer/relation/operation/binary/materialized_operands/optimizable_spec.rb",
308
+ "spec/unit/veritas/optimizer/relation/operation/binary/materialized_operands/optimize_spec.rb",
295
309
  "spec/unit/veritas/optimizer/relation/operation/binary/right_order_operand/optimizable_spec.rb",
296
310
  "spec/unit/veritas/optimizer/relation/operation/binary/right_order_operand/optimize_spec.rb",
297
311
  "spec/unit/veritas/optimizer/relation/operation/binary/right_spec.rb",
@@ -355,27 +369,27 @@ Gem::Specification.new do |s|
355
369
  s.specification_version = 3
356
370
 
357
371
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
358
- s.add_runtime_dependency(%q<veritas>, ["= 0.0.4"])
359
- s.add_development_dependency(%q<backports>, ["~> 2.2.1"])
360
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
361
- s.add_development_dependency(%q<rake>, ["~> 0.9.0"])
372
+ s.add_runtime_dependency(%q<veritas>, ["~> 0.0.5"])
373
+ s.add_development_dependency(%q<backports>, ["~> 2.3.0"])
374
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
375
+ s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
362
376
  s.add_development_dependency(%q<rspec>, ["~> 1.3.2"])
363
- s.add_development_dependency(%q<yard>, ["~> 0.7.1"])
377
+ s.add_development_dependency(%q<yard>, ["~> 0.7.2"])
364
378
  else
365
- s.add_dependency(%q<veritas>, ["= 0.0.4"])
366
- s.add_dependency(%q<backports>, ["~> 2.2.1"])
367
- s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
368
- s.add_dependency(%q<rake>, ["~> 0.9.0"])
379
+ s.add_dependency(%q<veritas>, ["~> 0.0.5"])
380
+ s.add_dependency(%q<backports>, ["~> 2.3.0"])
381
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
382
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
369
383
  s.add_dependency(%q<rspec>, ["~> 1.3.2"])
370
- s.add_dependency(%q<yard>, ["~> 0.7.1"])
384
+ s.add_dependency(%q<yard>, ["~> 0.7.2"])
371
385
  end
372
386
  else
373
- s.add_dependency(%q<veritas>, ["= 0.0.4"])
374
- s.add_dependency(%q<backports>, ["~> 2.2.1"])
375
- s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
376
- s.add_dependency(%q<rake>, ["~> 0.9.0"])
387
+ s.add_dependency(%q<veritas>, ["~> 0.0.5"])
388
+ s.add_dependency(%q<backports>, ["~> 2.3.0"])
389
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
390
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
377
391
  s.add_dependency(%q<rspec>, ["~> 1.3.2"])
378
- s.add_dependency(%q<yard>, ["~> 0.7.1"])
392
+ s.add_dependency(%q<yard>, ["~> 0.7.2"])
379
393
  end
380
394
  end
381
395
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veritas-optimizer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dan Kubb
@@ -15,20 +15,20 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-01 00:00:00 Z
18
+ date: 2011-07-29 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
22
22
  none: false
23
23
  requirements:
24
- - - "="
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
- hash: 23
26
+ hash: 21
27
27
  segments:
28
28
  - 0
29
29
  - 0
30
- - 4
31
- version: 0.0.4
30
+ - 5
31
+ version: 0.0.5
32
32
  type: :runtime
33
33
  requirement: *id001
34
34
  prerelease: false
@@ -39,12 +39,12 @@ dependencies:
39
39
  requirements:
40
40
  - - ~>
41
41
  - !ruby/object:Gem::Version
42
- hash: 5
42
+ hash: 3
43
43
  segments:
44
44
  - 2
45
- - 2
46
- - 1
47
- version: 2.2.1
45
+ - 3
46
+ - 0
47
+ version: 2.3.0
48
48
  type: :development
49
49
  requirement: *id002
50
50
  prerelease: false
@@ -55,12 +55,12 @@ dependencies:
55
55
  requirements:
56
56
  - - ~>
57
57
  - !ruby/object:Gem::Version
58
- hash: 15
58
+ hash: 7
59
59
  segments:
60
60
  - 1
61
61
  - 6
62
- - 0
63
- version: 1.6.0
62
+ - 4
63
+ version: 1.6.4
64
64
  type: :development
65
65
  requirement: *id003
66
66
  prerelease: false
@@ -71,12 +71,12 @@ dependencies:
71
71
  requirements:
72
72
  - - ~>
73
73
  - !ruby/object:Gem::Version
74
- hash: 59
74
+ hash: 63
75
75
  segments:
76
76
  - 0
77
77
  - 9
78
- - 0
79
- version: 0.9.0
78
+ - 2
79
+ version: 0.9.2
80
80
  type: :development
81
81
  requirement: *id004
82
82
  prerelease: false
@@ -103,12 +103,12 @@ dependencies:
103
103
  requirements:
104
104
  - - ~>
105
105
  - !ruby/object:Gem::Version
106
- hash: 1
106
+ hash: 7
107
107
  segments:
108
108
  - 0
109
109
  - 7
110
- - 1
111
- version: 0.7.1
110
+ - 2
111
+ version: 0.7.2
112
112
  type: :development
113
113
  requirement: *id006
114
114
  prerelease: false
@@ -199,6 +199,7 @@ files:
199
199
  - lib/veritas/optimizer/relation/operation/order.rb
200
200
  - lib/veritas/optimizer/relation/operation/reverse.rb
201
201
  - lib/veritas/optimizer/relation/operation/unary.rb
202
+ - lib/veritas/optimizer/support/predicate_partition.rb
202
203
  - lib/veritas/optimizer/version.rb
203
204
  - spec/integration/veritas/algebra/difference/optimize_spec.rb
204
205
  - spec/integration/veritas/algebra/intersection/optimize_spec.rb
@@ -248,6 +249,10 @@ files:
248
249
  - spec/unit/veritas/optimizer/algebra/intersection/equal_operands/optimize_spec.rb
249
250
  - spec/unit/veritas/optimizer/algebra/join/equal_headers/optimizable_spec.rb
250
251
  - spec/unit/veritas/optimizer/algebra/join/equal_headers/optimize_spec.rb
252
+ - spec/unit/veritas/optimizer/algebra/join/left_materialized_operand/optimizable_spec.rb
253
+ - spec/unit/veritas/optimizer/algebra/join/left_materialized_operand/optimize_spec.rb
254
+ - spec/unit/veritas/optimizer/algebra/join/right_materialized_operand/optimizable_spec.rb
255
+ - spec/unit/veritas/optimizer/algebra/join/right_materialized_operand/optimize_spec.rb
251
256
  - spec/unit/veritas/optimizer/algebra/product/table_dee_left/optimizable_spec.rb
252
257
  - spec/unit/veritas/optimizer/algebra/product/table_dee_left/optimize_spec.rb
253
258
  - spec/unit/veritas/optimizer/algebra/product/table_dee_right/optimizable_spec.rb
@@ -283,11 +288,17 @@ files:
283
288
  - spec/unit/veritas/optimizer/algebra/rename/set_operand/optimize_spec.rb
284
289
  - spec/unit/veritas/optimizer/algebra/rename/unoptimized_operand/optimizable_spec.rb
285
290
  - spec/unit/veritas/optimizer/algebra/rename/unoptimized_operand/optimize_spec.rb
291
+ - spec/unit/veritas/optimizer/algebra/restriction/combination_operand/optimizable_spec.rb
292
+ - spec/unit/veritas/optimizer/algebra/restriction/combination_operand/optimize_spec.rb
286
293
  - spec/unit/veritas/optimizer/algebra/restriction/contradiction/optimizable_spec.rb
287
294
  - spec/unit/veritas/optimizer/algebra/restriction/contradiction/optimize_spec.rb
295
+ - spec/unit/veritas/optimizer/algebra/restriction/join_operand/optimizable_spec.rb
296
+ - spec/unit/veritas/optimizer/algebra/restriction/join_operand/optimize_spec.rb
288
297
  - spec/unit/veritas/optimizer/algebra/restriction/order_operand/optimizable_spec.rb
289
298
  - spec/unit/veritas/optimizer/algebra/restriction/order_operand/optimize_spec.rb
290
299
  - spec/unit/veritas/optimizer/algebra/restriction/predicate_spec.rb
300
+ - spec/unit/veritas/optimizer/algebra/restriction/product_operand/optimizable_spec.rb
301
+ - spec/unit/veritas/optimizer/algebra/restriction/product_operand/optimize_spec.rb
291
302
  - spec/unit/veritas/optimizer/algebra/restriction/restriction_operand/optimizable_spec.rb
292
303
  - spec/unit/veritas/optimizer/algebra/restriction/restriction_operand/optimize_spec.rb
293
304
  - spec/unit/veritas/optimizer/algebra/restriction/set_operand/optimizable_spec.rb
@@ -388,6 +399,9 @@ files:
388
399
  - spec/unit/veritas/optimizer/optimizable/optimize_spec.rb
389
400
  - spec/unit/veritas/optimizer/optimizable_spec.rb
390
401
  - spec/unit/veritas/optimizer/optimize_spec.rb
402
+ - spec/unit/veritas/optimizer/predicate_partition/left_spec.rb
403
+ - spec/unit/veritas/optimizer/predicate_partition/remainder_spec.rb
404
+ - spec/unit/veritas/optimizer/predicate_partition/right_spec.rb
391
405
  - spec/unit/veritas/optimizer/relation/materialized/empty_operand/optimizable_spec.rb
392
406
  - spec/unit/veritas/optimizer/relation/materialized/empty_operand/optimize_spec.rb
393
407
  - spec/unit/veritas/optimizer/relation/operation/binary/empty_left/optimizable_spec.rb
@@ -396,8 +410,8 @@ files:
396
410
  - spec/unit/veritas/optimizer/relation/operation/binary/left_order_operand/optimizable_spec.rb
397
411
  - spec/unit/veritas/optimizer/relation/operation/binary/left_order_operand/optimize_spec.rb
398
412
  - spec/unit/veritas/optimizer/relation/operation/binary/left_spec.rb
399
- - spec/unit/veritas/optimizer/relation/operation/binary/materialized_operand/optimizable_spec.rb
400
- - spec/unit/veritas/optimizer/relation/operation/binary/materialized_operand/optimize_spec.rb
413
+ - spec/unit/veritas/optimizer/relation/operation/binary/materialized_operands/optimizable_spec.rb
414
+ - spec/unit/veritas/optimizer/relation/operation/binary/materialized_operands/optimize_spec.rb
401
415
  - spec/unit/veritas/optimizer/relation/operation/binary/right_order_operand/optimizable_spec.rb
402
416
  - spec/unit/veritas/optimizer/relation/operation/binary/right_order_operand/optimize_spec.rb
403
417
  - spec/unit/veritas/optimizer/relation/operation/binary/right_spec.rb