我正在阅读Postgres的GitHub repo中的yacc文件,发现this line@2.我不确定如何理解这个符号是什么意思.

pl_block        : decl_sect K_BEGIN proc_sect exception_sect K_END opt_label
                    {
                        PLpgSQL_stmt_block *new;

                        new = palloc0(sizeof(PLpgSQL_stmt_block));

                        new->cmd_type   = PLPGSQL_STMT_BLOCK;
                        new->lineno     = plpgsql_location_to_lineno(@2);
                        new->stmtid     = ++plpgsql_curr_compile->nstatements;
                        new->label      = $1.label;
                        new->n_initvars = $1.n_initvars;
                        new->initvarnos = $1.initvarnos;
                        new->body       = $3;
                        new->exceptions = $4;

                        check_labels($1.label, $6, @6);
                        plpgsql_ns_pop();

                        $$ = (PLpgSQL_stmt *) new;
                    }
                ;

推荐答案

它是与产品中的第二个符号对应的location structure(在本例中,是K_BEGIN关键字).

Postgresql相关问答推荐

计算两个子查询之间的差异

PostgreSQL:重新创建主键值以匹配记录计数

为什么我的应用程序接收的是空值而不是布尔值?

为什么Postgres优化器切换到嵌套循环进行连接?

Postgres如何插入带有十进制逗号的实数?

Postgres从spark触发post-write

Postgres 对 WHERE 子句并行使用两个索引

对 Postgres 进行身份验证时如何使用自定义密码哈希算法?

从 PostgreSQL 中的每个组中抽取 N 个样本

OpenShift:如何从我的 PC 连接到 postgresql

PostgreSQL 不区分大小写的 SELECT 数组

如何将1 天 01:30:00等间隔转换为25:30:00?

postgresql:致命:password authentication failed for user "douglas"

为 Django Postgres 连接强制 SSL

如何在 postgres 模式中列出关系

为 postgresql 存储过程设置隔离级别

将数据从 MS SQL 迁移到 PostgreSQL?

防止 CHARACTER VARYING 字段中出现空字符串

PL/pgSQL 执行与执行

Postgresql 对象 ID 和元组