On Wed, May 13, 2015 at 04:17:26PM +0200, sanja@xxxxxxxxxxx wrote:
revision-id: b2db8e85422a455a10cd28ef7e44977182528f70
parent(s): b22959903b89e798f8804ec9a815c88f75915cd9
committer: Oleksandr Byelkin
branch nick: server
timestamp: 2015-05-13 16:17:22 +0200
message:
MDEV-7949: Item_field::used_tables() takes 0.29% in OLTP RO
small sixes of used_tables() usage
...skip...
diff --git a/sql/item_func.h b/sql/item_func.h
index 0d57c2b..c48cd84 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -1337,7 +1337,7 @@ class Item_func_sleep :public Item_int_func
const char *func_name() const { return "sleep"; }
table_map used_tables() const
{
- return Item_int_func::used_tables() | RAND_TABLE_BIT;
+ return used_tables_cache | RAND_TABLE_BIT;
}
bool is_expensive() { return 1; }
longlong val_int();
@@ -1591,7 +1591,7 @@ class Item_func_get_lock :public Item_int_func
void fix_length_and_dec() { max_length=1; maybe_null=1;}
table_map used_tables() const
{
- return Item_int_func::used_tables() | RAND_TABLE_BIT;
+ return used_tables_cache | RAND_TABLE_BIT;
}
bool const_item() const { return 0; }
bool is_expensive() { return 1; }
@@ -1611,7 +1611,7 @@ class Item_func_release_lock :public Item_int_func
void fix_length_and_dec() { max_length= 1; maybe_null= 1;}
table_map used_tables() const
{
- return Item_int_func::used_tables() | RAND_TABLE_BIT;
+ return used_tables_cache | RAND_TABLE_BIT;
}
bool const_item() const { return 0; }
bool is_expensive() { return 1; }
@@ -1724,7 +1724,7 @@ class Item_func_set_user_var :public Item_func
void fix_length_and_dec();
table_map used_tables() const
{
- return Item_func::used_tables() | RAND_TABLE_BIT;
+ return used_tables_cache | RAND_TABLE_BIT;
}
bool const_item() const { return 0; }
bool is_expensive() { return 1; }
Was there any reason for this change? Compiler should be clever enough to inline
used_tables() of base class here.