Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
91c8b43e
Commit
91c8b43e
authored
Jul 12, 2017
by
Aleksey Midenkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Parser: syntax for query system_time [closes #230]
Eliminated `QUERY FOR`.
parent
60e456df
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
56 additions
and
73 deletions
+56
-73
mysql-test/suite/versioning/r/cte.result
mysql-test/suite/versioning/r/cte.result
+2
-2
mysql-test/suite/versioning/r/derived.result
mysql-test/suite/versioning/r/derived.result
+3
-3
mysql-test/suite/versioning/r/optimized_fields.result
mysql-test/suite/versioning/r/optimized_fields.result
+7
-7
mysql-test/suite/versioning/r/select.result
mysql-test/suite/versioning/r/select.result
+7
-7
mysql-test/suite/versioning/r/simple.result
mysql-test/suite/versioning/r/simple.result
+5
-5
mysql-test/suite/versioning/r/truncate.result
mysql-test/suite/versioning/r/truncate.result
+1
-1
mysql-test/suite/versioning/t/cte.test
mysql-test/suite/versioning/t/cte.test
+2
-2
mysql-test/suite/versioning/t/derived.test
mysql-test/suite/versioning/t/derived.test
+3
-3
mysql-test/suite/versioning/t/optimized_fields.test
mysql-test/suite/versioning/t/optimized_fields.test
+7
-7
mysql-test/suite/versioning/t/select.test
mysql-test/suite/versioning/t/select.test
+5
-5
mysql-test/suite/versioning/t/simple.test
mysql-test/suite/versioning/t/simple.test
+5
-5
mysql-test/suite/versioning/t/truncate.opt
mysql-test/suite/versioning/t/truncate.opt
+0
-0
mysql-test/suite/versioning/t/truncate.test
mysql-test/suite/versioning/t/truncate.test
+1
-1
sql/sql_lex.cc
sql/sql_lex.cc
+0
-15
sql/sql_select.cc
sql/sql_select.cc
+3
-3
sql/sql_yacc.yy
sql/sql_yacc.yy
+5
-6
sql/sql_yacc_ora.yy
sql/sql_yacc_ora.yy
+0
-1
No files found.
mysql-test/suite/versioning/r/cte.result
View file @
91c8b43e
...
...
@@ -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
query for
system_time all) select * from ancestors;
with ancestors as (select * from emp natural join addr 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
query for
system_time all;
select * from emp natural join addr system_time all;
emp_id name mgr address
1 bill 0 Moscow
2 bill 1 New York
...
...
mysql-test/suite/versioning/r/derived.result
View file @
91c8b43e
...
...
@@ -148,13 +148,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
query for
system_time as of timestamp @t0;
select * from (select *, t1.sys_trx_start from t2 for system_time as of now, t1) as s4 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
query 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;
y x
10 1
set @q= concat("create view vt1 as select * from t1 for system_time as of timestamp '", @t0, "'");
...
...
@@ -170,7 +170,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
query for
system_time as of timestamp @t0;
select * from (select *, vt1.sys_trx_start from t2 for system_time as of now, vt1) as s0 system_time as of timestamp @t0;
y x
10 1
drop table t1, t2;
...
...
mysql-test/suite/versioning/r/optimized_fields.result
View file @
91c8b43e
...
...
@@ -25,7 +25,7 @@ a b
3 NULL
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select count(*) from t group by b
query for
system_time as of timestamp now(6);
select count(*) from t group by b system_time as of timestamp now(6);
count(*)
2
Warnings:
...
...
@@ -42,29 +42,29 @@ a b
3 NULL
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select * from t group by a having a=2
query for
system_time as of timestamp now(6);
select * from t group by a having a=2 system_time as of timestamp now(6);
a b
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select * from t group by b having b=2
query for
system_time as of timestamp now(6);
select * from t group by b having b=2 system_time as of timestamp now(6);
a b
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select a from t where b=2
query for
system_time as of timestamp now(6);
select a from t where b=2 system_time as of timestamp now(6);
a
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select a from t where b=NULL
query for
system_time as of timestamp now(6);
select a from t where b=NULL system_time as of timestamp now(6);
a
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select a from t where b is NULL
query for
system_time as of timestamp now(6);
select a from t where b is NULL system_time as of timestamp now(6);
a
1
3
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
select count(*), b from t group by b having b=NULL
query for
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);
count(*) b
Warnings:
Warning 4075 Attempt to read unversioned field `b` in historical query
...
...
mysql-test/suite/versioning/r/select.result
View file @
91c8b43e
...
...
@@ -146,11 +146,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
query for
system_time as of timestamp @t0;
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
query for
system_time as of timestamp @t0;
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
query for
system_time as of timestamp @t0;
system_time as of timestamp @t0;
drop table t1;
drop table t2;
end~~
...
...
@@ -333,7 +333,7 @@ A
create or replace table t1 (x int);
insert into t1 values (1);
select * from t1 for system_time all;
ERROR HY000: System Versioning required:
`FOR SYSTEM_TIME` query
ERROR HY000: System Versioning required:
t1
create or replace table t1 (x int) with system versioning;
insert into t1 values (1);
select * from t1 for system_time all for update;
...
...
@@ -431,13 +431,13 @@ 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
query for
system_time all;
select * from t1, t2 system_time all;
x y
1 1
2 1
3 1
select * from t1 for system_time all, t2 for system_time all
query for
system_time all;
ERROR HY000: Unused clause: '
QUERY FOR
SYSTEM_TIME'
select * from t1 for system_time all, t2 for system_time all system_time all;
ERROR HY000: Unused clause: 'SYSTEM_TIME'
drop view v1;
drop table t1, t2;
call innodb_verify_vtq(27);
...
...
mysql-test/suite/versioning/r/simple.result
View file @
91c8b43e
...
...
@@ -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
query for
system_time from timestamp @ts_1 to timestamp @ts_2;
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
query for
system_time as of timestamp @ts_0;
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
query for
system_time as of timestamp @ts_1;
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
query for
system_time as of timestamp @ts_2;
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
query for
system_time as of timestamp @ts_3;
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;
mysql-test/suite/versioning/r/truncate
_history
.result
→
mysql-test/suite/versioning/r/truncate.result
View file @
91c8b43e
create table t (a int);
truncate t for system_time all;
ERROR HY000:
System Versioning required: `FOR SYSTEM_TIME` query
ERROR HY000:
Unused clause: 'SYSTEM_TIME'
create procedure truncate_history_of_t()
begin
prepare stmt from 'truncate t for system_time timestamp between \'1-1-1\' and now(6)';
...
...
mysql-test/suite/versioning/t/cte.test
View file @
91c8b43e
...
...
@@ -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
query
for
system_time
all
)
select
*
from
ancestors
;
select
*
from
emp
natural
join
addr
query
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
;
drop
table
emp
;
drop
table
dept
;
...
...
mysql-test/suite/versioning/t/derived.test
View file @
91c8b43e
...
...
@@ -108,9 +108,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
query
for
system_time
as
of
timestamp
@
t0
;
select
*
from
(
select
*
,
t1
.
sys_trx_start
from
t2
for
system_time
as
of
now
,
t1
)
as
s4
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
query
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
;
# VIEW instead of t1
set
@
q
=
concat
(
"create view vt1 as select * from t1 for system_time as of timestamp '"
,
@
t0
,
"'"
);
...
...
@@ -123,7 +123,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
query
for
system_time
as
of
timestamp
@
t0
;
select
*
from
(
select
*
,
vt1
.
sys_trx_start
from
t2
for
system_time
as
of
now
,
vt1
)
as
s0
system_time
as
of
timestamp
@
t0
;
drop
table
t1
,
t2
;
drop
view
vt1
;
mysql-test/suite/versioning/t/optimized_fields.test
View file @
91c8b43e
...
...
@@ -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
query
for
system_time
as
of
timestamp
now
(
6
);
select
count
(
*
)
from
t
group
by
b
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
query
for
system_time
as
of
timestamp
now
(
6
);
select
*
from
t
group
by
b
having
b
=
2
query
for
system_time
as
of
timestamp
now
(
6
);
select
a
from
t
where
b
=
2
query
for
system_time
as
of
timestamp
now
(
6
);
select
a
from
t
where
b
=
NULL
query
for
system_time
as
of
timestamp
now
(
6
);
select
a
from
t
where
b
is
NULL
query
for
system_time
as
of
timestamp
now
(
6
);
select
count
(
*
),
b
from
t
group
by
b
having
b
=
NULL
query
for
system_time
as
of
timestamp
now
(
6
);
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
a
,
b
from
t
;
drop
table
t
;
mysql-test/suite/versioning/t/select.test
View file @
91c8b43e
...
...
@@ -99,11 +99,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
query
for
system_time
as
of
timestamp
@
t0
;
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
query
for
system_time
as
of
timestamp
@
t0
;
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
query
for
system_time
as
of
timestamp
@
t0
;
system_time
as
of
timestamp
@
t0
;
drop
table
t1
;
drop
table
t2
;
...
...
@@ -195,10 +195,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
query
for
system_time
all
;
select
*
from
t1
,
t2
system_time
all
;
--
error
ER_VERS_UNUSED_CLAUSE
select
*
from
t1
for
system_time
all
,
t2
for
system_time
all
query
for
system_time
all
;
select
*
from
t1
for
system_time
all
,
t2
for
system_time
all
system_time
all
;
drop
view
v1
;
drop
table
t1
,
t2
;
...
...
mysql-test/suite/versioning/t/simple.test
View file @
91c8b43e
...
...
@@ -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
query
for
system_time
from
timestamp
@
ts_1
to
timestamp
@
ts_2
;
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
query
for
system_time
as
of
timestamp
@
ts_0
;
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
query
for
system_time
as
of
timestamp
@
ts_1
;
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
query
for
system_time
as
of
timestamp
@
ts_2
;
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
query
for
system_time
as
of
timestamp
@
ts_3
;
system_time
as
of
timestamp
@
ts_3
;
drop
table
emp
,
dept
;
mysql-test/suite/versioning/t/truncate
_history
.opt
→
mysql-test/suite/versioning/t/truncate.opt
View file @
91c8b43e
File moved
mysql-test/suite/versioning/t/truncate
_history
.test
→
mysql-test/suite/versioning/t/truncate.test
View file @
91c8b43e
--
source
include
/
have_innodb
.
inc
create
table
t
(
a
int
);
--
error
ER_VERS
IONING_REQUIRED
--
error
ER_VERS
_UNUSED_CLAUSE
truncate
t
for
system_time
all
;
delimiter
~~
;
...
...
sql/sql_lex.cc
View file @
91c8b43e
...
...
@@ -1368,21 +1368,6 @@ int MYSQLlex(YYSTYPE *yylval, THD *thd)
return
FOR_SYM
;
}
break
;
case
QUERY_SYM
:
{
CHARSET_INFO
*
cs
=
thd
->
charset
();
const
char
*
p
=
lip
->
get_ptr
();
while
(
my_isspace
(
cs
,
*
p
))
++
p
;
if
(
lip
->
get_end_of_query
()
-
p
>
3
&&
my_isspace
(
cs
,
p
[
3
])
&&
0
==
strncasecmp
(
p
,
"for"
,
3
))
{
token
=
lex_one_token
(
yylval
,
thd
);
lip
->
add_digest_token
(
token
,
yylval
);
return
QUERY_FOR_SYM
;
}
return
QUERY_SYM
;
}
default:
break
;
}
...
...
sql/sql_select.cc
View file @
91c8b43e
...
...
@@ -708,7 +708,7 @@ int vers_setup_select(THD *thd, TABLE_LIST *tables, COND **where_expr,
versioned_tables
++
;
else
if
(
table
->
vers_conditions
)
{
my_error
(
ER_VERSIONING_REQUIRED
,
MYF
(
0
),
"`FOR SYSTEM_TIME` query"
);
my_error
(
ER_VERSIONING_REQUIRED
,
MYF
(
0
),
table
->
alias
);
DBUG_RETURN
(
-
1
);
}
}
...
...
@@ -717,7 +717,7 @@ int vers_setup_select(THD *thd, TABLE_LIST *tables, COND **where_expr,
{
if
(
slex
->
vers_conditions
)
{
my_error
(
ER_VERS
IONING_REQUIRED
,
MYF
(
0
),
"`FOR SYSTEM_TIME` query
"
);
my_error
(
ER_VERS
_UNUSED_CLAUSE
,
MYF
(
0
),
"SYSTEM_TIME
"
);
DBUG_RETURN
(
-
1
);
}
DBUG_RETURN
(
0
);
...
...
@@ -1014,7 +1014,7 @@ int vers_setup_select(THD *thd, TABLE_LIST *tables, COND **where_expr,
if
(
!
slex
->
vers_conditions
.
used
&&
slex
->
vers_conditions
)
{
my_error
(
ER_VERS_UNUSED_CLAUSE
,
MYF
(
0
),
"
QUERY FOR
SYSTEM_TIME"
);
my_error
(
ER_VERS_UNUSED_CLAUSE
,
MYF
(
0
),
"SYSTEM_TIME"
);
DBUG_RETURN
(
-
1
);
}
...
...
sql/sql_yacc.yy
View file @
91c8b43e
...
...
@@ -1355,7 +1355,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token PURGE
%token QUARTER_SYM
%token QUERY_SYM
%token QUERY_FOR_SYM /* INTERNAL */
%token QUICK
%token RAISE_SYM /* Oracle-PLSQL-R */
%token RANGE_SYM /* SQL-2003-R */
...
...
@@ -8804,7 +8803,7 @@ table_expression:
opt_group_clause
opt_having_clause
opt_window_clause
opt_
query_for_
system_time_clause
opt_system_time_clause
;
opt_table_expression:
...
...
@@ -8850,10 +8849,10 @@ trans_or_timestamp:
}
;
opt_
query_for_
system_time_clause:
opt_system_time_clause:
/* empty */
{}
|
QUERY_FOR_SYM SYSTEM_TIME_SYM for_
system_time_expr
|
SYSTEM_TIME_SYM
system_time_expr
{
DBUG_ASSERT(Select);
Select->vers_conditions= Lex->vers_conditions;
...
...
@@ -8865,13 +8864,13 @@ opt_for_system_time_clause:
{
$$= false;
}
| FOR_SYSTEM_TIME_SYM
for_
system_time_expr
| FOR_SYSTEM_TIME_SYM system_time_expr
{
$$= true;
}
;
for_
system_time_expr:
system_time_expr:
AS OF_SYM trans_or_timestamp simple_expr
{
Lex->vers_conditions.init(FOR_SYSTEM_TIME_AS_OF, $3, $4);
...
...
sql/sql_yacc_ora.yy
View file @
91c8b43e
...
...
@@ -763,7 +763,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token PURGE
%token QUARTER_SYM
%token QUERY_SYM
%token QUERY_FOR_SYM /* INTERNAL */
%token QUICK
%token RAISE_SYM /* Oracle-PLSQL-R */
%token RANGE_SYM /* SQL-2003-R */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment