diff options
author | Antonin Kral <a.kral@bobek.cz> | 2010-01-31 08:32:52 +0100 |
---|---|---|
committer | Antonin Kral <a.kral@bobek.cz> | 2010-01-31 08:32:52 +0100 |
commit | 4eefaf421bfeddf040d96a3dafb12e09673423d7 (patch) | |
tree | cb2e5ccc7f98158894f977ff131949da36673591 /jstests/rename.js | |
download | mongodb-4eefaf421bfeddf040d96a3dafb12e09673423d7.tar.gz |
Imported Upstream version 1.3.1
Diffstat (limited to 'jstests/rename.js')
-rw-r--r-- | jstests/rename.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/jstests/rename.js b/jstests/rename.js new file mode 100644 index 0000000..3ace968 --- /dev/null +++ b/jstests/rename.js @@ -0,0 +1,48 @@ +admin = db.getMongo().getDB( "admin" ); + +a = db.jstests_rename_a; +b = db.jstests_rename_b; +c = db.jstests_rename_c; + +a.drop(); +b.drop(); +c.drop(); + +a.save( {a: 1} ); +a.save( {a: 2} ); +a.ensureIndex( {a:1} ); +a.ensureIndex( {b:1} ); + +c.save( {a: 100} ); +assert.commandFailed( admin.runCommand( {renameCollection:"test.jstests_rename_a", to:"test.jstests_rename_c"} ) ); + +assert.commandWorked( admin.runCommand( {renameCollection:"test.jstests_rename_a", to:"test.jstests_rename_b"} ) ); +assert.eq( 0, a.find().count() ); + +assert.eq( 2, b.find().count() ); +assert( db.system.namespaces.findOne( {name:"test.jstests_rename_b" } ) ); +assert( !db.system.namespaces.findOne( {name:"test.jstests_rename_a" } ) ); +assert.eq( 3, db.system.indexes.find( {ns:"test.jstests_rename_b"} ).count() ); +assert( b.find( {a:1} ).explain().cursor.match( /^BtreeCursor/ ) ); + +// now try renaming a capped collection + +a.drop(); +b.drop(); +c.drop(); + +db.createCollection( "jstests_rename_a", {capped:true,size:100} ); +for( i = 0; i < 10; ++i ) { + a.save( { i: i } ); +} +assert.commandWorked( admin.runCommand( {renameCollection:"test.jstests_rename_a", to:"test.jstests_rename_b"} ) ); +assert.eq( 1, b.count( {i:9} ) ); +for( i = 10; i < 20; ++i ) { + b.save( { i: i } ); +} +assert.eq( 0, b.count( {i:9} ) ); +assert.eq( 1, b.count( {i:19} ) ); + +assert( db.system.namespaces.findOne( {name:"test.jstests_rename_b" } ) ); +assert( !db.system.namespaces.findOne( {name:"test.jstests_rename_a" } ) ); +assert.eq( true, db.system.namespaces.findOne( {name:"test.jstests_rename_b"} ).options.capped ); |