@@ -172,7 +172,7 @@ make_name(void)
172
172
%token TYPECAST
173
173
174
174
/* 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 ,
176
176
BEGIN_TRANS ,BETWEEN ,BOTH ,BY ,
177
177
CASCADE ,CASE ,CAST ,CHAIN ,CHAR ,CHARACTER ,
178
178
CHARACTERISTICS ,CHECK ,CLOSE ,
@@ -293,7 +293,7 @@ make_name(void)
293
293
%type <str> row_expr row_descriptor row_list ConstDatetime opt_chain
294
294
%type <str> SelectStmt into_clause OptTemp ConstraintAttributeSpec
295
295
%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
297
297
%type <str> group_clause having_clause from_clause opt_distinct
298
298
%type <str> join_outer where_clause relation_expr sub_type opt_arg
299
299
%type <str> opt_column_list insert_rest InsertStmt OptimizableStmt
@@ -802,6 +802,10 @@ VariableSetStmt: SET ColId TO var_value
802
802
{
803
803
$$ = cat2_str(make_str(" set names" ),$3 );
804
804
}
805
+ | SET SESSION AUTHORIZATION ColId_or_Sconst
806
+ {
807
+ $$ = cat2_str(make_str(" set session authorization" ),$4 );
808
+ }
805
809
;
806
810
807
811
opt_level :READ COMMITTED {$$ = make_str(" read committed" ); }
@@ -836,6 +840,10 @@ opt_encoding:StringConst { $$ = $1; }
836
840
| /* EMPTY*/ {$$ = EMPTY; }
837
841
;
838
842
843
+ ColId_or_Sconst :ColId {$$ =$1 ; }
844
+ | SCONST {$$ =$1 ; }
845
+ ;
846
+
839
847
VariableShowStmt :SHOW ColId
840
848
{
841
849
$$ = cat2_str(make_str(" show" ),$2 );
@@ -1677,9 +1685,9 @@ comment_text: StringConst{ $$ = $1; }
1677
1685
*
1678
1686
*****************************************************************************/
1679
1687
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
1681
1689
{
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 );
1683
1691
}
1684
1692
;
1685
1693
@@ -1727,6 +1735,14 @@ operation: SELECT
1727
1735
{
1728
1736
$$ = make_str(" rule" );
1729
1737
}
1738
+ | REFERENCES
1739
+ {
1740
+ $$ = make_str(" references" );
1741
+ }
1742
+ | TRIGGER
1743
+ {
1744
+ $$ = make_str(" trigger" );
1745
+ }
1730
1746
;
1731
1747
1732
1748
grantee :PUBLIC
@@ -1758,9 +1774,9 @@ opt_with_grant: WITH GRANT OPTION
1758
1774
*
1759
1775
*****************************************************************************/
1760
1776
1761
- RevokeStmt :REVOKE privileges ON relation_name_list FROM grantee
1777
+ RevokeStmt :REVOKE privileges ON opt_table relation_name_list FROM grantee
1762
1778
{
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 );
1764
1780
}
1765
1781
;
1766
1782
@@ -4939,6 +4955,7 @@ TokenId: ABSOLUTE{ $$ = make_str("absolute"); }
4939
4955
| AGGREGATE {$$ = make_str(" aggregate" ); }
4940
4956
| ALTER {$$ = make_str(" alter" ); }
4941
4957
| AT {$$ = make_str(" at" ); }
4958
+ | AUTHORIZATION {$$ = make_str(" authorization" ); }
4942
4959
| BACKWARD {$$ = make_str(" backward" ); }
4943
4960
| BEFORE {$$ = make_str(" before" ); }
4944
4961
| BEGIN_TRANS {$$ = make_str(" begin" ); }
@@ -5027,7 +5044,7 @@ TokenId: ABSOLUTE{ $$ = make_str("absolute"); }
5027
5044
| SHARE {$$ = make_str(" share" ); }
5028
5045
| START {$$ = make_str(" start" ); }
5029
5046
| STATEMENT {$$ = make_str(" statement" ); }
5030
- | STATISTICS {$$ = make_str(" statistics" ); }
5047
+ | STATISTICS {$$ = make_str(" statistics" ); }
5031
5048
| STDIN {$$ = make_str(" stdin" ); }
5032
5049
| STDOUT {$$ = make_str(" stdout" ); }
5033
5050
| SYSID {$$ = make_str(" sysid" ); }