diff options
author | unknown <mskold@mysql.com> | 2005-01-07 15:33:24 +0100 |
---|---|---|
committer | unknown <mskold@mysql.com> | 2005-01-07 15:33:24 +0100 |
commit | 9656eabf3ff2a34404ff42da6db71ea452e02b20 (patch) | |
tree | 6a0fde5de7d4c7c853a1b956b58294600cbfdf89 /sql/ha_ndbcluster.h | |
parent | 2a203aca4929a827d886c1a561a5aabe282f633d (diff) | |
download | mariadb-git-9656eabf3ff2a34404ff42da6db71ea452e02b20.tar.gz |
Fixed nested conditions for condition pushdown to storage engine
Diffstat (limited to 'sql/ha_ndbcluster.h')
-rw-r--r-- | sql/ha_ndbcluster.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h index 411d7e9b941..24dd158f8d7 100644 --- a/sql/ha_ndbcluster.h +++ b/sql/ha_ndbcluster.h @@ -64,7 +64,8 @@ typedef struct st_ndbcluster_share { typedef enum ndb_item_type { NDB_VALUE = 0, // Qualified more with Item::Type NDB_FIELD = 1, // Qualified from table definition - NDB_FUNCTION = 2 // Qualified from Item_func::Functype + NDB_FUNCTION = 2,// Qualified from Item_func::Functype + NDB_END_COND = 3 // End marker for condition group } NDB_ITEM_TYPE; typedef union ndb_item_qualification { @@ -93,12 +94,12 @@ typedef union ndb_item_value { class Ndb_item { public: + Ndb_item(NDB_ITEM_TYPE item_type); Ndb_item(NDB_ITEM_TYPE item_type, NDB_ITEM_QUALIFICATION item_qualification, const Item *item_value); Ndb_item(longlong int_value); Ndb_item(double real_value); - Ndb_item(); Ndb_item(Field *field, int column_no); Ndb_item(Item_func::Functype func_type); ~Ndb_item(); @@ -376,13 +377,13 @@ class ha_ndbcluster: public handler */ void cond_clear(); bool serialize_cond(const COND *cond, Ndb_cond_stack *ndb_cond); - Ndb_cond * build_scan_filter_predicate(Ndb_cond* cond, - NdbScanFilter* filter); - Ndb_cond * build_scan_filter_group(Ndb_cond* cond, - NdbScanFilter* filter); - void build_scan_filter(Ndb_cond* cond, NdbScanFilter* filter); - void generate_scan_filter(Ndb_cond_stack* cond_stack, - NdbScanOperation* op); + int build_scan_filter_predicate(Ndb_cond* &cond, + NdbScanFilter* filter); + int build_scan_filter_group(Ndb_cond* &cond, + NdbScanFilter* filter); + int build_scan_filter(Ndb_cond* &cond, NdbScanFilter* filter); + int generate_scan_filter(Ndb_cond_stack* cond_stack, + NdbScanOperation* op); friend int execute_commit(ha_ndbcluster*, NdbTransaction*); friend int execute_no_commit(ha_ndbcluster*, NdbTransaction*); |