lib/bmg/algebra.rb in bmg-0.18.5 vs lib/bmg/algebra.rb in bmg-0.18.6

- old
+ new

@@ -181,18 +181,36 @@ def _transform(type, transformation, options) Operator::Transform.new(type, self, transformation, options) end protected :_transform + def ungroup(attrs) + _ungroup self.type.ungroup(attrs), attrs + end + + def _ungroup(type, attrs) + Operator::Ungroup.new(type, self, attrs) + end + protected :_ungroup + def union(other, options = {}) return self if other.is_a?(Relation::Empty) _union self.type.union(other.type), other, options end def _union(type, other, options) Operator::Union.new(type, [self, other], options) end protected :_union + + def unwrap(attrs) + _unwrap self.type.unwrap(attrs), attrs + end + + def _unwrap(type, attrs) + Operator::Unwrap.new(type, self, attrs) + end + protected :_unwrap def spied(spy) return self if spy.nil? Relation::Spied.new(self, spy) end