summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2013-03-12 10:39:27 -0400
committerDan Pasette <dan@10gen.com>2013-03-12 11:12:39 -0400
commitd92e62945420c0c3a4df1aeb3b8df800e3d8181d (patch)
tree6036ab34a619017e4084170d1a0d9f1c466a1c06
parentbb2313f4204203b8289546151d475f5d3b247511 (diff)
downloadmongo-d92e62945420c0c3a4df1aeb3b8df800e3d8181d.tar.gz
SERVER-8920: Add new fields to dbStats command for pdfile version
-rw-r--r--jstests/stats.js11
-rw-r--r--src/mongo/db/dbcommands.cpp8
2 files changed, 19 insertions, 0 deletions
diff --git a/jstests/stats.js b/jstests/stats.js
index 26de644f02c..33c08686e83 100644
--- a/jstests/stats.js
+++ b/jstests/stats.js
@@ -7,3 +7,14 @@ t.save( { a : 1 } );
assert.lt( 0 , t.dataSize() , "A" );
assert.lt( t.dataSize() , t.storageSize() , "B" );
assert.lt( 0 , t.totalIndexSize() , "C" );
+
+var stats = db.stats();
+assert.gt( stats.fileSize, 0 );
+assert.eq( stats.dataFileVersion.major, 4 );
+assert.eq( stats.dataFileVersion.minor, 5 );
+
+db.getSiblingDB( "emptydatabase" ).dropDatabase();
+var statsEmptyDB = db.getSiblingDB( "emptydatabase" ).stats();
+assert.eq( statsEmptyDB.fileSize, 0 );
+assert.eq( {}, statsEmptyDB.dataFileVersion );
+
diff --git a/src/mongo/db/dbcommands.cpp b/src/mongo/db/dbcommands.cpp
index 045df983eb9..b06ff459847 100644
--- a/src/mongo/db/dbcommands.cpp
+++ b/src/mongo/db/dbcommands.cpp
@@ -1463,6 +1463,14 @@ namespace mongo {
if( d )
result.appendNumber( "nsSizeMB", (int) d->namespaceIndex.fileLength() / 1024 / 1024 );
+ BSONObjBuilder dataFileVersion( result.subobjStart( "dataFileVersion" ) );
+ if ( d && !d->isEmpty() ) {
+ DataFileHeader* header = d->getFile( 0 )->getHeader();
+ dataFileVersion.append( "major", header->version );
+ dataFileVersion.append( "minor", header->versionMinor );
+ }
+ dataFileVersion.done();
+
return true;
}
} cmdDBStats;