public override Expr SplitAgg() { var child = child_(); // child of tsum/tcount will be replace to bypass aggfunc child during aggfunc intialization var tsum = new AggSum(new List <Expr> { child }); tsum.dummyBind(); var sumchild = new AggSum(new List <Expr> { child.Clone() }); sumchild.dummyBind(); var sumchildref = new AggrRef(sumchild, -1); tsum.children_[0] = sumchildref; var tcount = new AggSum(new List <Expr> { child }); tcount.dummyBind(); var countchild = new AggCount(new List <Expr> { child.Clone() }); countchild.dummyBind(); var countchildref = new AggrRef(countchild, -1); tcount.children_[0] = countchildref; var processed = new BinExpr(tsum, tcount, "/"); processed.dummyBind(); return(processed); }
public virtual Expr SplitAgg() { // this is for sum, count, and countstar var child = child_(); var processed = new AggSum(new List <Expr> { child.Clone() }); processed.children_[0] = new AggrRef(this.Clone(), -1); processed.dummyBind(); return(processed); }