Compile a record selection expression, bumping up the statement scope level everytime an rse is seen. The scope level controls parsing of aliases.
| 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. |
| 581 | RseNode* 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 |
no test coverage detected