1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

Fix bug #11864 non unique names are allowed in subquery

Column names weren't checked for uniqueness for subqueries.

Code for names uniqueness checking used for view creation moved into 
separate function named check_duplicate_names(). It's called on 
preparation of subqueries to check uniqueness of names. If duplicate names 
are found then error is raised.


sql/sql_derived.cc:
  Fix bug #11864 non unique names are allowed in subquery
  Added check for names uniqueness in select list.
sql/sql_view.cc:
  Fix bug #11864 non unique names are allowed in subquery
  Code for checking uniqueness of names in item list moved into separate function to make in available for use from other places.
sql/sql_view.h:
   Fix bug #11864 non unique names are allowed in subquery
  Added check_duplicate_names() function prototype.
mysql-test/t/derived.test:
  Fixed test case results after bug fix #11864
  Added test case for bug#11864 non unique names are allowed in subquery.
mysql-test/t/select_safe.test:
  Fixed test case results after bug fix #11864
mysql-test/r/derived.result:
  Added test case for bug #11864 non unique names are allowed in subquery.
  Fixed test case results after bug fix #11864
mysql-test/r/select_safe.result:
  Fixed test case results after bug fix #11864
This commit is contained in:
unknown
2005-08-10 17:45:00 +04:00
parent aa337b1d5e
commit e66cd71698
7 changed files with 92 additions and 33 deletions

View File

@@ -84,7 +84,7 @@ set local max_join_size=8;
select * from (select * from t1) x;
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
set local max_join_size=1;
select * from (select * from t1 a, t1 b) x;
select * from (select a.a as aa, b.a as ba from t1 a, t1 b) x;
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
set local max_join_size=1;
select * from (select 1 union select 2 union select 3) x;