Binary compatibility report for the mongoDB library between 1.3.2 and 1.3.3 versions on x86
Test Info
Library Name | mongoDB |
Version #1 | 1.3.2 |
Version #2 | 1.3.3 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 1 |
Total Shared Libraries | 1 |
Total Symbols / Types | 345 / 243 |
Verdict | Incompatible (5.36%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 12 |
Removed Symbols | High | 3 |
Problems with Data Types | High | 2 |
Medium | 1 |
Low | 4 |
Problems with Symbols | High | 3 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Other Changes | - | 0 |
Added Symbols (12)
assert_util.h,
libmongoclient.so
namespace mongo
assertionCount [data]
[ symbol: _ZN5mongo14assertionCountE ]
AssertionCount::AssertionCount [in-charge] ( )
[ symbol: _ZN5mongo14AssertionCountC1Ev ]
AssertionCount::AssertionCount [not-in-charge] ( )
[ symbol: _ZN5mongo14AssertionCountC2Ev ]
AssertionCount::condrollover ( int newValue )
[ symbol: _ZN5mongo14AssertionCount12condrolloverEi ]
AssertionCount::rollover ( )
[ symbol: _ZN5mongo14AssertionCount8rolloverEv ]
dbclient.h,
libmongoclient.so
namespace mongo
createDirectClient ( )
[ symbol: _ZN5mongo18createDirectClientEv ]
DBClientBase::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )
[ symbol: _ZN5mongo12DBClientBase5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii ]
DBClientPaired::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )
[ symbol: _ZN5mongo14DBClientPaired5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii ]
goodies.h,
libmongoclient.so
namespace mongo
operator<< ( std::ostream& s, ThreadSafeString const& o )
[ symbol: _ZN5mongolsERSoRKNS_16ThreadSafeStringE ]
jsobj.h,
libmongoclient.so
namespace mongo
BSONObjBuilder::appendKeys ( BSONObj const& keyPattern, BSONObj const& values )
[ symbol: _ZN5mongo14BSONObjBuilder10appendKeysERKNS_7BSONObjES3_ ]
message.h,
libmongoclient.so
namespace mongo
MessagingPort::recv ( char* data, int max )
[ symbol: _ZN5mongo13MessagingPort4recvEPci ]
MessagingPort::send ( char const* data, int const len )
[ symbol: _ZN5mongo13MessagingPort4sendEPKci ]
to the top
Removed Symbols (3)
dbclient.h,
libmongoclient.so
namespace mongo
DBClientBase::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions )
[ symbol: _ZN5mongo12DBClientBase5queryERKSsNS_5QueryEiiPKNS_7BSONObjEi ]
DBClientPaired::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions )
[ symbol: _ZN5mongo14DBClientPaired5queryERKSsNS_5QueryEiiPKNS_7BSONObjEi ]
jsobj.h,
libmongoclient.so
namespace mongo
operator<< ( BSONObjBuilder& b, IDLabeler& id )
[ symbol: _ZN5mongolsERNS_14BSONObjBuilderERNS_9IDLabelerE ]
to the top
Problems with Data Types, High Severity (2)
dbclient.h
namespace mongo
[+] class DBClientCursor (1)
| Change |
Effect |
1 | Size of this class has been changed from 72 bytes to 120 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (3)
DBClientCursor::more ( )This method is from 'DBClientCursor' class.
DBClientCursor::next ( )This method is from 'DBClientCursor' class.
DBClientCursor::~DBClientCursor [in-charge] ( )This method is from 'DBClientCursor' class.
jsobj.h
namespace mongo
[+] class BSONObjBuilder (1)
| Change |
Effect |
1 | Size of this class has been changed from 32 bytes to 36 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (6)
BSONObjBuilder::appendAsNumber ( std::string const& fieldName, std::string const& data )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMaxForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMinForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
dotted2nested ( BSONObjBuilder& b, BSONObj const& obj )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
LastError::appendSelf ( BSONObjBuilder& b )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
nested2dotted ( BSONObjBuilder& b, BSONObj const& obj, std::string const& base )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
to the top
Problems with Symbols, High Severity (3)
dbclient.h,
libmongoclient.so
namespace mongo
[+] DBClientBase::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions ) (1)
changed to:DBClientBase::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo12DBClientBase5queryERKSsNS_5QueryEiiPKNS_7BSONObjEi to _ZN5mongo12DBClientBase5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii. This may cause "undefined reference" linker error in old client applications. |
[+] DBClientPaired::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions ) (1)
changed to:DBClientPaired::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo14DBClientPaired5queryERKSsNS_5QueryEiiPKNS_7BSONObjEi to _ZN5mongo14DBClientPaired5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii. This may cause "undefined reference" linker error in old client applications. |
jsobj.h,
libmongoclient.so
namespace mongo
[+] operator<< ( BSONObjBuilder& b, IDLabeler& id ) (1)
changed to:operator<< ( std::ostream& s, ThreadSafeString const& o )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongolsERNS_14BSONObjBuilderERNS_9IDLabelerE to _ZN5mongolsERSoRKNS_16ThreadSafeStringE. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (1)
dbclient.h
namespace mongo
[+] class DBClientInterface (1)
| Change |
Effect |
1 | Pure virtual method DBClientInterface::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize ) has been added to this class instead of DBClientInterface::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions ). | Applications will provide an older method to the library instead of expected newely added virtual method. This may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 11 entries | Virtual Table (New) - 11 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | __cxa_pure_virtual | __cxa_pure_virtual |
12 | __cxa_pure_virtual | __cxa_pure_virtual |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | __cxa_pure_virtual | __cxa_pure_virtual |
32 | ~DBClientInterface | ~DBClientInterface |
36 | ~DBClientInterface | ~DBClientInterface |
40 | DBClientInterface::findOne | DBClientInterface::findOne |
[+] affected symbols (2)
DBClientInterface::findOne ( std::string const& ns, Query query, BSONObj const* fieldsToReturn, int queryOptions )This method is from 'DBClientInterface' class.
DBClientInterface::~DBClientInterface [in-charge] ( )This method is from 'DBClientInterface' class.
to the top
Problems with Data Types, Low Severity (4)
dbclient.h
namespace mongo
[+] class DBClientCursor (3)
| Change |
Effect |
1 | Field _putBack has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 | Field batchSize has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
3 | Field haveLimit has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (3)
DBClientCursor::more ( )This method is from 'DBClientCursor' class.
DBClientCursor::next ( )This method is from 'DBClientCursor' class.
DBClientCursor::~DBClientCursor [in-charge] ( )This method is from 'DBClientCursor' class.
jsobj.h
namespace mongo
[+] class BSONObjBuilder (1)
| Change |
Effect |
1 | Field _tracker has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (6)
BSONObjBuilder::appendAsNumber ( std::string const& fieldName, std::string const& data )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMaxForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMinForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
dotted2nested ( BSONObjBuilder& b, BSONObj const& obj )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
LastError::appendSelf ( BSONObjBuilder& b )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
nested2dotted ( BSONObjBuilder& b, BSONObj const& obj, std::string const& base )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
to the top
Header Files (1)
dbclient.h
to the top
Shared Libraries (1)
libmongoclient.so
to the top