@@ -172,7 +172,7 @@ make_name(void)
172172%token TYPECAST
173173
174174/* Keywords (in SQL92 reserved words)*/
175- %token ABSOLUTE ,ACTION ,ADD ,ALL ,ALTER ,AND ,ANY ,AS ,ASC ,
175+ %token ABSOLUTE ,ACTION ,ADD ,ALL ,ALTER ,AND ,ANY ,AS ,ASC ,AT , AUTHORIZATION ,
176176BEGIN_TRANS ,BETWEEN ,BOTH ,BY ,
177177CASCADE ,CASE ,CAST ,CHAIN ,CHAR ,CHARACTER ,
178178CHARACTERISTICS ,CHECK ,CLOSE ,
@@ -293,7 +293,7 @@ make_name(void)
293293%type <str> row_expr row_descriptor row_list ConstDatetime opt_chain
294294%type <str> SelectStmt into_clause OptTemp ConstraintAttributeSpec
295295%type <str> opt_table opt_all sort_clause sortby_list ConstraintAttr
296- %type <str> sortby OptUseOp relation_name_list name_list
296+ %type <str> sortby OptUseOp relation_name_list name_list ColId_or_Sconst
297297%type <str> group_clause having_clause from_clause opt_distinct
298298%type <str> join_outer where_clause relation_expr sub_type opt_arg
299299%type <str> opt_column_list insert_rest InsertStmt OptimizableStmt
@@ -802,6 +802,10 @@ VariableSetStmt: SET ColId TO var_value
802802 {
803803$$ = cat2_str(make_str(" set names" ),$3 );
804804 }
805+ | SET SESSION AUTHORIZATION ColId_or_Sconst
806+ {
807+ $$ = cat2_str(make_str(" set session authorization" ),$4 );
808+ }
805809 ;
806810
807811opt_level :READ COMMITTED {$$ = make_str(" read committed" ); }
@@ -836,6 +840,10 @@ opt_encoding:StringConst { $$ = $1; }
836840| /* EMPTY*/ {$$ = EMPTY; }
837841;
838842
843+ ColId_or_Sconst :ColId {$$ =$1 ; }
844+ | SCONST {$$ =$1 ; }
845+ ;
846+
839847VariableShowStmt :SHOW ColId
840848{
841849$$ = cat2_str(make_str(" show" ),$2 );
@@ -1677,9 +1685,9 @@ comment_text: StringConst{ $$ = $1; }
16771685 *
16781686 *****************************************************************************/
16791687
1680- GrantStmt :GRANT privileges ON relation_name_list TO grantee opt_with_grant
1688+ GrantStmt :GRANT privileges ON opt_table relation_name_list TO grantee opt_with_grant
16811689{
1682- $$ = cat_str(7 , make_str(" grant" ),$2 , make_str(" on" ),$4 , make_str(" to" ),$6 );
1690+ $$ = cat_str(8 , make_str(" grant" ),$2 , make_str(" on" ),$4 ,$5 , make_str(" to" ),$7 );
16831691}
16841692;
16851693
@@ -1727,6 +1735,14 @@ operation: SELECT
17271735{
17281736$$ = make_str(" rule" );
17291737}
1738+ | REFERENCES
1739+ {
1740+ $$ = make_str(" references" );
1741+ }
1742+ | TRIGGER
1743+ {
1744+ $$ = make_str(" trigger" );
1745+ }
17301746;
17311747
17321748grantee :PUBLIC
@@ -1758,9 +1774,9 @@ opt_with_grant: WITH GRANT OPTION
17581774 *
17591775 *****************************************************************************/
17601776
1761- RevokeStmt :REVOKE privileges ON relation_name_list FROM grantee
1777+ RevokeStmt :REVOKE privileges ON opt_table relation_name_list FROM grantee
17621778{
1763- $$ = cat_str(7 , make_str(" revoke" ),$2 , make_str(" on" ),$4 , make_str(" from" ),$6 );
1779+ $$ = cat_str(8 , make_str(" revoke" ),$2 , make_str(" on" ),$4 ,$5 , make_str(" from" ),$7 );
17641780}
17651781;
17661782
@@ -4939,6 +4955,7 @@ TokenId: ABSOLUTE{ $$ = make_str("absolute"); }
49394955| AGGREGATE {$$ = make_str(" aggregate" ); }
49404956| ALTER {$$ = make_str(" alter" ); }
49414957| AT {$$ = make_str(" at" ); }
4958+ | AUTHORIZATION {$$ = make_str(" authorization" ); }
49424959| BACKWARD {$$ = make_str(" backward" ); }
49434960| BEFORE {$$ = make_str(" before" ); }
49444961| BEGIN_TRANS {$$ = make_str(" begin" ); }
@@ -5027,7 +5044,7 @@ TokenId: ABSOLUTE{ $$ = make_str("absolute"); }
50275044| SHARE {$$ = make_str(" share" ); }
50285045| START {$$ = make_str(" start" ); }
50295046| STATEMENT {$$ = make_str(" statement" ); }
5030- | STATISTICS {$$ = make_str(" statistics" ); }
5047+ | STATISTICS {$$ = make_str(" statistics" ); }
50315048| STDIN {$$ = make_str(" stdin" ); }
50325049| STDOUT {$$ = make_str(" stdout" ); }
50335050| SYSID {$$ = make_str(" sysid" ); }