func NewWhere(ctx *plan.Context, p *plan.Where) *Where {
	if p.Final {
		return NewWhereFinal(ctx, p)
	}
	return NewWhereFilter(ctx, p.Stmt)
}
// NewWhere create new Where Clause
//  filters vs final differ bc the Final does final column aliasing
NewWhere create new Where Clause
filters vs final differ bc the Final does final column aliasing
// NewWhere create new Where Clause // filters vs final differ bc the Final does final column aliasing
func NewWhere(ctx *plan.Context, p *plan.Where) *Where {
	if p.Final {
		return NewWhereFinal(ctx, p)
	}
	return NewWhereFilter(ctx, p.Stmt)
}
func NewWhere ( ctx * plan . Context , p * plan . Where ) * Where { if p . Final { return NewWhereFinal ( ctx , p ) } return NewWhereFilter ( ctx , p . Stmt ) }
NewWhere create new Where Clause
filters vs final differ bc the Final does final column aliasing
NewWhere create new Where Clause filters vs final differ bc the Final does final column aliasing