mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fixed issues with partitions and create temporary table SELECT ...
Merged all ddl_logging code. Merged sql_partition.cc innodb_mysql_lock2.test and partition_cache.test now works. Changed interface to strconvert() to make it easier to use with not \0 terminated strings. sql/sql_partition.cc: Full merge with 5.6 sql/sql_table.cc: Merged all ddl_logging code sql/strfunc.cc: Added from_length argument to strconvert() to make it possible to use without end terminated strings. sql/strfunc.h: Added from_length argument to strconvert() to make it possible to use without end terminated strings.
This commit is contained in:
@ -4575,9 +4575,24 @@ open_and_process_table(THD *thd, LEX *lex, TABLE_LIST *tables,
|
||||
tables->db, tables->table_name, tables)); //psergey: invalid read of size 1 here
|
||||
(*counter)++;
|
||||
|
||||
/* Not a placeholder: must be a base table or a view. Let us open it. */
|
||||
DBUG_ASSERT(!tables->table);
|
||||
/* Check if we are trying to create a temporary table */
|
||||
if (tables->open_type == OT_TEMPORARY_ONLY)
|
||||
{
|
||||
/*
|
||||
OT_TEMPORARY_ONLY means that we are in CREATE TEMPORARY TABLE statement.
|
||||
Also such table list element can't correspond to prelocking placeholder
|
||||
or to underlying table of merge table.
|
||||
So existing temporary table should have been preopened by this moment
|
||||
and we can simply continue without trying to open temporary or base
|
||||
table.
|
||||
*/
|
||||
DBUG_ASSERT(tables->open_strategy);
|
||||
DBUG_ASSERT(!tables->prelocking_placeholder);
|
||||
DBUG_ASSERT(!tables->parent_l);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
/* Not a placeholder: must be a base table or a view. Let us open it. */
|
||||
if (tables->prelocking_placeholder)
|
||||
{
|
||||
/*
|
||||
|
Reference in New Issue
Block a user