On Sat, 24 Nov 2018 at 02:09, Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote:
> On 11/23/18 12:14 PM, Surafel Temesgen wrote:
> > On Sun, Nov 11, 2018 at 11:59 PM Tomas Vondra
> > <tomas.vondra@2ndquadrant.com <mailto:tomas.vondra@2ndquadrant.com>> wrote:
> > So, what about using FILTER here? We already use it for aggregates when
> > filtering rows to process.
> >
> > i think its good idea and describe its purpose more. Attache is a
> > patch that use FILTER instead
>
FWIW, I vote for just using WHERE here.
Right now we have 2 syntaxes for filtering rows in queries, both of
which use WHERE immediately before the condition:
1). SELECT ... FROM ... WHERE condition
2). SELECT agg_fn FILTER (WHERE condition) FROM ...
I'm not a huge fan of (2), but that's the SQL standard, so we're stuck
with it. There's a certain consistency in it's use of WHERE to
introduce the condition, and preceding that with FILTER helps to
distinguish it from any later WHERE clause. But what you'd be adding
here would be a 3rd syntax
3). COPY ... FROM ... FILTER condition
which IMO will just lead to confusion.
Regards,
Dean