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

Function getCardinality

src/jrd/optimizer/Optimizer.cpp:405–421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

403 }
404
405 double getCardinality(thread_db* tdbb, jrd_rel* relation, const Format* format)
406 {
407 // Return the estimated cardinality for the given relation
408
409 double cardinality = DEFAULT_CARDINALITY;
410
411 if (relation->rel_file)
412 cardinality = EXT_cardinality(tdbb, relation);
413 else if (!relation->isVirtual())
414 {
415 MET_post_existence(tdbb, relation);
416 cardinality = DPM_cardinality(tdbb, relation, format);
417 MET_release_existence(tdbb, relation);
418 }
419
420 return MAX(cardinality, MINIMUM_CARDINALITY);
421 }
422
423 void markIndices(CompilerScratch::csb_repeat* tail, USHORT relationId)
424 {

Callers 1

compileRelationMethod · 0.85

Calls 2

EXT_cardinalityFunction · 0.85
isVirtualMethod · 0.80

Tested by

no test coverage detected