~evarlast/ubuntu/trusty/mongodb/upstart-workaround-debian-bug-718702

« back to all changes in this revision

Viewing changes to src/mongo/db/compact.h

  • Committer: Package Import Robot
  • Author(s): James Page, James Page, Robie Basak
  • Date: 2013-05-29 17:44:42 UTC
  • mfrom: (44.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20130529174442-z0a4qmoww4y0t458
Tags: 1:2.4.3-1ubuntu1
[ James Page ]
* Merge from Debian unstable, remaining changes:
  - Enable SSL support:
    + d/control: Add libssl-dev to BD's.
    + d/rules: Enabled --ssl option.
    + d/mongodb.conf: Add example SSL configuration options.
  - d/mongodb-server.mongodb.upstart: Add upstart configuration.
  - d/rules: Don't strip binaries during scons build for Ubuntu.
  - d/control: Add armhf to target archs.
  - d/p/SConscript.client.patch: fixup install of client libraries.
  - d/p/0010-install-libs-to-usr-lib-not-usr-lib64-Closes-588557.patch:
    Install libraries to lib not lib64.
* Dropped changes:
  - d/p/arm-support.patch: Included in Debian.
  - d/p/double-alignment.patch: Included in Debian.
  - d/rules,control: Debian also builds with avaliable system libraries
    now.
* Fix FTBFS due to gcc and boost upgrades in saucy:
  - d/p/0008-ignore-unused-local-typedefs.patch: Add -Wno-unused-typedefs
    to unbreak building with g++-4.8.
  - d/p/0009-boost-1.53.patch: Fixup signed/unsigned casting issue.

[ Robie Basak ]
* d/p/0011-Use-a-signed-char-to-store-BSONType-enumerations.patch: Fixup
  build failure on ARM due to missing signed'ness of char cast.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
*    Copyright (C) 2008 10gen Inc.
3
 
*
4
 
*    This program is free software: you can redistribute it and/or  modify
5
 
*    it under the terms of the GNU Affero General Public License, version 3,
6
 
*    as published by the Free Software Foundation.
7
 
*
8
 
*    This program is distributed in the hope that it will be useful,
9
 
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
*    GNU Affero General Public License for more details.
12
 
*
13
 
*    You should have received a copy of the GNU Affero General Public License
14
 
*    along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
*/
16
 
 
17
 
#pragma once
18
 
 
19
 
#include "mongo/db/extsort.h"
20
 
 
21
 
namespace mongo {
22
 
 
23
 
    /** for bottom up fastbuildindex (where we presort keys) */
24
 
    struct SortPhaseOne { 
25
 
        SortPhaseOne() { 
26
 
            n = 0;
27
 
            nkeys = 0;
28
 
            multi = false;
29
 
        }
30
 
        shared_ptr<BSONObjExternalSorter> sorter;
31
 
        unsigned long long n; // # of records
32
 
        unsigned long long nkeys;
33
 
        bool multi; // multikey index
34
 
 
35
 
        void addKeys(const IndexSpec& spec, const BSONObj& o, DiskLoc loc) { 
36
 
            BSONObjSet keys;
37
 
            spec.getKeys(o, keys);
38
 
            int k = 0;
39
 
            for ( BSONObjSet::iterator i=keys.begin(); i != keys.end(); i++ ) {
40
 
                if( ++k == 2 ) {
41
 
                    multi = true;
42
 
                }
43
 
                sorter->add(*i, loc);
44
 
                nkeys++;
45
 
            }
46
 
            n++;
47
 
        }
48
 
    };
49
 
 
50
 
}