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

Method getEquiJoinKeys

src/jrd/optimizer/Optimizer.cpp:3216–3233  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3214}
3215
3216bool Optimizer::getEquiJoinKeys(BoolExprNode* boolean,
3217 NestConst<ValueExprNode>* node1,
3218 NestConst<ValueExprNode>* node2)
3219{
3220 auto cmpNode = nodeAs<ComparativeBoolNode>(boolean);
3221 if (!cmpNode || (cmpNode->blrOp != blr_eql && cmpNode->blrOp != blr_equiv))
3222 return false;
3223
3224 auto arg1 = cmpNode->arg1;
3225 auto arg2 = cmpNode->arg2;
3226
3227 if (!getEquiJoinKeys(arg1, arg2, true))
3228 return false;
3229
3230 *node1 = arg1;
3231 *node2 = arg2;
3232 return true;
3233}
3234
3235bool Optimizer::getEquiJoinKeys(NestConst<ValueExprNode>& node1,
3236 NestConst<ValueExprNode>& node2,

Callers 1

formRiverMethod · 0.80

Calls 4

DSC_EQUIVFunction · 0.85
CastNodeClass · 0.85
getDescMethod · 0.45

Tested by

no test coverage detected