diff options
Diffstat (limited to 'lib/sql_algebra')
-rw-r--r-- | lib/sql_algebra/predicates/binary_predicate.rb (renamed from lib/sql_algebra/relations/predicates/binary_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/equality_predicate.rb (renamed from lib/sql_algebra/relations/predicates/equality_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/greater_than_or_equal_to_predicate.rb (renamed from lib/sql_algebra/relations/predicates/greater_than_or_equal_to_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/greater_than_predicate.rb (renamed from lib/sql_algebra/relations/predicates/greater_than_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/less_than_or_equal_to_predicate.rb (renamed from lib/sql_algebra/relations/predicates/less_than_or_equal_to_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/less_than_predicate.rb (renamed from lib/sql_algebra/relations/predicates/less_than_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/match_predicate.rb (renamed from lib/sql_algebra/relations/predicates/match_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/predicate.rb (renamed from lib/sql_algebra/relations/predicates/predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/range_inclusion_predicate.rb (renamed from lib/sql_algebra/relations/predicates/range_inclusion_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/predicates/relation_inclusion_predicate.rb (renamed from lib/sql_algebra/relations/predicates/relation_inclusion_predicate.rb) | 0 | ||||
-rw-r--r-- | lib/sql_algebra/relations/order_relation.rb | 11 | ||||
-rw-r--r-- | lib/sql_algebra/relations/projection_relation.rb | 11 | ||||
-rw-r--r-- | lib/sql_algebra/relations/range_relation.rb | 11 | ||||
-rw-r--r-- | lib/sql_algebra/relations/selection_relation.rb | 12 |
14 files changed, 45 insertions, 0 deletions
diff --git a/lib/sql_algebra/relations/predicates/binary_predicate.rb b/lib/sql_algebra/predicates/binary_predicate.rb index d7f4cb20e7..d7f4cb20e7 100644 --- a/lib/sql_algebra/relations/predicates/binary_predicate.rb +++ b/lib/sql_algebra/predicates/binary_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/equality_predicate.rb b/lib/sql_algebra/predicates/equality_predicate.rb index 2d206e6c12..2d206e6c12 100644 --- a/lib/sql_algebra/relations/predicates/equality_predicate.rb +++ b/lib/sql_algebra/predicates/equality_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/greater_than_or_equal_to_predicate.rb b/lib/sql_algebra/predicates/greater_than_or_equal_to_predicate.rb index 49127c312c..49127c312c 100644 --- a/lib/sql_algebra/relations/predicates/greater_than_or_equal_to_predicate.rb +++ b/lib/sql_algebra/predicates/greater_than_or_equal_to_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/greater_than_predicate.rb b/lib/sql_algebra/predicates/greater_than_predicate.rb index 03aecaed62..03aecaed62 100644 --- a/lib/sql_algebra/relations/predicates/greater_than_predicate.rb +++ b/lib/sql_algebra/predicates/greater_than_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/less_than_or_equal_to_predicate.rb b/lib/sql_algebra/predicates/less_than_or_equal_to_predicate.rb index fee6ea7f35..fee6ea7f35 100644 --- a/lib/sql_algebra/relations/predicates/less_than_or_equal_to_predicate.rb +++ b/lib/sql_algebra/predicates/less_than_or_equal_to_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/less_than_predicate.rb b/lib/sql_algebra/predicates/less_than_predicate.rb index 03cbdcf000..03cbdcf000 100644 --- a/lib/sql_algebra/relations/predicates/less_than_predicate.rb +++ b/lib/sql_algebra/predicates/less_than_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/match_predicate.rb b/lib/sql_algebra/predicates/match_predicate.rb index 90a13090d4..90a13090d4 100644 --- a/lib/sql_algebra/relations/predicates/match_predicate.rb +++ b/lib/sql_algebra/predicates/match_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/predicate.rb b/lib/sql_algebra/predicates/predicate.rb index 4c395a3fdc..4c395a3fdc 100644 --- a/lib/sql_algebra/relations/predicates/predicate.rb +++ b/lib/sql_algebra/predicates/predicate.rb diff --git a/lib/sql_algebra/relations/predicates/range_inclusion_predicate.rb b/lib/sql_algebra/predicates/range_inclusion_predicate.rb index e69de29bb2..e69de29bb2 100644 --- a/lib/sql_algebra/relations/predicates/range_inclusion_predicate.rb +++ b/lib/sql_algebra/predicates/range_inclusion_predicate.rb diff --git a/lib/sql_algebra/relations/predicates/relation_inclusion_predicate.rb b/lib/sql_algebra/predicates/relation_inclusion_predicate.rb index 5881a85d99..5881a85d99 100644 --- a/lib/sql_algebra/relations/predicates/relation_inclusion_predicate.rb +++ b/lib/sql_algebra/predicates/relation_inclusion_predicate.rb diff --git a/lib/sql_algebra/relations/order_relation.rb b/lib/sql_algebra/relations/order_relation.rb new file mode 100644 index 0000000000..8d07c58d64 --- /dev/null +++ b/lib/sql_algebra/relations/order_relation.rb @@ -0,0 +1,11 @@ +class OrderRelation < Relation + attr_reader :relation, :attributes + + def initialize(relation, *attributes) + @relation, @attributes = relation, attributes + end + + def ==(other) + relation == other.relation and attributes.eql?(other.attributes) + end +end
\ No newline at end of file diff --git a/lib/sql_algebra/relations/projection_relation.rb b/lib/sql_algebra/relations/projection_relation.rb new file mode 100644 index 0000000000..caebfc1b62 --- /dev/null +++ b/lib/sql_algebra/relations/projection_relation.rb @@ -0,0 +1,11 @@ +class ProjectionRelation < Relation + attr_reader :relation, :attributes + + def initialize(relation, *attributes) + @relation, @attributes = relation, attributes + end + + def ==(other) + relation == other.relation and attributes.eql?(other.attributes) + end +end
\ No newline at end of file diff --git a/lib/sql_algebra/relations/range_relation.rb b/lib/sql_algebra/relations/range_relation.rb new file mode 100644 index 0000000000..fd7e2898fa --- /dev/null +++ b/lib/sql_algebra/relations/range_relation.rb @@ -0,0 +1,11 @@ +class RangeRelation < Relation + attr_reader :relation, :range + + def initialize(relation, range) + @relation, @range = relation, range + end + + def ==(other) + relation == other.relation and range == other.range + end +end
\ No newline at end of file diff --git a/lib/sql_algebra/relations/selection_relation.rb b/lib/sql_algebra/relations/selection_relation.rb new file mode 100644 index 0000000000..5654d8de31 --- /dev/null +++ b/lib/sql_algebra/relations/selection_relation.rb @@ -0,0 +1,12 @@ +class SelectionRelation < Relation + attr_reader :relation, :predicate + + def initialize(relation, *predicates) + @predicate = predicates.shift + @relation = predicates.empty?? relation : SelectionRelation.new(relation, *predicates) + end + + def ==(other) + relation == other.relation and predicate == other.predicate + end +end
\ No newline at end of file |