diff options
author | unknown <monty@mysql.com> | 2004-11-03 12:39:38 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-11-03 12:39:38 +0200 |
commit | f5a47f156b6778a0f6751556e56a0afe25d6be13 (patch) | |
tree | 85bce6df7d0ce9d809ff3fc13fa4486590463d00 /sql/sql_table.cc | |
parent | f095274fe8c3d3394d6c0ce0a68f4bea04311999 (diff) | |
download | mariadb-git-f5a47f156b6778a0f6751556e56a0afe25d6be13.tar.gz |
Fixes after merge with 4.1
FOUND is not a reserved keyword anymore
Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete
BUILD/SETUP.sh:
Portability fix
client/mysqltest.c:
Portability fix
mysql-test/r/drop.result:
updated results
mysql-test/r/func_str.result:
New warnings (after merge)
mysql-test/r/insert.result:
Updated tests
mysql-test/r/join_nested.result:
Updated results (because of new column types in 5.0)
mysql-test/r/lock_multi.result:
Temporarly wrong results until Sanja fixes multi-update-lock in 5.0
mysql-test/r/multi_update.result:
Temporary fix until Sanja fixes multi-update locking
mysql-test/r/ps_1general.result:
Update of results after merge
mysql-test/r/ps_2myisam.result:
Update of results after merge
mysql-test/r/ps_3innodb.result:
Update of results after merge
mysql-test/r/ps_4heap.result:
Update of results after merge
mysql-test/r/ps_5merge.result:
Update of results after merge
mysql-test/r/ps_6bdb.result:
Update of results after merge
mysql-test/r/query_cache.result:
Update of results after merge
mysql-test/r/range.result:
New results for new tests
mysql-test/r/rpl_auto_increment.result:
Update with new 4.0 information
mysql-test/r/rpl_charset.result:
After merge fixes
mysql-test/r/subselect.result:
After merge fixes
mysql-test/r/view.result:
Temporary fix until multi-update-locking is fixed
mysql-test/t/drop.test:
Safety fix
mysql-test/t/multi_update.test:
Temporary fix until multi-update-locking is fixed
mysql-test/t/rpl_charset.test:
More comments
mysql-test/t/sp-error.test:
Updated comments
mysql-test/t/view.test:
Temporary fix until multi-update-locking is fixed
scripts/mysql_fix_privilege_tables.sh:
Better error message
sql-common/client.c:
More debugging
sql/ha_ndbcluster.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
Simple optimization of creating item
After merge fixed
Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case)
sql/item.h:
Added Item::set_no_const_sub() to be able to mark fields that can't be substituted
sql/item_cmpfunc.cc:
Mark fields compared as binary to not be substituted.
sql/item_func.cc:
After merge fix
sql/log_event.cc:
After merge fix
sql/mysql_priv.h:
After merge fix
sql/opt_range.cc:
After merge fix
sql/protocol.cc:
Made flags uint instead of int (as it's used as a bit mask)
sql/protocol.h:
Made flags uint instead of int (as it's used as a bit mask)
sql/protocol_cursor.cc:
Made flags uint instead of int (as it's used as a bit mask)
Indentation cleanups
sql/sp.cc:
After merge fixes
Removed compiler warnings
sql/sp_head.cc:
After merge fixes
sql/sql_base.cc:
After merge fixes
Removed 'send_error' from 'insert_fields()' as the error is sent higher up
sql/sql_class.cc:
Give assert if set_n_backup_item_arena is used twice
sql/sql_class.h:
Give assert if set_n_backup_item_arena is used twice
After merge fixes
Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
sql/sql_handler.cc:
After merge fixes
sql/sql_parse.cc:
After merge fixes
sql/sql_prepare.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Moved 'build_equal_items' to optimize_cond() (logical place)
sql/sql_table.cc:
After merge fixes
sql/sql_trigger.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
(This should be fixed by Sanja to have lower granuality locking of tables in multi-update)
sql/sql_view.cc:
After merge fixes
sql/sql_yacc.yy:
After merge fixes
Don't have FOUND as a reserved keyword
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index c359c0f5f54..d9626c760be 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1395,18 +1395,20 @@ TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, open_table(). TODO: create and open should be done atomic ! */ - tmp_disable_binlog(thd); - if (!mysql_create_table(thd, create_table->db, create_table->real_name, - create_info, *extra_fields, *keys, 0, - select_field_count)) { - if (!(table= open_table(thd, create_table, &thd->mem_root, (bool*) 0))) - quick_rm_table(create_info->db_type, create_table->db, - table_case_name(create_info, create_table->real_name)); + tmp_disable_binlog(thd); + if (!mysql_create_table(thd, create_table->db, create_table->real_name, + create_info, *extra_fields, *keys, 0, + select_field_count)) + { + if (!(table= open_table(thd, create_table, &thd->mem_root, (bool*) 0))) + quick_rm_table(create_info->db_type, create_table->db, + table_case_name(create_info, create_table->real_name)); + } + reenable_binlog(thd); + if (!table) // open failed + DBUG_RETURN(0); } - reenable_binlog(thd); - if (!table) // open failed - DBUG_RETURN(0); table->reginfo.lock_type=TL_WRITE; if (!((*lock)= mysql_lock_tables(thd, &table,1))) @@ -3033,13 +3035,14 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, create_info->data_file_name=create_info->index_file_name=0; /* We don't log the statement, it will be logged later. */ - tmp_disable_binlog(thd); - error= mysql_create_table(thd, new_db, tmp_name, - create_info,create_list,key_list,1,0); - reenable_binlog(thd); - if (error) - DBUG_RETURN(error); - + { + tmp_disable_binlog(thd); + error= mysql_create_table(thd, new_db, tmp_name, + create_info,create_list,key_list,1,0); + reenable_binlog(thd); + if (error) + DBUG_RETURN(error); + } if (table->tmp_table) { TABLE_LIST tbl; |