#At file:///home/frazer/bzr/mysql-5.1-telco-6.2/
2723 Frazer Clement 2008-11-08
Bug# 40242 NDBAPI : All NDBAPI objects should provide accessors for their 'parents'
This patch adds :
- getNdbOperation() method to NdbBlob to get const operation*
- getNdbTransaction() method to NdbScanOperation and NdbOperation to get NdbTransaction*
- const variant of getNdbErrorLine() to NdbOperation to allow error handling with
a const*.
modified:
storage/ndb/include/ndbapi/NdbBlob.hpp
storage/ndb/include/ndbapi/NdbOperation.hpp
storage/ndb/include/ndbapi/NdbScanOperation.hpp
storage/ndb/src/ndbapi/NdbBlob.cpp
storage/ndb/src/ndbapi/NdbOperation.cpp
per-file messages:
storage/ndb/include/ndbapi/NdbBlob.hpp
New operation accessor.
Const as operation creating Blob may be const.
storage/ndb/include/ndbapi/NdbOperation.hpp
New virtual getNdbTransaction() method
Add const variant of getNdbErrorLine()
storage/ndb/include/ndbapi/NdbScanOperation.hpp
Scan specific getNdbTransaction() variant.
Necessary as Scan has 2 transactions, and we must return the user-visible one.
storage/ndb/src/ndbapi/NdbBlob.cpp
Operation accessor.
storage/ndb/src/ndbapi/NdbOperation.cpp
Transaction accessor
=== modified file 'storage/ndb/include/ndbapi/NdbBlob.hpp'
--- a/storage/ndb/include/ndbapi/NdbBlob.hpp 2008-02-19 10:41:22 +0000
+++ b/storage/ndb/include/ndbapi/NdbBlob.hpp 2008-11-08 20:40:15 +0000
@@ -263,6 +263,13 @@ public:
*/
const NdbError& getNdbError() const;
/**
+ * Get a pointer to the operation which this Blob Handle
+ * was initially created as part of.
+ * Note that this could be a scan operation.
+ * Note that the pointer returned is a const pointer.
+ */
+ const NdbOperation* getNdbOperation() const;
+ /**
* Return info about all blobs in this operation.
*
* Get first blob in list.
=== modified file 'storage/ndb/include/ndbapi/NdbOperation.hpp'
--- a/storage/ndb/include/ndbapi/NdbOperation.hpp 2008-08-07 06:24:52 +0000
+++ b/storage/ndb/include/ndbapi/NdbOperation.hpp 2008-11-08 20:40:15 +0000
@@ -837,6 +837,7 @@ public:
* @return method number where the error occured.
*/
int getNdbErrorLine();
+ int getNdbErrorLine() const;
/**
* Get table name of this operation.
@@ -885,6 +886,11 @@ public:
*/
AbortOption getAbortOption() const;
int setAbortOption(AbortOption);
+
+ /**
+ * Get NdbTransaction object pointer for this operation
+ */
+ virtual NdbTransaction* getNdbTransaction() const;
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
@@ -1037,7 +1043,6 @@ protected:
public:
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
- NdbTransaction* getNdbTransaction();
const NdbOperation* next() const;
const NdbRecAttr* getFirstRecAttr() const;
#endif
@@ -1473,6 +1478,13 @@ NdbOperation::getNdbErrorLine()
return theErrorLine;
}
+inline
+int
+NdbOperation::getNdbErrorLine() const
+{
+ return theErrorLine;
+}
+
/******************************************************************************
void next(NdbOperation* aNdbOperation);
=== modified file 'storage/ndb/include/ndbapi/NdbScanOperation.hpp'
--- a/storage/ndb/include/ndbapi/NdbScanOperation.hpp 2008-08-11 12:44:24 +0000
+++ b/storage/ndb/include/ndbapi/NdbScanOperation.hpp 2008-11-08 20:40:15 +0000
@@ -377,6 +377,11 @@ public:
const NdbOperation::OperationOptions *opts = 0,
Uint32 sizeOfOptions = 0);
+ /**
+ * Get NdbTransaction object for this scan operation
+ */
+ NdbTransaction* getNdbTransaction() const;
+
protected:
NdbScanOperation(Ndb* aNdb,
NdbOperation::Type aType = NdbOperation::TableScan);
@@ -651,4 +656,14 @@ NdbScanOperation::deleteCurrentTuple(Ndb
opts, sizeOfOptions);
}
+inline
+NdbTransaction*
+NdbScanOperation::getNdbTransaction() const
+{
+ /* return the user visible transaction object ptr, not the
+ * scan's 'internal' / buddy transaction object
+ */
+ return m_transConnection;
+};
+
#endif
=== modified file 'storage/ndb/src/ndbapi/NdbBlob.cpp'
--- a/storage/ndb/src/ndbapi/NdbBlob.cpp 2008-06-03 10:00:31 +0000
+++ b/storage/ndb/src/ndbapi/NdbBlob.cpp 2008-11-08 20:40:15 +0000
@@ -3070,3 +3070,8 @@ NdbBlob::blobsNextBlob()
return theNext;
}
+const NdbOperation*
+NdbBlob::getNdbOperation() const
+{
+ return theNdbOp;
+};
=== modified file 'storage/ndb/src/ndbapi/NdbOperation.cpp'
--- a/storage/ndb/src/ndbapi/NdbOperation.cpp 2008-04-17 06:59:16 +0000
+++ b/storage/ndb/src/ndbapi/NdbOperation.cpp 2008-11-08 20:40:15 +0000
@@ -517,7 +517,7 @@ NdbOperation::getTable() const
}
NdbTransaction*
-NdbOperation::getNdbTransaction()
+NdbOperation::getNdbTransaction() const
{
return theNdbCon;
}
| Thread |
|---|
| • bzr commit into mysql-5.1 branch (frazer:2723) Bug#40242 | Frazer Clement | 8 Nov |