Thanks a lot for reply. 2017-01-11 20:46 GMT+08:00 Tom Lane <t...@sss.pgh.pa.us>:
> =?UTF-8?B?6auY5aKe55Cm?= <pgf...@gmail.com> writes: > > In transformDeleteStmt: > > > qry->hasWindowFuncs = pstate->p_hasWindowFuncs; > > qry->hasAggs = pstate->p_hasAggs; > > if (pstate->p_hasAggs) > > parseCheckAggregates(pstate, qry); > > > Do we support using agg or window function in delete statement? > > Or, this code should be removed? > > I think it's dead code given the syntactic limitations on DELETE, > but I would not be in favor of removing it. Better to have it there to > keep transformDeleteStmt looking as much as possible like the other ones. > It's not like that's either expensive or a lot of code. > At present, only transformSelectStmt and transformSetOperationStmt has parseCheckAggregates. All other transformXXXStmt don't contain it. This inconsistency makes me have the question at the first mail. I think it maybe better to do something. > > An example of why this would be penny-wise and pound-foolish is that > we might choose to apply the check that you can't write aggregates in > DELETE inside parseCheckAggregates. (We don't, but it's not an impossible > future restructuring.) > > regards, tom lane > -- GaoZengqi pgf...@gmail.com zengqi...@gmail.com