Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr_rh9/home/elkin.rh9/MySQL/mysql-5.0
This commit is contained in:
commit
9e0240d366
@ -1084,3 +1084,16 @@ DROP TABLE t1;
|
|||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP FUNCTION func1;
|
DROP FUNCTION func1;
|
||||||
DROP FUNCTION func2;
|
DROP FUNCTION func2;
|
||||||
|
create database mysqltest;
|
||||||
|
create table mysqltest.t1(a int);
|
||||||
|
select table_schema from information_schema.tables where table_schema='mysqltest';
|
||||||
|
table_schema
|
||||||
|
drop database mysqltest;
|
||||||
|
select column_type, group_concat(table_schema, '.', table_name), count(*) as num
|
||||||
|
from information_schema.columns where
|
||||||
|
table_schema='information_schema' and
|
||||||
|
(column_type = 'varchar(7)' or column_type = 'varchar(20)')
|
||||||
|
group by column_type order by num;
|
||||||
|
column_type group_concat(table_schema, '.', table_name) num
|
||||||
|
varchar(20) information_schema.COLUMNS 1
|
||||||
|
varchar(7) information_schema.ROUTINES,information_schema.VIEWS 2
|
||||||
|
@ -790,3 +790,22 @@ DROP TABLE t1;
|
|||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP FUNCTION func1;
|
DROP FUNCTION func1;
|
||||||
DROP FUNCTION func2;
|
DROP FUNCTION func2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #15851 Unlistable directories yield no info from information_schema
|
||||||
|
#
|
||||||
|
create database mysqltest;
|
||||||
|
create table mysqltest.t1(a int);
|
||||||
|
--exec chmod -r $MYSQL_TEST_DIR/var/master-data/mysqltest
|
||||||
|
select table_schema from information_schema.tables where table_schema='mysqltest';
|
||||||
|
--exec chmod +r $MYSQL_TEST_DIR/var/master-data/mysqltest
|
||||||
|
drop database mysqltest;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema
|
||||||
|
#
|
||||||
|
select column_type, group_concat(table_schema, '.', table_name), count(*) as num
|
||||||
|
from information_schema.columns where
|
||||||
|
table_schema='information_schema' and
|
||||||
|
(column_type = 'varchar(7)' or column_type = 'varchar(20)')
|
||||||
|
group by column_type order by num;
|
||||||
|
@ -170,6 +170,8 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
|
|||||||
bzero(finfo.mystat, sizeof(MY_STAT));
|
bzero(finfo.mystat, sizeof(MY_STAT));
|
||||||
VOID(strmov(tmp_file,dp->d_name));
|
VOID(strmov(tmp_file,dp->d_name));
|
||||||
VOID(my_stat(tmp_path, finfo.mystat, MyFlags));
|
VOID(my_stat(tmp_path, finfo.mystat, MyFlags));
|
||||||
|
if (!(finfo.mystat->st_mode & MY_S_IREAD))
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
finfo.mystat= NULL;
|
finfo.mystat= NULL;
|
||||||
|
@ -2111,6 +2111,8 @@ void reinit_stmt_before_use(THD *thd, LEX *lex)
|
|||||||
were closed in the end of previous prepare or execute call.
|
were closed in the end of previous prepare or execute call.
|
||||||
*/
|
*/
|
||||||
tables->table= 0;
|
tables->table= 0;
|
||||||
|
/* Reset is_schema_table_processed value(needed for I_S tables */
|
||||||
|
tables->is_schema_table_processed= FALSE;
|
||||||
|
|
||||||
if (tables->prep_on_expr)
|
if (tables->prep_on_expr)
|
||||||
{
|
{
|
||||||
|
@ -11582,6 +11582,12 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order,
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Fill schema tables with data before filesort if it's necessary */
|
||||||
|
if ((join->select_lex->options & OPTION_SCHEMA_TABLE) &&
|
||||||
|
get_schema_tables_result(join))
|
||||||
|
goto err;
|
||||||
|
|
||||||
if (table->s->tmp_table)
|
if (table->s->tmp_table)
|
||||||
table->file->info(HA_STATUS_VARIABLE); // Get record count
|
table->file->info(HA_STATUS_VARIABLE); // Get record count
|
||||||
table->sort.found_records=filesort(thd, table,sortorder, length,
|
table->sort.found_records=filesort(thd, table,sortorder, length,
|
||||||
|
@ -3845,7 +3845,16 @@ bool get_schema_tables_result(JOIN *join)
|
|||||||
TABLE_LIST *table_list= tab->table->pos_in_table_list;
|
TABLE_LIST *table_list= tab->table->pos_in_table_list;
|
||||||
if (table_list->schema_table && thd->fill_derived_tables())
|
if (table_list->schema_table && thd->fill_derived_tables())
|
||||||
{
|
{
|
||||||
if (&lex->unit != lex->current_select->master_unit()) // is subselect
|
bool is_subselect= (&lex->unit != lex->current_select->master_unit());
|
||||||
|
/*
|
||||||
|
The schema table is already processed and
|
||||||
|
the statement is not a subselect.
|
||||||
|
So we don't need to handle this table again.
|
||||||
|
*/
|
||||||
|
if (table_list->is_schema_table_processed && !is_subselect)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (is_subselect) // is subselect
|
||||||
{
|
{
|
||||||
table_list->table->file->extra(HA_EXTRA_RESET_STATE);
|
table_list->table->file->extra(HA_EXTRA_RESET_STATE);
|
||||||
table_list->table->file->delete_all_rows();
|
table_list->table->file->delete_all_rows();
|
||||||
@ -3858,6 +3867,7 @@ bool get_schema_tables_result(JOIN *join)
|
|||||||
if (table_list->schema_table->fill_table(thd, table_list,
|
if (table_list->schema_table->fill_table(thd, table_list,
|
||||||
tab->select_cond))
|
tab->select_cond))
|
||||||
result= 1;
|
result= 1;
|
||||||
|
table_list->is_schema_table_processed= TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
thd->no_warnings_for_error= 0;
|
thd->no_warnings_for_error= 0;
|
||||||
|
@ -515,6 +515,7 @@ typedef struct st_table_list
|
|||||||
st_select_lex_unit *derived; /* SELECT_LEX_UNIT of derived table */
|
st_select_lex_unit *derived; /* SELECT_LEX_UNIT of derived table */
|
||||||
ST_SCHEMA_TABLE *schema_table; /* Information_schema table */
|
ST_SCHEMA_TABLE *schema_table; /* Information_schema table */
|
||||||
st_select_lex *schema_select_lex;
|
st_select_lex *schema_select_lex;
|
||||||
|
bool is_schema_table_processed;
|
||||||
/*
|
/*
|
||||||
True when the view field translation table is used to convert
|
True when the view field translation table is used to convert
|
||||||
schema table fields for backwards compatibility with SHOW command.
|
schema table fields for backwards compatibility with SHOW command.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user