• 对PostgreSQL语法分析中 targetlist 的理解


    在 gram.y 中:

    simple_select:                                
                SELECT    opt_distinct    target_list                    
                into_clause     from_clause     where_clause                    
                group_clause     having_clause    window_clause                    
                    {                
                        SelectStmt *n = makeNode(SelectStmt);            
                        n->distinctClause = $2;            
                        n->targetList = $3;            
                        n->intoClause = $4;            
                        n->fromClause = $5;            
                        n->whereClause = $6;            
                        n->groupClause = $7;            
                        n->havingClause = $8;            
                        n->windowClause = $9;            
                        $$ = (Node *)n;            
                    }                
                                    
    ……       

    把它修改一下,增加:

    simple_select:                                
                SELECT    opt_distinct    target_list                    
                into_clause     from_clause     where_clause                    
                group_clause     having_clause    window_clause                    
                    {                
                        SelectStmt *n = makeNode(SelectStmt);            
                        n->distinctClause = $2;            
                        n->targetList = $3;            
                        n->intoClause = $4;            
                        n->fromClause = $5;            
                        n->whereClause = $6;            
                        n->groupClause = $7;            
                        n->havingClause = $8;            
                        n->windowClause = $9;            
                        $$ = (Node *)n;
                        fprintf(stderr,"length of list: %d\n", n->targetList->length);
                
                    }                
                                    
    ……                                 

    psql 中执行: select id, name from a8;

    后台出现: length of list: 2

  • 相关阅读:
    js实现字符串反转
    网页中嵌入百度地图
    Javascript创建对象方法
    使用@font-face来实现icon
    关于课程实验的反思
    Factory设计模式构建
    正则表达式的应用
    IO流
    解读main()方法中的String[] args
    技术与运营
  • 原文地址:https://www.cnblogs.com/gaojian/p/2673589.html
Copyright © 2020-2023  润新知