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

Function classMask

src/jrd/optimizer/Optimizer.cpp:273–295  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

271 }
272
273 void classMask(unsigned count, ValueExprNode** eq_class, ULONG* mask)
274 {
275 // Given an sort/merge join equivalence class (vector of node pointers
276 // of representative values for rivers), return a bit mask of rivers with values
277
278 if (count > MAX_CONJUNCTS)
279 {
280 ERR_post(Arg::Gds(isc_optimizer_blk_exc));
281 // Msg442: size of optimizer block exceeded
282 }
283
284 for (unsigned i = 0; i < OPT_STREAM_BITS; i++)
285 mask[i] = 0;
286
287 for (unsigned i = 0; i < count; i++, eq_class++)
288 {
289 if (*eq_class)
290 {
291 SET_DEP_BIT(mask, i);
292 DEV_BLKCHK(*eq_class, type_nod);
293 }
294 }
295 }
296
297 unsigned getRiverCount(unsigned count, const ValueExprNode* const* eq_class)
298 {

Callers 1

generateEquiJoinMethod · 0.85

Calls 3

GdsClass · 0.85
SET_DEP_BITFunction · 0.85
ERR_postFunction · 0.50

Tested by

no test coverage detected