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