diff options
author | Mathias Stearn <mathias@10gen.com> | 2010-07-12 14:27:37 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2010-07-12 15:57:37 -0400 |
commit | 4676c5ac07fe44ae985cfd7fbb0c68c0f90f5f9f (patch) | |
tree | 5fae826f8ca3837f872dd93af5e69bdb4abc6757 /s/commands_public.cpp | |
parent | 7ea18a86ad39ac68d23d07321c79f20f4a0c24bc (diff) | |
download | mongo-4676c5ac07fe44ae985cfd7fbb0c68c0f90f5f9f.tar.gz |
Sharded distinct uses shards not chunks SERVER-952
Diffstat (limited to 's/commands_public.cpp')
-rw-r--r-- | s/commands_public.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/s/commands_public.cpp b/s/commands_public.cpp index e8d9e4a2d0a..d7301cd8f98 100644 --- a/s/commands_public.cpp +++ b/s/commands_public.cpp @@ -396,16 +396,14 @@ namespace mongo { massert( 10420 , "how could chunk manager be null!" , cm ); BSONObj query = getQuery(cmdObj); - vector<shared_ptr<ChunkRange> > chunks; - cm->getChunksForQuery( chunks , query ); + set<Shard> shards; + cm->getShardsForQuery(shards, query); set<BSONObj,BSONObjCmp> all; int size = 32; - for ( vector<shared_ptr<ChunkRange> >::iterator i = chunks.begin() ; i != chunks.end() ; i++ ){ - shared_ptr<ChunkRange> c = *i; - - ShardConnection conn( c->getShard() , fullns ); + for ( set<Shard>::iterator i=shards.begin(), end=shards.end() ; i != end; ++i ){ + ShardConnection conn( *i , fullns ); BSONObj res; bool ok = conn->runCommand( conf->getName() , cmdObj , res ); conn.done(); @@ -415,11 +413,11 @@ namespace mongo { return false; } - BSONObjIterator it( res["values"].embeddedObjectUserCheck() ); + BSONObjIterator it( res["values"].embeddedObject() ); while ( it.more() ){ BSONElement nxt = it.next(); BSONObjBuilder temp(32); - temp.appendAs( nxt , "x" ); + temp.appendAs( nxt , "" ); all.insert( temp.obj() ); } |