Below is the list of changes that have just been committed into a local
5.1 repository of kostja. When kostja does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-05-22 18:59:29+04:00, kostja@vajra.(none) +5 -0
Next increment.
sql/mysql_priv.h@stripped, 2007-05-22 18:59:25+04:00, kostja@vajra.(none) +1 -1
Next increment.
sql/sql_insert.cc@stripped, 2007-05-22 18:59:25+04:00, kostja@vajra.(none) +1 -1
Next increment.
sql/sql_lex.cc@stripped, 2007-05-22 18:59:25+04:00, kostja@vajra.(none) +3 -1
Fix a bug in the port
sql/sql_parse.cc@stripped, 2007-05-22 18:59:25+04:00, kostja@vajra.(none) +1 -1
Next increment.
sql/sql_table.cc@stripped, 2007-05-22 18:59:26+04:00, kostja@vajra.(none) +13 -11
Next increment.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: kostja
# Host: vajra.(none)
# Root: /opt/local/work/mysql-5.1-4968-new
--- 1.510/sql/mysql_priv.h 2007-05-22 11:24:07 +04:00
+++ 1.511/sql/mysql_priv.h 2007-05-22 18:59:25 +04:00
@@ -965,7 +965,7 @@ bool mysql_create_table(THD *thd,const c
bool mysql_create_table_no_lock(THD *thd, const char *db,
const char *table_name,
HA_CREATE_INFO *create_info,
- List<create_field> &fields, List<Key> &keys,
+ Alter_info *alter_info,
bool tmp_table, uint select_field_count);
bool mysql_alter_table(THD *thd, char *new_db, char *new_name,
--- 1.269/sql/sql_insert.cc 2007-05-21 19:07:46 +04:00
+++ 1.270/sql/sql_insert.cc 2007-05-22 18:59:25 +04:00
@@ -3260,7 +3260,7 @@ static TABLE *create_table_from_items(TH
tmp_disable_binlog(thd);
if (!mysql_create_table_no_lock(thd, create_table->db,
create_table->table_name,
- create_info, alter_info->create_list, alter_info->key_list, 0,
+ create_info, alter_info, 0,
select_field_count))
{
--- 1.242/sql/sql_lex.cc 2007-05-21 19:07:46 +04:00
+++ 1.243/sql/sql_lex.cc 2007-05-22 18:59:25 +04:00
@@ -1125,7 +1125,9 @@ Alter_info::Alter_info(const Alter_info
create_list(rhs.create_list, mem_root),
flags(rhs.flags),
keys_onoff(rhs.keys_onoff),
- tablespace_op(rhs.tablespace_op)
+ tablespace_op(rhs.tablespace_op),
+ partition_names(rhs.partition_names, mem_root),
+ no_parts(rhs.no_parts)
{}
--- 1.671/sql/sql_parse.cc 2007-05-22 11:24:07 +04:00
+++ 1.672/sql/sql_parse.cc 2007-05-22 18:59:25 +04:00
@@ -2286,8 +2286,8 @@ end_with_restore_list:
ALTER TABLE.
*/
{
- Alter_info alter_info(lex->alter_info, thd->mem_root);
HA_CREATE_INFO create_info;
+ Alter_info alter_info(lex->alter_info, thd->mem_root);
if (thd->is_fatal_error) /* out of memory creating a copy of alter_info*/
goto error;
--- 1.419/sql/sql_table.cc 2007-05-22 11:24:08 +04:00
+++ 1.420/sql/sql_table.cc 2007-05-22 18:59:26 +04:00
@@ -3200,8 +3200,8 @@ void sp_prepare_create_field(THD *thd, c
bool mysql_create_table_no_lock(THD *thd,
const char *db, const char *table_name,
HA_CREATE_INFO *create_info,
- List<create_field> &fields,
- List<Key> &keys,bool internal_tmp_table,
+ Alter_info *alter_info,
+ bool internal_tmp_table,
uint select_field_count)
{
char path[FN_REFLEN];
@@ -3217,7 +3217,7 @@ bool mysql_create_table_no_lock(THD *thd
/* Check for duplicate fields and check type of table to create */
- if (!fields.elements)
+ if (alter_info->create_list.elements == 0)
{
my_message(ER_TABLE_MUST_HAVE_COLUMNS, ER(ER_TABLE_MUST_HAVE_COLUMNS),
MYF(0));
@@ -3269,7 +3269,7 @@ bool mysql_create_table_no_lock(THD *thd
Check that we don't use foreign keys in the table since it won't
work even with InnoDB beneath it.
*/
- List_iterator<Key> key_iterator(keys);
+ List_iterator<Key> key_iterator(alter_info->key_list);
Key *key;
handlerton *part_engine_type= create_info->db_type;
char *part_syntax_buf;
@@ -3396,8 +3396,8 @@ bool mysql_create_table_no_lock(THD *thd
set_table_default_charset(thd, create_info, (char*) db);
- if (mysql_prepare_table(thd, create_info, &fields,
- &keys, internal_tmp_table, &db_options, file,
+ if (mysql_prepare_table(thd, create_info, &alter_info->create_list,
+ &alter_info->key_list, internal_tmp_table, &db_options, file,
&key_info_buffer, &key_count,
select_field_count))
goto err;
@@ -3507,7 +3507,8 @@ bool mysql_create_table_no_lock(THD *thd
create_info->table_options=db_options;
path[path_length - reg_ext_length]= '\0'; // Remove .frm extension
- if (rea_create_table(thd, path, db, table_name, create_info, fields,
+ if (rea_create_table(thd, path, db, table_name, create_info,
+ alter_info->create_list,
key_count, key_info_buffer, file))
goto unlock_and_end;
@@ -3611,8 +3612,8 @@ bool mysql_create_table(THD *thd, const
}
result= mysql_create_table_no_lock(thd, db, table_name, create_info,
- alter_info->create_list,
- alter_info->key_list, internal_tmp_table,
+ alter_info,
+ internal_tmp_table,
select_field_count);
unlock:
@@ -6307,8 +6308,9 @@ view_err:
*/
tmp_disable_binlog(thd);
error= mysql_create_table_no_lock(thd, new_db, tmp_name,
- create_info, new_info.create_list,
- new_info.key_list, 1, 0);
+ create_info,
+ &new_info,
+ 1, 0);
reenable_binlog(thd);
if (error)
goto err;
| Thread |
|---|
| • bk commit into 5.1 tree (kostja:1.2531) | konstantin | 22 May |