summaryrefslogtreecommitdiff
path: root/sql/ha_ndbcluster.h
diff options
context:
space:
mode:
authorunknown <mskold@mysql.com>2005-01-07 15:33:24 +0100
committerunknown <mskold@mysql.com>2005-01-07 15:33:24 +0100
commit9656eabf3ff2a34404ff42da6db71ea452e02b20 (patch)
tree6a0fde5de7d4c7c853a1b956b58294600cbfdf89 /sql/ha_ndbcluster.h
parent2a203aca4929a827d886c1a561a5aabe282f633d (diff)
downloadmariadb-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.h19
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*);