mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
SQL: optimized transformer fix [#365 bug 4]
Affected tests (forced mode):
main.win
main.selectivity_innodb
main.subselect_cache
main.analyze_stmt_orderby
Related to #226 (909867d014
).
This commit is contained in:
@ -52,7 +52,6 @@ select * from t group by b having b=2 system_time as of timestamp now(6);
|
|||||||
a b
|
a b
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
Warning 4109 Attempt to read unversioned field `b` in historical query
|
||||||
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 system_time as of timestamp now(6);
|
||||||
a
|
a
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -71,7 +70,6 @@ select count(*), b from t group by b having b=NULL system_time as of timestamp n
|
|||||||
count(*) b
|
count(*) b
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
Warning 4109 Attempt to read unversioned field `b` in historical query
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
|
||||||
select a, b from t;
|
select a, b from t;
|
||||||
a b
|
a b
|
||||||
1 2
|
1 2
|
||||||
@ -85,7 +83,6 @@ select * from t for system_time as of timestamp now(6) group by b having b=2;
|
|||||||
a b
|
a b
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
Warning 4109 Attempt to read unversioned field `b` in historical query
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
|
||||||
select a from t for system_time as of timestamp now(6) where b=2;
|
select a from t for system_time as of timestamp now(6) where b=2;
|
||||||
a
|
a
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -104,7 +101,6 @@ select count(*), b from t for system_time as of timestamp now(6) group by b havi
|
|||||||
count(*) b
|
count(*) b
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
Warning 4109 Attempt to read unversioned field `b` in historical query
|
||||||
Warning 4109 Attempt to read unversioned field `b` in historical query
|
|
||||||
create or replace table t (
|
create or replace table t (
|
||||||
a int,
|
a int,
|
||||||
b int not null without system versioning
|
b int not null without system versioning
|
||||||
|
@ -358,9 +358,18 @@ x y
|
|||||||
3 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 system_time all;
|
||||||
ERROR HY000: Unused clause: 'SYSTEM_TIME'
|
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;
|
||||||
|
insert into t1 values (0, 0), (0, 0);
|
||||||
|
select min(i) over (partition by b) as f
|
||||||
|
from (select i + 0 as i, b from t1) as tt
|
||||||
|
order by i;
|
||||||
|
f
|
||||||
|
0
|
||||||
|
0
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
call innodb_verify_vtq(27);
|
call innodb_verify_vtq(28);
|
||||||
No A B C D
|
No A B C D
|
||||||
1 1 1 1 1
|
1 1 1 1 1
|
||||||
2 1 1 1 1
|
2 1 1 1 1
|
||||||
@ -389,6 +398,7 @@ No A B C D
|
|||||||
25 1 1 1 1
|
25 1 1 1 1
|
||||||
26 1 1 1 1
|
26 1 1 1 1
|
||||||
27 1 1 1 1
|
27 1 1 1 1
|
||||||
|
28 1 1 1 1
|
||||||
drop procedure verify_vtq;
|
drop procedure verify_vtq;
|
||||||
drop procedure innodb_verify_vtq;
|
drop procedure innodb_verify_vtq;
|
||||||
drop function default_engine;
|
drop function default_engine;
|
||||||
|
@ -181,9 +181,16 @@ select * from t1, t2 system_time all;
|
|||||||
--error ER_VERS_UNUSED_CLAUSE
|
--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 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;
|
||||||
|
insert into t1 values (0, 0), (0, 0);
|
||||||
|
select min(i) over (partition by b) as f
|
||||||
|
from (select i + 0 as i, b from t1) as tt
|
||||||
|
order by i;
|
||||||
|
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
call innodb_verify_vtq(27);
|
call innodb_verify_vtq(28);
|
||||||
|
|
||||||
-- source suite/versioning/common_finish.inc
|
-- source suite/versioning/common_finish.inc
|
||||||
|
@ -1371,13 +1371,13 @@ JOIN::prepare(TABLE_LIST *tables_init,
|
|||||||
for (ORDER *ord= order; ord; ord= ord->next)
|
for (ORDER *ord= order; ord; ord= ord->next)
|
||||||
{
|
{
|
||||||
ord->item_ptr= (*ord->item)->transform(thd, transformer, NULL);
|
ord->item_ptr= (*ord->item)->transform(thd, transformer, NULL);
|
||||||
ord->item= &ord->item_ptr;
|
*ord->item= ord->item_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ORDER *ord= group_list; ord; ord= ord->next)
|
for (ORDER *ord= group_list; ord; ord= ord->next)
|
||||||
{
|
{
|
||||||
ord->item_ptr= (*ord->item)->transform(thd, transformer, NULL);
|
ord->item_ptr= (*ord->item)->transform(thd, transformer, NULL);
|
||||||
ord->item= &ord->item_ptr;
|
*ord->item= ord->item_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (having)
|
if (having)
|
||||||
|
Reference in New Issue
Block a user