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

Function PASS1_rse

src/dsql/pass1.cpp:581–599  ·  view source on GitHub ↗

Compile a record selection expression, bumping up the statement scope level everytime an rse is seen. The scope level controls parsing of aliases.

Source from the content-addressed store, hash-verified

579// Compile a record selection expression, bumping up the statement scope level everytime an rse is
580// seen. The scope level controls parsing of aliases.
581RseNode* PASS1_rse(DsqlCompilerScratch* dsqlScratch,
582 SelectExprNode* input,
583 const SelectNode* select)
584{
585 DEV_BLKCHK(dsqlScratch, dsql_type_req);
586 DEV_BLKCHK(input, dsql_type_nod);
587
588 const bool updateLock = select ? select->dsqlWithLock : false;
589 const bool skipLocked = select ? select->dsqlSkipLocked : false;
590
591 dsqlScratch->scopeLevel++;
592 RseNode* node = pass1_rse(dsqlScratch, input, NULL, NULL, updateLock, skipLocked, 0);
593 dsqlScratch->scopeLevel--;
594
595 if (select)
596 node->firstRows = select->dsqlOptimizeForFirstRows;
597
598 return node;
599}
600
601
602// Check for ambiguity in a field reference. The list with contexts where the field was found is

Callers 6

dsqlPassMethod · 0.85
PASS1_derived_tableFunction · 0.85
createRseNodeMethod · 0.85
dsqlPassMethod · 0.85
internalDsqlPassMethod · 0.85
dsqlPassMethod · 0.85

Calls 1

pass1_rseFunction · 0.85

Tested by

no test coverage detected