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

Function dsqlFindDbKey

src/dsql/StmtNodes.cpp:9817–9839  ·  view source on GitHub ↗

Find dbkey for named relation in statement's saved dbkeys.

Source from the content-addressed store, hash-verified

9815
9816// Find dbkey for named relation in statement's saved dbkeys.
9817static dsql_par* dsqlFindDbKey(const DsqlDmlStatement* statement, const RelationSourceNode* relation_name)
9818{
9819 DEV_BLKCHK(relation_name, dsql_type_nod);
9820
9821 const dsql_msg* message = statement->getReceiveMsg();
9822 dsql_par* candidate = NULL;
9823 const MetaName& relName = relation_name->dsqlName;
9824
9825 for (FB_SIZE_T i = 0; i < message->msg_parameters.getCount(); ++i)
9826 {
9827 dsql_par* parameter = message->msg_parameters[i];
9828
9829 if (parameter->par_dbkey_relname.hasData() && parameter->par_dbkey_relname == relName)
9830 {
9831 if (candidate)
9832 return NULL;
9833
9834 candidate = parameter;
9835 }
9836 }
9837
9838 return candidate;
9839}
9840
9841// Find record version for relation in statement's saved record version.
9842static dsql_par* dsqlFindRecordVersion(const DsqlDmlStatement* statement, const RelationSourceNode* relation_name)

Callers 1

dsqlPassCursorReferenceFunction · 0.85

Calls 3

getReceiveMsgMethod · 0.80
getCountMethod · 0.45
hasDataMethod · 0.45

Tested by

no test coverage detected