// remove tuples that satisfy predicate public void Delete(string heading, Func <Tup, bool> selfunc) { var head = CommonHeading.Create(heading); var map = head.CreateMap(Heading); Value = new RelValue(Heading, Value.Where(t => !selfunc(RelStatic.CreateByMap <Tup>(t, map)))); }
// update tuples that satisfy predicate public void Update(string heading, Func <Tup, bool> selfunc, object newvalue) { // map for selection tuple var head1 = CommonHeading.Create(heading); var map1 = head1.CreateMap(Heading); // map for replace tuple var head2 = Heading.Remove(head1.Fields.Last()).Append(CommonField.Empty); var map2 = head2.CreateMap(Heading); Value = new RelValue(Heading, Value.Select(t => selfunc(RelStatic.CreateByMap <Tup>(t, map1)) ? RelStatic.CreateByMap <Tup>(t, map2, newvalue) : t)); }
public RelVar(RelNode node) { Value = new RelValue(node); }
public void Insert(RelNode node) { Value = new RelValue(Heading, Value.Body.Union(node)); }
public RelVar() { Value = new RelValue(); }