SQL 语句解析与操作全解析
1. SELECT 语句选项与表达式列表
SELECT 语句的选项是影响其处理方式的标志。由于选项之间的兼容性规则过于复杂,难以在语法中编码,因此我们接受任意选项集,并构建一个位掩码来表示它们,同时也能诊断重复选项。以下是相关规则代码:
select_opts: { $$ = 0; }
| select_opts ALL
{ if($1 & 01) yyerror("duplicate ALL option"); $$ = $1 | 01; }
| select_opts DISTINCT
{ if($1 & 02) yyerror("duplicate DISTINCT option"); $$ = $1 | 02; }
| select_opts DISTINCTROW
{ if($1 & 04) yyerror("duplicate DISTINCTROW option"); $$ = $1 | 04; }
| select_opts HIGH_PRIORITY
{ if($1 & 010) yyerror("duplicate HIGH_PRIORITY option"); $$ = $1 | 010; }
| select_opts STRAIGHT_JOIN
{ if($1 & 020) yyerror("duplicate STRAIGHT_JOIN option");
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



