summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authormskold@mysql.com <>2004-12-17 21:13:22 +0100
committermskold@mysql.com <>2004-12-17 21:13:22 +0100
commit3edf24387512b4182e0e3e44b80eebbdfa1e56b4 (patch)
tree9f51d9cac4b45ffad89462fcc79b3f15eda3b19b /sql/item_func.cc
parenta3b74b307c6979bb3bcd21aa827339ffa3be7c92 (diff)
downloadmariadb-git-3edf24387512b4182e0e3e44b80eebbdfa1e56b4.tar.gz
Condition pushdown to storage engine
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index aba53b9b397..9e9d4193f84 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -342,6 +342,22 @@ bool Item_func::walk (Item_processor processor, byte *argument)
return (this->*processor)(argument);
}
+void Item_func::traverse_cond(Item_cond_traverser traverser,
+ void *argument,
+ traverse_order order)
+{
+ if (arg_count)
+ {
+ Item **arg,**arg_end;
+ if (order == PREFIX) (traverser)(this, argument);
+ for (arg= args, arg_end= args+arg_count; arg != arg_end; arg++)
+ {
+ (*arg)->traverse_cond(traverser, argument, order);
+ }
+ }
+ if (order == POSTFIX) (traverser)(this, argument);
+}
+
/*
Transform an Item_func object with a transformer callback function