func NewWhereFilter(ctx *plan.Context, sql *rel.SqlSelect) *Where {
	s := &Where{
		TaskBase: NewTaskBase(ctx),
		filter:   sql.Where.Expr,
	}
	cols := sql.ColIndexes()
	s.Handler = whereFilter(s.filter, s, cols)
	return s
}
// NewWhereFilter filters vs final differ bc the Final does final column aliasing
NewWhereFilter filters vs final differ bc the Final does final column aliasing
// NewWhereFilter filters vs final differ bc the Final does final column aliasing
func NewWhereFilter(ctx *plan.Context, sql *rel.SqlSelect) *Where {
	s := &Where{
		TaskBase: NewTaskBase(ctx),
		filter:   sql.Where.Expr,
	}
	cols := sql.ColIndexes()
	s.Handler = whereFilter(s.filter, s, cols)
	return s
}
func NewWhereFilter ( ctx * plan . Context , sql * rel . SqlSelect ) * Where { s := & Where { TaskBase : NewTaskBase ( ctx ) , filter : sql . Where . Expr , } cols := sql . ColIndexes ( ) s . Handler = whereFilter ( s . filter , s , cols ) return s }
NewWhereFilter filters vs final differ bc the Final does final column aliasing
NewWhereFilter filters vs final differ bc the Final does final column aliasing