Skip to content

Commit

Permalink
SQL: INNER JOIN USING with versioned tables [fixes #147]
Browse files Browse the repository at this point in the history
  • Loading branch information
kevgs authored and midenok committed May 5, 2017
1 parent 9355e3e commit 7a22dd3
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
11 changes: 10 additions & 1 deletion mysql-test/suite/versioning/r/select.result
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,16 @@ ERROR HY000: Wrong parameters for `FOR SYSTEM_TIME query`: write-locking of hist
create or replace table t1 (a int not null auto_increment primary key) with system versioning;
select * from (t1 as t2 left join t1 as t3 using (a)) natural left join t1;
a
drop table t1;
create or replace table t1 (a int) with system versioning;
create or replace table t2 (a int) with system versioning;
insert into t1 values(1);
insert into t2 values(1);
create view v1 as select * from t2 inner join t1 using (a);
select * from v1;
a
1
drop view v1;
drop table t1, t2;
call verify_vtq;
No A B C D
1 1 1 1 1
Expand Down
10 changes: 9 additions & 1 deletion mysql-test/suite/versioning/t/select.test
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,15 @@ select * from t1 for system_time all for update;
create or replace table t1 (a int not null auto_increment primary key) with system versioning;
select * from (t1 as t2 left join t1 as t3 using (a)) natural left join t1;

drop table t1;
create or replace table t1 (a int) with system versioning;
create or replace table t2 (a int) with system versioning;
insert into t1 values(1);
insert into t2 values(1);
create view v1 as select * from t2 inner join t1 using (a);
select * from v1;
drop view v1;

drop table t1, t2;

call verify_vtq;

Expand Down
2 changes: 1 addition & 1 deletion sql/sql_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5350,7 +5350,7 @@ find_field_in_natural_join(THD *thd, TABLE_LIST *table_ref, const char *name,
{
if (!my_strcasecmp(system_charset_info, curr_nj_col->name(), name))
{
if (nj_col)
if (nj_col && !curr_nj_col->table_field->field->vers_sys_field())
{
my_error(ER_NON_UNIQ_ERROR, MYF(0), name, thd->where);
DBUG_RETURN(NULL);
Expand Down

0 comments on commit 7a22dd3

Please sign in to comment.