diff options
author | unknown <monty@donna.mysql.com> | 2001-01-31 04:47:25 +0200 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2001-01-31 04:47:25 +0200 |
commit | 495231ea25a82d97e69e96ff9e5d7688434cfff2 (patch) | |
tree | 851a8ba92ed9883efe2504e0726aae6843c317c0 /sql/item_cmpfunc.cc | |
parent | bf1f8fd3eb4b98dadd265f8ed10d92220dabe1bb (diff) | |
download | mariadb-git-495231ea25a82d97e69e96ff9e5d7688434cfff2.tar.gz |
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
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r-- | sql/item_cmpfunc.cc | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 84b18201ad1..e7a6c52dfd9 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -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) { |