(function() {
|
"use strict";
|
load("jstests/core/txns/libs/prepare_helpers.js");
|
|
const dbName = "test";
|
const collName = "fast_count_sees_prepare_changes_before_commit";
|
const testDB = db.getSiblingDB(dbName);
|
const testColl = testDB.getCollection(collName);
|
|
testColl.drop({writeConcern: {w: "majority"}});
|
assert.commandWorked(testDB.runCommand({create: collName, writeConcern: {w: "majority"}}));
|
|
const session = db.getMongo().startSession({causalConsistency: false});
|
const sessionDB = session.getDatabase(dbName);
|
const sessionColl = sessionDB.getCollection(collName);
|
const doc = {x: 1};
|
|
session.startTransaction();
|
assert.commandWorked(sessionColl.insert(doc));
|
PrepareHelpers.prepareTransaction(session);
|
assert.eq(testColl.find().itcount(), 0, () => tojson(testColl.find().toArray()));
|
assert.eq(testColl.count(), 1, () => tojson(testColl.stats())); session.abortTransaction_forTesting();
|
assert.eq(testColl.find().itcount(), 0, () => tojson(testColl.find().toArray()));
|
assert.eq(testColl.count(), 0, () => tojson(testColl.stats()));
|
}());
|