mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
SQL: system_time propagation from derived table [fixes #228]
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
--innodb --default-storage-engine=innodb
|
||||
--plugin-load=versioning
|
||||
--versioning-hide=implicit
|
@@ -65,5 +65,20 @@ as
|
||||
)
|
||||
select * from ancestors;
|
||||
|
||||
create or replace table emp ( emp_id int, name varchar(127), mgr int) with system versioning;
|
||||
create or replace table addr ( emp_id int, address varchar(100)) with system versioning;
|
||||
insert emp values (1, 'bill', 0), (2, 'bill', 1), (3, 'kate', 1);
|
||||
insert addr values (1, 'Moscow'), (2, 'New York'), (3, 'London');
|
||||
set @ts=now(6);
|
||||
delete from emp;
|
||||
delete from addr;
|
||||
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;
|
||||
|
||||
drop table emp;
|
||||
drop table dept;
|
||||
drop table addr;
|
@@ -103,10 +103,14 @@ select * from (select *, t1.sys_trx_end, t2.sys_trx_start from t1, t2) as s0;
|
||||
|
||||
# system_time propagation from inner to outer
|
||||
select * from (select * from t1 for system_time as of timestamp @t0, t2) as s0;
|
||||
with s1 as (select * from t1 for system_time as of timestamp @t0, t2) select * from s1;
|
||||
# leading table selection
|
||||
select * from (select *, t1.sys_trx_end from t2, t1 for system_time as of timestamp @t0) as s0;
|
||||
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 s0 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 query 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 query 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, "'");
|
||||
|
Reference in New Issue
Block a user