mirror of
https://github.com/MariaDB/server.git
synced 2026-04-25 09:45:31 +02:00
New myisamchk option --sort-recover
Allow delete of crashed MyISAM tables Fixed bug when BLOB was first part of key Fixed bug when using result from CASE in GROUP BY Fixed core-dump bug in monthname() Optimized calling of check_db_name() Docs/manual.texi: Added more information about myisamchk client/mysqladmin.c: Added error message for CREATE database and fixed possible overflow bug include/myisam.h: New myisamchk option --sort-recover libmysql/libmysql.c: Removed commented code Don't define getpwuid (breaks on SCO 3.2) myisam/mi_check.c: Fixed (new) bug when using --recover --optimize myisam/mi_delete_table.c: Allow delete of crashed tables myisam/mi_key.c: Fixed bug when BLOB was first part of key myisam/myisamchk.c: New myisamchk option --sort-recover mysql-test/r/case.result: New test cases to check for reported bugs mysql-test/r/func_time.result: New test cases to check for reported bugs mysql-test/r/type_blob.result: New test cases to check for reported bugs mysql-test/r/type_datetime.result: New test cases to check for reported bugs mysql-test/t/case.test: New test cases to check for reported bugs mysql-test/t/func_time.test: New test cases to check for reported bugs mysql-test/t/type_blob.test: New test cases to check for reported bugs mysql-test/t/type_datetime.test: New test cases to check for reported bugs mysys/my_bitmap.c: Optimize sql-bench/limits/ms-sql.cfg: Updated limits sql/item_cmpfunc.cc: Fixed bug when using result from CASE in GROUP BY sql/item_cmpfunc.h: Fixed bug when using result from CASE in GROUP BY sql/item_timefunc.cc: Fixed core-dump bug in monthname() sql/sql_db.cc: Optimized calling of check_db_name() sql/sql_parse.cc: Optimized calling of check_db_name() sql/table.cc: Fixed typo
This commit is contained in:
parent
bf1f8fd3eb
commit
495231ea25
24 changed files with 302 additions and 105 deletions
|
|
@ -721,17 +721,41 @@ double Item_func_case::val()
|
|||
bool
|
||||
Item_func_case::fix_fields(THD *thd,TABLE_LIST *tables)
|
||||
{
|
||||
|
||||
if (first_expr && first_expr->fix_fields(thd,tables) ||
|
||||
else_expr && else_expr->fix_fields(thd,tables))
|
||||
return 1;
|
||||
if (Item_func::fix_fields(thd,tables))
|
||||
return 1;
|
||||
if (first_expr)
|
||||
{
|
||||
used_tables_cache|=(first_expr)->used_tables();
|
||||
const_item_cache&= (first_expr)->const_item();
|
||||
}
|
||||
if (else_expr)
|
||||
{
|
||||
used_tables_cache|=(else_expr)->used_tables();
|
||||
const_item_cache&= (else_expr)->const_item();
|
||||
}
|
||||
if (!else_expr || else_expr->maybe_null)
|
||||
maybe_null=1; // The result may be NULL
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Item_func_case::update_used_tables()
|
||||
{
|
||||
Item_func::update_used_tables();
|
||||
if (first_expr)
|
||||
{
|
||||
used_tables_cache|=(first_expr)->used_tables();
|
||||
const_item_cache&= (first_expr)->const_item();
|
||||
}
|
||||
if (else_expr)
|
||||
{
|
||||
used_tables_cache|=(else_expr)->used_tables();
|
||||
const_item_cache&= (else_expr)->const_item();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Item_func_case::fix_length_and_dec()
|
||||
{
|
||||
|
|
@ -750,6 +774,7 @@ void Item_func_case::fix_length_and_dec()
|
|||
}
|
||||
}
|
||||
|
||||
/* TODO: Fix this so that it prints the whole CASE expression */
|
||||
|
||||
void Item_func_case::print(String *str)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue