MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / dsqlFieldRemapper

Method dsqlFieldRemapper

src/dsql/AggNodes.cpp:275–297  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

273}
274
275ValueExprNode* AggNode::dsqlFieldRemapper(FieldRemapper& visitor)
276{
277 AggregateFinder aggFinder(visitor.getPool(), visitor.dsqlScratch, false);
278 aggFinder.deepestLevel = visitor.dsqlScratch->scopeLevel;
279 aggFinder.currentLevel = visitor.currentLevel;
280
281 if (dsqlAggregateFinder(aggFinder))
282 {
283 if (!visitor.window && visitor.dsqlScratch->scopeLevel == aggFinder.deepestLevel)
284 return PASS1_post_map(visitor.dsqlScratch, this, visitor.context, visitor.windowNode);
285 }
286
287 NodeRefsHolder holder(visitor.getPool());
288 getChildren(holder, true);
289
290 for (auto i : holder.refs)
291 {
292 if (*i)
293 *i = (*i)->dsqlFieldRemapper(visitor);
294 }
295
296 return this;
297}
298
299bool AggNode::dsqlMatch(DsqlCompilerScratch* dsqlScratch, const ExprNode* other, bool ignoreMapCast) const
300{

Callers 1

visitMethod · 0.45

Calls 1

PASS1_post_mapFunction · 0.85

Tested by

no test coverage detected