From: Date: November 6 2008 12:12pm Subject: bzr commit into mysql-5.1 branch (frazer:2718) Bug#40242 List-Archive: http://lists.mysql.com/commits/57996 X-Bug: 40242 Message-Id: <200811061112.mA6BCLoN018165@forth.ndb.mysql.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/frazer/bzr/mysql-5.1-telco-6.2/ 2718 Frazer Clement 2008-11-06 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-06 11:11:50 +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-06 11:11:50 +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-06 11:11:50 +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-06 11:11:50 +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-06 11:11:50 +0000 @@ -517,7 +517,7 @@ NdbOperation::getTable() const } NdbTransaction* -NdbOperation::getNdbTransaction() +NdbOperation::getNdbTransaction() const { return theNdbCon; }