summaryrefslogtreecommitdiff
path: root/jstests/compact.js
blob: b12b03ffa3f730796526fee6eb1b71191d77d10f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// compact.js

t = db.compacttest;
t.drop();
t.insert({ x: 3 });
t.insert({ x: 3 });
t.insert({ x: 5 });
t.insert({ x: 4, z: 2, k: 'aaa' });
t.insert({ x: 4, z: 2, k: 'aaa' });
t.insert({ x: 4, z: 2, k: 'aaa' });
t.insert({ x: 4, z: 2, k: 'aaa' });
t.insert({ x: 4, z: 2, k: 'aaa' });
t.insert({ x: 4, z: 2, k: 'aaa' });
t.ensureIndex({ x: 1 });

print("1");

var res = db.runCommand({ compact: 'compacttest', dev: true });
printjson(res);
assert(res.ok);
assert(t.count() == 9);
var v = t.validate(true);
assert(v.ok);
assert(v.extentCount == 1);
assert(v.deletedCount == 1);
assert(t.getIndexes().length == 2);

print("2");

// works on an empty collection?
t.remove({});
assert(db.runCommand({ compact: 'compacttest', dev: true }).ok);
assert(t.count() == 0);
v = t.validate(true);
assert(v.ok);
assert(v.extentCount == 1);
assert(t.getIndexes().length == 2);