mirror of
https://github.com/MariaDB/server.git
synced 2025-01-24 15:54:37 +01:00
e66cd71698
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
39 lines
1.4 KiB
C++
39 lines
1.4 KiB
C++
/* -*- C++ -*- */
|
|
/* Copyright (C) 2004 MySQL AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
bool mysql_create_view(THD *thd,
|
|
enum_view_create_mode mode);
|
|
|
|
my_bool mysql_make_view(File_parser *parser, TABLE_LIST *table);
|
|
|
|
bool mysql_drop_view(THD *thd, TABLE_LIST *view, enum_drop_mode drop_mode);
|
|
|
|
bool check_key_in_view(THD *thd, TABLE_LIST * view);
|
|
|
|
bool insert_view_fields(THD *thd, List<Item> *list, TABLE_LIST *view);
|
|
|
|
frm_type_enum mysql_frm_type(char *path);
|
|
|
|
int view_checksum(THD *thd, TABLE_LIST *view);
|
|
|
|
extern TYPELIB updatable_views_with_limit_typelib;
|
|
|
|
bool check_duplicate_names(List<Item>& item_list, bool gen_unique_view_names);
|
|
|
|
#define VIEW_ANY_ACL (SELECT_ACL | UPDATE_ACL | INSERT_ACL | DELETE_ACL)
|
|
|