mirror of https://gitee.com/bigwinds/arangodb
preparations for revision()
This commit is contained in:
parent
6480d56b7e
commit
1c43920bfc
|
@ -522,6 +522,10 @@ MMFilesCollection::MMFilesCollection(LogicalCollection* logical,
|
|||
MMFilesCollection::~MMFilesCollection() {
|
||||
}
|
||||
|
||||
TRI_voc_rid_t MMFilesCollection::revision(arangodb::transaction::Methods*) const {
|
||||
return _lastRevision;
|
||||
}
|
||||
|
||||
TRI_voc_rid_t MMFilesCollection::revision() const {
|
||||
return _lastRevision;
|
||||
}
|
||||
|
|
|
@ -139,7 +139,8 @@ class MMFilesCollection final : public PhysicalCollection {
|
|||
|
||||
virtual PhysicalCollection* clone(LogicalCollection*, PhysicalCollection*) override;
|
||||
|
||||
TRI_voc_rid_t revision() const override;
|
||||
TRI_voc_rid_t revision(arangodb::transaction::Methods* trx) const override;
|
||||
TRI_voc_rid_t revision() const;
|
||||
|
||||
void setRevision(TRI_voc_rid_t revision, bool force);
|
||||
|
||||
|
|
|
@ -256,7 +256,7 @@ int MMFilesTransactionCollection::use(int nestingLevel) {
|
|||
|
||||
if (AccessMode::isWriteOrExclusive(_accessType) && _originalRevision == 0) {
|
||||
// store original revision at transaction start
|
||||
_originalRevision = _collection->revision();
|
||||
_originalRevision = physical->revision();
|
||||
}
|
||||
|
||||
bool shouldLock = _transaction->hasHint(transaction::Hints::Hint::LOCK_ENTIRELY);
|
||||
|
|
|
@ -132,8 +132,8 @@ PhysicalCollection* RocksDBCollection::clone(LogicalCollection* logical,
|
|||
return new RocksDBCollection(logical, physical);
|
||||
}
|
||||
|
||||
TRI_voc_rid_t RocksDBCollection::revision() const {
|
||||
THROW_ARANGO_NOT_YET_IMPLEMENTED();
|
||||
TRI_voc_rid_t RocksDBCollection::revision(arangodb::transaction::Methods* trx) const {
|
||||
// TODO!
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ class RocksDBCollection final : public PhysicalCollection {
|
|||
virtual PhysicalCollection* clone(LogicalCollection*,
|
||||
PhysicalCollection*) override;
|
||||
|
||||
TRI_voc_rid_t revision() const override;
|
||||
TRI_voc_rid_t revision(arangodb::transaction::Methods* trx) const override;
|
||||
|
||||
void getPropertiesVPack(velocypack::Builder&) const override;
|
||||
void getPropertiesVPackCoordinator(velocypack::Builder&) const override;
|
||||
|
|
|
@ -2087,7 +2087,7 @@ static int GetRevision(arangodb::LogicalCollection* collection, TRI_voc_rid_t& r
|
|||
|
||||
// READ-LOCK start
|
||||
trx.lockRead();
|
||||
rid = collection->revision();
|
||||
rid = collection->revision(&trx);
|
||||
trx.finish(res);
|
||||
// READ-LOCK end
|
||||
|
||||
|
|
|
@ -387,7 +387,7 @@ static void JS_ChecksumCollection(
|
|||
LogicalCollection* collection = trx.documentCollection();
|
||||
auto physical = collection->getPhysical();
|
||||
TRI_ASSERT(physical != nullptr);
|
||||
std::string const revisionId = TRI_RidToString(physical->revision());
|
||||
std::string const revisionId = TRI_RidToString(physical->revision(&trx));
|
||||
uint64_t hash = 0;
|
||||
|
||||
ManagedDocumentResult mmdr;
|
||||
|
|
|
@ -638,9 +638,9 @@ std::string LogicalCollection::statusString() const {
|
|||
}
|
||||
|
||||
// SECTION: Properties
|
||||
TRI_voc_rid_t LogicalCollection::revision() const {
|
||||
TRI_voc_rid_t LogicalCollection::revision(transaction::Methods* trx) const {
|
||||
// TODO CoordinatorCase
|
||||
return _physical->revision();
|
||||
return _physical->revision(trx);
|
||||
}
|
||||
|
||||
bool LogicalCollection::isLocal() const { return _isLocal; }
|
||||
|
|
|
@ -151,7 +151,7 @@ class LogicalCollection {
|
|||
uint64_t numberDocuments(transaction::Methods*) const;
|
||||
|
||||
// SECTION: Properties
|
||||
TRI_voc_rid_t revision() const;
|
||||
TRI_voc_rid_t revision(transaction::Methods*) const;
|
||||
bool isLocal() const;
|
||||
bool deleted() const;
|
||||
bool isSystem() const;
|
||||
|
|
|
@ -61,7 +61,7 @@ class PhysicalCollection {
|
|||
|
||||
virtual PhysicalCollection* clone(LogicalCollection*, PhysicalCollection*) = 0;
|
||||
|
||||
virtual TRI_voc_rid_t revision() const = 0;
|
||||
virtual TRI_voc_rid_t revision(arangodb::transaction::Methods* trx) const = 0;
|
||||
|
||||
/// @brief export properties
|
||||
virtual void getPropertiesVPack(velocypack::Builder&) const = 0;
|
||||
|
|
Loading…
Reference in New Issue