From 3198bc839da3259c277d2f80ed698a84d683d496 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 28 Nov 2017 16:38:58 +0100 Subject: [PATCH] Parser: unreserve keywords SELECT * FROM t1 FOR SYSTEM_TIME AS OF ... becomes ambiguous, but it's the same as with SELECT ... UNION SELECT ... ORDER BY ... --- mysql-test/suite/versioning/r/cte.result | 4 ++-- mysql-test/suite/versioning/r/derived.result | 14 ++++++------ .../suite/versioning/r/optimized.result | 14 ++++++------ mysql-test/suite/versioning/r/select.result | 11 +++++----- .../suite/versioning/r/select_sp.result | 11 +++++----- mysql-test/suite/versioning/r/simple.result | 10 ++++----- mysql-test/suite/versioning/t/cte.test | 4 ++-- mysql-test/suite/versioning/t/derived.test | 14 ++++++------ mysql-test/suite/versioning/t/optimized.test | 14 ++++++------ mysql-test/suite/versioning/t/select.test | 10 ++++----- mysql-test/suite/versioning/t/select_sp.test | 10 ++++----- mysql-test/suite/versioning/t/simple.test | 10 ++++----- sql/sql_yacc.yy | 22 ++++++++++--------- 13 files changed, 74 insertions(+), 74 deletions(-) diff --git a/mysql-test/suite/versioning/r/cte.result b/mysql-test/suite/versioning/r/cte.result index 161255aeaa7..3345ce7a7ae 100644 --- a/mysql-test/suite/versioning/r/cte.result +++ b/mysql-test/suite/versioning/r/cte.result @@ -82,13 +82,13 @@ emp_id name mgr address 2 bill 1 New York 3 kate 1 London 4 john 1 Paris -with ancestors as (select * from emp natural join addr system_time all) select * from ancestors; +with ancestors as (select * from emp natural join addr where 1 for system_time all) select * from ancestors; emp_id name mgr address 1 bill 0 Moscow 2 bill 1 New York 3 kate 1 London 4 john 1 Paris -select * from emp natural join addr system_time all; +select * from emp natural join addr where 1 for system_time all; emp_id name mgr address 1 bill 0 Moscow 2 bill 1 New York diff --git a/mysql-test/suite/versioning/r/derived.result b/mysql-test/suite/versioning/r/derived.result index 04a237f6428..9f110ba0c29 100644 --- a/mysql-test/suite/versioning/r/derived.result +++ b/mysql-test/suite/versioning/r/derived.result @@ -93,12 +93,12 @@ as select e.emp_id, e.name, e.mgr from emp as e where name = 'bill' - system_time as of timestamp @ts + for system_time as of timestamp @ts union select ee.emp_id, ee.name, ee.mgr from emp as ee, ancestors as a where ee.mgr = a.emp_id -system_time as of timestamp @ts +for system_time as of timestamp @ts ) select * from ancestors; emp_id name mgr @@ -113,12 +113,12 @@ as select e.emp_id, e.name, e.mgr from emp as e where name = 'bill' - system_time as of timestamp @ts + for system_time as of timestamp @ts union select ee.emp_id, ee.name, ee.mgr from emp as ee, ancestors as a where ee.mgr = a.emp_id - system_time as of timestamp @ts + for system_time as of timestamp @ts ) select * from ancestors"; prepare stmt from @tmp; @@ -152,13 +152,13 @@ y x with s3 as (select *, t1.sys_trx_end from t2, t1 for system_time as of timestamp @t0) select * from s3; y x 10 1 -select * from (select *, t1.sys_trx_start from t2 for system_time as of now, t1) as s4 system_time as of timestamp @t0; +select * from (select *, t1.sys_trx_start from t2 for system_time as of now, t1) as s4 for system_time as of timestamp @t0; y x 10 1 with s5 as (select *, t1.sys_trx_start from t2 for system_time as of now, t1) select * from s5 for system_time as of timestamp @t0; y x 10 1 -with s6 as (select *, t1.sys_trx_start from t2 for system_time as of now, t1) select * from s6 system_time as of timestamp @t0; +with s6 as (select *, t1.sys_trx_start from t2 for system_time as of now, t1) select * from s6 for system_time as of timestamp @t0; y x 10 1 set @q= concat("create view vt1 as select * from t1 for system_time as of timestamp '", @t0, "'"); @@ -174,7 +174,7 @@ x y select * from (select *, vt1.sys_trx_end from t2, vt1) as s0; y x 10 1 -select * from (select *, vt1.sys_trx_start from t2 for system_time as of now, vt1) as s0 system_time as of timestamp @t0; +select * from (select *, vt1.sys_trx_start from t2 for system_time as of now, vt1) as s0 for system_time as of timestamp @t0; y x 10 1 drop table t1, t2; diff --git a/mysql-test/suite/versioning/r/optimized.result b/mysql-test/suite/versioning/r/optimized.result index 6704e2c5aac..b28bc281597 100644 --- a/mysql-test/suite/versioning/r/optimized.result +++ b/mysql-test/suite/versioning/r/optimized.result @@ -25,7 +25,7 @@ a b 3 NULL Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query -select count(*) from t group by b system_time as of timestamp now(6); +select count(*) from t group by b for system_time as of timestamp now(6); count(*) 2 Warnings: @@ -44,29 +44,29 @@ a b Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query Warning 4109 Attempt to read unversioned field `b` in historical query -select * from t group by a having a=2 system_time as of timestamp now(6); +select * from t group by a having a=2 for system_time as of timestamp now(6); a b Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query -select * from t group by b having b=2 system_time as of timestamp now(6); +select * from t group by b having b=2 for system_time as of timestamp now(6); a b Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query -select a from t where b=2 system_time as of timestamp now(6); +select a from t where b=2 for system_time as of timestamp now(6); a Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query -select a from t where b=NULL system_time as of timestamp now(6); +select a from t where b=NULL for system_time as of timestamp now(6); a Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query -select a from t where b is NULL system_time as of timestamp now(6); +select a from t where b is NULL for system_time as of timestamp now(6); a 1 3 Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query -select count(*), b from t group by b having b=NULL system_time as of timestamp now(6); +select count(*), b from t group by b having b=NULL for system_time as of timestamp now(6); count(*) b Warnings: Warning 4109 Attempt to read unversioned field `b` in historical query diff --git a/mysql-test/suite/versioning/r/select.result b/mysql-test/suite/versioning/r/select.result index e340f4a39fb..38f9de1d848 100644 --- a/mysql-test/suite/versioning/r/select.result +++ b/mysql-test/suite/versioning/r/select.result @@ -145,13 +145,13 @@ NULL NULL 3 1 delete from t1; delete from t2; select t1.x as IJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 inner join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; IJ2_x1 y1 x2 y2 1 1 1 2 1 2 1 2 1 3 1 2 select t1.x as LJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 left join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; LJ2_x1 y1 x2 y2 1 1 1 2 1 2 1 2 @@ -159,7 +159,7 @@ LJ2_x1 y1 x2 y2 4 4 NULL NULL 5 5 NULL NULL select t1.x as RJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 right join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; RJ2_x1 y1 x2 y2 1 1 1 2 1 2 1 2 @@ -276,12 +276,11 @@ create or replace table t2 (y int) with system versioning; insert into t1 values (1), (2), (3); delete from t1 where x = 3; insert into t2 values (1); -select * from t1, t2 system_time all; +select * from t1, t2 for system_time all; x y 1 1 2 1 -3 1 -select * from t1 for system_time all, t2 for system_time all system_time all; +select * from t1 for system_time all, t2 for system_time all for system_time all; ERROR HY000: Unused clause: 'SYSTEM_TIME' ### Issue #365, bug 4 (related to #226, optimized fields) create or replace table t1 (i int, b int) with system versioning; diff --git a/mysql-test/suite/versioning/r/select_sp.result b/mysql-test/suite/versioning/r/select_sp.result index b40dbf75a28..01b511ffc68 100644 --- a/mysql-test/suite/versioning/r/select_sp.result +++ b/mysql-test/suite/versioning/r/select_sp.result @@ -78,11 +78,11 @@ select t1.x as RJ1_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 right join t2 delete from t1; delete from t2; select t1.x as IJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 inner join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; select t1.x as LJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 left join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; select t1.x as RJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 right join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; drop table t1; drop table t2; end~~ @@ -317,12 +317,11 @@ create or replace table t2 (y int) with system versioning; insert into t1 values (1), (2), (3); delete from t1 where x = 3; insert into t2 values (1); -select * from t1, t2 system_time all; +select * from t1, t2 for system_time all; x y 1 1 2 1 -3 1 -select * from t1 for system_time all, t2 for system_time all system_time all; +select * from t1 for system_time all, t2 for system_time all for system_time all; ERROR HY000: Unused clause: 'SYSTEM_TIME' drop view v1; drop table t1, t2; diff --git a/mysql-test/suite/versioning/r/simple.result b/mysql-test/suite/versioning/r/simple.result index e0af556f073..9b34868aa67 100644 --- a/mysql-test/suite/versioning/r/simple.result +++ b/mysql-test/suite/versioning/r/simple.result @@ -44,28 +44,28 @@ emp_id dept_id name salary dept_id name select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time from timestamp @ts_1 to timestamp @ts_2; +for system_time from timestamp @ts_1 to timestamp @ts_2; emp_id dept_id name salary sys_trx_start sys_trx_end dept_id name sys_trx_start sys_trx_end select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_0; +for system_time as of timestamp @ts_0; emp_id dept_id name salary dept_id name select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_1; +for system_time as of timestamp @ts_1; emp_id dept_id name salary dept_id name select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_2; +for system_time as of timestamp @ts_2; emp_id dept_id name salary dept_id name 1 10 bill 1000 10 accounting select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_3; +for system_time as of timestamp @ts_3; emp_id dept_id name salary dept_id name 1 10 bill 2000 10 accounting drop table emp, dept; diff --git a/mysql-test/suite/versioning/t/cte.test b/mysql-test/suite/versioning/t/cte.test index 7a35352f7c8..4b406f721b4 100644 --- a/mysql-test/suite/versioning/t/cte.test +++ b/mysql-test/suite/versioning/t/cte.test @@ -76,8 +76,8 @@ insert emp values (4, 'john', 1); insert addr values (4, 'Paris'); with ancestors as (select * from emp natural join addr) select * from ancestors; with ancestors as (select * from emp natural join addr) select * from ancestors for system_time all; -with ancestors as (select * from emp natural join addr system_time all) select * from ancestors; -select * from emp natural join addr system_time all; +with ancestors as (select * from emp natural join addr where 1 for system_time all) select * from ancestors; +select * from emp natural join addr where 1 for system_time all; drop table emp; drop table dept; diff --git a/mysql-test/suite/versioning/t/derived.test b/mysql-test/suite/versioning/t/derived.test index 63683e251c9..35abebb7743 100644 --- a/mysql-test/suite/versioning/t/derived.test +++ b/mysql-test/suite/versioning/t/derived.test @@ -64,12 +64,12 @@ as select e.emp_id, e.name, e.mgr from emp as e where name = 'bill' - system_time as of timestamp @ts + for system_time as of timestamp @ts union select ee.emp_id, ee.name, ee.mgr from emp as ee, ancestors as a where ee.mgr = a.emp_id - system_time as of timestamp @ts + for system_time as of timestamp @ts ) select * from ancestors; set @tmp= " @@ -80,12 +80,12 @@ as select e.emp_id, e.name, e.mgr from emp as e where name = 'bill' - system_time as of timestamp @ts + for system_time as of timestamp @ts union select ee.emp_id, ee.name, ee.mgr from emp as ee, ancestors as a where ee.mgr = a.emp_id - system_time as of timestamp @ts + for system_time as of timestamp @ts ) select * from ancestors"; prepare stmt from @tmp; execute stmt; drop prepare stmt; @@ -112,9 +112,9 @@ with s1 as (select * from t1 for system_time as of timestamp @t0, t2) select * f select * from (select *, t1.sys_trx_end from t2, t1 for system_time as of timestamp @t0) as s2; with s3 as (select *, t1.sys_trx_end from t2, t1 for system_time as of timestamp @t0) select * from s3; # system_time propagation from outer to inner -select * from (select *, t1.sys_trx_start from t2 for system_time as of now, t1) as s4 system_time as of timestamp @t0; +select * from (select *, t1.sys_trx_start from t2 for system_time as of now, t1) as s4 for system_time as of timestamp @t0; with s5 as (select *, t1.sys_trx_start from t2 for system_time as of now, t1) select * from s5 for system_time as of timestamp @t0; -with s6 as (select *, t1.sys_trx_start from t2 for system_time as of now, t1) select * from s6 system_time as of timestamp @t0; +with s6 as (select *, t1.sys_trx_start from t2 for system_time as of now, t1) select * from s6 for system_time as of timestamp @t0; # VIEW instead of t1 set @q= concat("create view vt1 as select * from t1 for system_time as of timestamp '", @t0, "'"); @@ -127,7 +127,7 @@ select * from (select * from vt1, t2) as s0; # leading table selection select * from (select *, vt1.sys_trx_end from t2, vt1) as s0; # system_time propagation from outer to inner -select * from (select *, vt1.sys_trx_start from t2 for system_time as of now, vt1) as s0 system_time as of timestamp @t0; +select * from (select *, vt1.sys_trx_start from t2 for system_time as of now, vt1) as s0 for system_time as of timestamp @t0; drop table t1, t2; drop view vt1; diff --git a/mysql-test/suite/versioning/t/optimized.test b/mysql-test/suite/versioning/t/optimized.test index 6c508d04508..311b0aeeb31 100644 --- a/mysql-test/suite/versioning/t/optimized.test +++ b/mysql-test/suite/versioning/t/optimized.test @@ -9,15 +9,15 @@ select * from t; select a from t for system_time as of timestamp now(6); select a, b, b+0 from t for system_time as of timestamp now(6); select * from t for system_time as of timestamp now(6); -select count(*) from t group by b system_time as of timestamp now(6); +select count(*) from t group by b for system_time as of timestamp now(6); select * from t for system_time as of timestamp now(6) order by b asc; select * from t for system_time as of timestamp now(6) order by b desc; -select * from t group by a having a=2 system_time as of timestamp now(6); -select * from t group by b having b=2 system_time as of timestamp now(6); -select a from t where b=2 system_time as of timestamp now(6); -select a from t where b=NULL system_time as of timestamp now(6); -select a from t where b is NULL system_time as of timestamp now(6); -select count(*), b from t group by b having b=NULL system_time as of timestamp now(6); +select * from t group by a having a=2 for system_time as of timestamp now(6); +select * from t group by b having b=2 for system_time as of timestamp now(6); +select a from t where b=2 for system_time as of timestamp now(6); +select a from t where b=NULL for system_time as of timestamp now(6); +select a from t where b is NULL for system_time as of timestamp now(6); +select count(*), b from t group by b having b=NULL for system_time as of timestamp now(6); select a, b from t; select count(*) from t for system_time as of timestamp now(6) group by b; diff --git a/mysql-test/suite/versioning/t/select.test b/mysql-test/suite/versioning/t/select.test index d4dce1dd1aa..ecbe89b223e 100644 --- a/mysql-test/suite/versioning/t/select.test +++ b/mysql-test/suite/versioning/t/select.test @@ -85,11 +85,11 @@ delete from t1; delete from t2; select t1.x as IJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 inner join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; select t1.x as LJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 left join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; select t1.x as RJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 right join t2 on t1.x = t2.x -system_time as of timestamp @t0; +for system_time as of timestamp @t0; drop table t1; drop table t2; @@ -177,10 +177,10 @@ create or replace table t2 (y int) with system versioning; insert into t1 values (1), (2), (3); delete from t1 where x = 3; insert into t2 values (1); -select * from t1, t2 system_time all; +select * from t1, t2 for system_time all; --error ER_VERS_UNUSED_CLAUSE -select * from t1 for system_time all, t2 for system_time all system_time all; +select * from t1 for system_time all, t2 for system_time all for system_time all; --echo ### Issue #365, bug 4 (related to #226, optimized fields) create or replace table t1 (i int, b int) with system versioning; diff --git a/mysql-test/suite/versioning/t/select_sp.test b/mysql-test/suite/versioning/t/select_sp.test index a84a3c51358..199e19484b5 100644 --- a/mysql-test/suite/versioning/t/select_sp.test +++ b/mysql-test/suite/versioning/t/select_sp.test @@ -94,11 +94,11 @@ begin delete from t2; select t1.x as IJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 inner join t2 on t1.x = t2.x - system_time as of timestamp @t0; + for system_time as of timestamp @t0; select t1.x as LJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 left join t2 on t1.x = t2.x - system_time as of timestamp @t0; + for system_time as of timestamp @t0; select t1.x as RJ2_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 right join t2 on t1.x = t2.x - system_time as of timestamp @t0; + for system_time as of timestamp @t0; drop table t1; drop table t2; @@ -190,10 +190,10 @@ create or replace table t2 (y int) with system versioning; insert into t1 values (1), (2), (3); delete from t1 where x = 3; insert into t2 values (1); -select * from t1, t2 system_time all; +select * from t1, t2 for system_time all; --error ER_VERS_UNUSED_CLAUSE -select * from t1 for system_time all, t2 for system_time all system_time all; +select * from t1 for system_time all, t2 for system_time all for system_time all; drop view v1; drop table t1, t2; diff --git a/mysql-test/suite/versioning/t/simple.test b/mysql-test/suite/versioning/t/simple.test index d32ea939279..a594162c3b5 100644 --- a/mysql-test/suite/versioning/t/simple.test +++ b/mysql-test/suite/versioning/t/simple.test @@ -45,26 +45,26 @@ where d.dept_id = 10 select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time from timestamp @ts_1 to timestamp @ts_2; +for system_time from timestamp @ts_1 to timestamp @ts_2; select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_0; +for system_time as of timestamp @ts_0; select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_1; +for system_time as of timestamp @ts_1; select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_2; +for system_time as of timestamp @ts_2; select * from emp e, dept d where d.dept_id = 10 and d.dept_id = e.dept_id -system_time as of timestamp @ts_3; +for system_time as of timestamp @ts_3; drop table emp, dept; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 0b3bda60fe6..6b5667fc4ab 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -871,15 +871,16 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %parse-param { THD *thd } %lex-param { THD *thd } /* - Currently there are 117 shift/reduce conflicts. + Currently there are 124 shift/reduce conflicts. We should not introduce new conflicts any more. */ -%expect 117 +%expect 124 /* Comments for TOKENS. For each token, please include in the same line a comment that contains the following tags: + SQL-2011-R : Reserved keyword as per SQL-2011 SQL-2011-N : Non Reserved keyword as per SQL-2011 SQL-2003-R : Reserved keyword as per SQL-2003 SQL-2003-N : Non Reserved keyword as per SQL-2003 @@ -890,9 +891,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); INTERNAL : Not a real token, lex optimization OPERATOR : SQL operator FUTURE-USE : Reserved for future use - 32N2439 : Reserved keywords per ISO/IEC PDTR 19075-2, - http://jtc1sc32.org/doc/N2401-2450/32N2439-text_for_ballot-PDTR_19075-2.pdf - System Versioned Tables This makes the code grep-able, and helps maintenance. */ @@ -1340,7 +1338,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %token PERCENT_RANK_SYM %token PERCENTILE_CONT_SYM %token PERCENTILE_DISC_SYM -%token PERIOD_SYM /* 32N2439 */ +%token PERIOD_SYM /* SQL-2011-R */ %token PERSISTENT_SYM %token PHASE_SYM %token PLUGINS_SYM @@ -1507,8 +1505,8 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %token SWAPS_SYM %token SWITCHES_SYM %token SYSDATE -%token SYSTEM /* 32N2439 */ -%token SYSTEM_TIME_SYM /* 32N2439 */ +%token SYSTEM /* SQL-2011-R */ +%token SYSTEM_TIME_SYM /* SQL-2011-R */ %token TABLES %token TABLESPACE %token TABLE_REF_PRIORITY @@ -1579,7 +1577,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %token VARIANCE_SYM %token VARYING /* SQL-2003-R */ %token VAR_SAMP_SYM -%token VERSIONING_SYM /* 32N2439 */ +%token VERSIONING_SYM /* SQL-2011-R */ %token VIA_SYM %token VIEW_SYM /* SQL-2003-N */ %token VIRTUAL_SYM @@ -9011,7 +9009,7 @@ opt_trans_or_timestamp: opt_system_time_clause: /* empty */ {} - | SYSTEM_TIME_SYM system_time_expr + | FOR_SYSTEM_TIME_SYM system_time_expr { DBUG_ASSERT(Select); int used= 0; @@ -15453,6 +15451,8 @@ keyword_sp_not_data_type: | SUSPEND_SYM {} | SWAPS_SYM {} | SWITCHES_SYM {} + | SYSTEM {} + | SYSTEM_TIME_SYM {} | TABLE_NAME_SYM {} | TABLES {} | TABLE_CHECKSUM_SYM {} @@ -15478,6 +15478,7 @@ keyword_sp_not_data_type: | USER_SYM {} | USE_FRM {} | VARIABLES {} + | VERSIONING_SYM {} | VIEW_SYM {} | VIRTUAL_SYM {} | VALUE_SYM {} @@ -15485,6 +15486,7 @@ keyword_sp_not_data_type: | WAIT_SYM {} | WEEK_SYM {} | WEIGHT_STRING_SYM {} + | WITHOUT {} | WORK_SYM {} | X509_SYM {} | XML_SYM {}