~ubuntu-branches/ubuntu/oneiric/firebird2.1/oneiric

« back to all changes in this revision

Viewing changes to src/dsql/dsql.h

  • Committer: Bazaar Package Importer
  • Author(s): Damyan Ivanov
  • Date: 2011-04-22 18:59:44 UTC
  • mfrom: (2.1.24 sid)
  • Revision ID: james.westby@ubuntu.com-20110422185944-egwy9r5xynjddku5
Tags: 2.1.4.18393-0.ds2-2
* apply patch from upstream SVN fixing ICU collations
* remove lintian overrides about manpages shipped in dependency package
* claim compliancy with Policy 3.9.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
486
486
        // CTE name or via alias. We need to substitute this aliases when processing CTE 
487
487
        // member to resolve field names. Therefore we store all aliases in order of 
488
488
        // occurence and later use it in backward order (since our parser is right-to-left). 
 
489
        // Also we put CTE name after all such aliases to distinguish aliases for 
 
490
        // different CTE's.
489
491
        // We also need to repeat this process if main select expression contains union with 
490
492
        // recursive CTE
491
493
        void addCTEAlias(const dsql_str* alias) 
496
498
        {
497
499
                return *(--req_curr_cte_alias);
498
500
        }
499
 
        void resetCTEAlias()
 
501
        void resetCTEAlias(const dsql_str* alias)
500
502
        {
501
 
                req_curr_cte_alias = req_cte_aliases.end();
 
503
                const dsql_str* const* begin = req_cte_aliases.begin();
 
504
 
 
505
                req_curr_cte_alias = req_cte_aliases.end() - 1;
 
506
                fb_assert(req_curr_cte_alias >= begin);
 
507
 
 
508
                const dsql_str* curr = *(req_curr_cte_alias);
 
509
                while (strcmp(curr->str_data, alias->str_data)) 
 
510
                {
 
511
                        req_curr_cte_alias--;
 
512
                        fb_assert(req_curr_cte_alias >= begin);
 
513
 
 
514
                        curr = *(req_curr_cte_alias);
 
515
                }
502
516
        }
503
517
 
504
518
        DsqlNodStack req_curr_ctes;                     // current processing CTE's