summaryrefslogtreecommitdiff
path: root/sql/ha_ndbcluster.h
diff options
context:
space:
mode:
authorunknown <mskold/marty@mysql.com/linux.site>2006-08-15 14:31:21 +0200
committerunknown <mskold/marty@mysql.com/linux.site>2006-08-15 14:31:21 +0200
commit6464d62c7b38c5369089a69213777f3a40faa7cd (patch)
treebbd30495d1f919584fe178f9c6406266b03f73e3 /sql/ha_ndbcluster.h
parent115eb7df2e6b9f81b4659960ca978d7da701df00 (diff)
downloadmariadb-git-6464d62c7b38c5369089a69213777f3a40faa7cd.tar.gz
Fix for bug #21059 Server crashes on join query with large dataset with NDB tables: do not release operation records for on-going read_multi_range
Diffstat (limited to 'sql/ha_ndbcluster.h')
-rw-r--r--sql/ha_ndbcluster.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h
index 4505c7a6e0e..cfb12981b98 100644
--- a/sql/ha_ndbcluster.h
+++ b/sql/ha_ndbcluster.h
@@ -435,6 +435,11 @@ class Ndb_cond_traverse_context
Ndb_rewrite_context *rewrite_stack;
};
+typedef enum ndb_query_state_bits {
+ NDB_QUERY_NORMAL = 0,
+ NDB_QUERY_MULTI_READ_RANGE = 1
+} NDB_QUERY_STATE_BITS;
+
/*
Place holder for ha_ndbcluster thread specific data
*/
@@ -451,6 +456,7 @@ class Thd_ndb
NdbTransaction *stmt;
int error;
List<NDB_SHARE> changed_tables;
+ uint query_state;
};
class ha_ndbcluster: public handler
@@ -672,8 +678,8 @@ private:
NdbScanOperation* op);
friend int execute_commit(ha_ndbcluster*, NdbTransaction*);
- friend int execute_no_commit(ha_ndbcluster*, NdbTransaction*);
- friend int execute_no_commit_ie(ha_ndbcluster*, NdbTransaction*);
+ friend int execute_no_commit(ha_ndbcluster*, NdbTransaction*, bool);
+ friend int execute_no_commit_ie(ha_ndbcluster*, NdbTransaction*, bool);
NdbTransaction *m_active_trans;
NdbScanOperation *m_active_cursor;
@@ -716,7 +722,7 @@ private:
bool m_force_send;
ha_rows m_autoincrement_prefetch;
bool m_transaction_on;
- void release_completed_operations(NdbConnection*);
+ void release_completed_operations(NdbTransaction*, bool);
Ndb_cond_stack *m_cond_stack;
bool m_disable_multi_read;