Binary compatibility report for the SQLite ODB library between 1.5.0 and 1.6.0 versions on x86
Test Info
Library Name | SQLite ODB |
Version #1 | 1.5.0 |
Version #2 | 1.6.0 |
CPU Type | x86 |
GCC Version | 4.6.1 |
Test Results
Total Header Files | 22 |
Total Shared Libraries | 1 |
Total Symbols / Types | 210 / 182 |
Verdict | Incompatible (30.7%) |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 37 |
Removed Symbols | High | 9 |
Problems with Data Types | High | 11 |
Medium | 3 |
Low | 7 |
Problems with Symbols | High | 8 |
Medium | 0 |
Low | 3 |
Problems with Constants | Low | 0 |
Other Changes in Data Types | - | 4 |
Other Changes in Symbols | - | 9 |
Added Symbols (37)
connection-factory.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
connection_pool_factory::create ( )
[symbol: _ZN3odb6sqlite23connection_pool_factory6createEv]
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC1ERNS0_8databaseEi]
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, sqlite3* p2 )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC1ERNS0_8databaseEP7sqlite3]
connection_pool_factory::pooled_connection::pooled_connection [not-in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC2ERNS0_8databaseEi]
connection_pool_factory::pooled_connection::pooled_connection [not-in-charge] ( connection::database_type& p1, sqlite3* p2 )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC2ERNS0_8databaseEP7sqlite3]
single_connection_factory::create ( )
[symbol: _ZN3odb6sqlite25single_connection_factory6createEv]
single_connection_factory::single_connection::single_connection [in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC1ERNS0_8databaseEi]
single_connection_factory::single_connection::single_connection [in-charge] ( connection::database_type& p1, sqlite3* p2 )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC1ERNS0_8databaseEP7sqlite3]
single_connection_factory::single_connection::single_connection [not-in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC2ERNS0_8databaseEi]
single_connection_factory::single_connection::single_connection [not-in-charge] ( connection::database_type& p1, sqlite3* p2 )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC2ERNS0_8databaseEP7sqlite3]
connection.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
connection::begin ( )
[symbol: _ZN3odb6sqlite10connection5beginEv]
connection::begin_exclusive ( )
[symbol: _ZN3odb6sqlite10connection15begin_exclusiveEv]
connection::begin_immediate ( )
[symbol: _ZN3odb6sqlite10connection15begin_immediateEv]
connection::connection [in-charge] ( connection::database_type& p1, sqlite3* handle )
[symbol: _ZN3odb6sqlite10connectionC1ERNS0_8databaseEP7sqlite3]
connection::connection [not-in-charge] ( connection::database_type& p1, sqlite3* handle )
[symbol: _ZN3odb6sqlite10connectionC2ERNS0_8databaseEP7sqlite3]
connection::execute ( char const* statement, std::size_t length )
[symbol: _ZN3odb6sqlite10connection7executeEPKcj]
database.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
database::connection_ ( )
[symbol: _ZN3odb6sqlite8database11connection_Ev]
database::database [in-charge] ( int& argc, char** argv, bool erase, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p6 )
[symbol: _ZN3odb6sqlite8databaseC1ERiPPcbibSt8auto_ptrINS0_18connection_factoryEE]
database::database [in-charge] ( std::string const& name, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p4 )
[symbol: _ZN3odb6sqlite8databaseC1ERKSsibSt8auto_ptrINS0_18connection_factoryEE]
database::database [not-in-charge] ( int& argc, char** argv, bool erase, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p6 )
[symbol: _ZN3odb6sqlite8databaseC2ERiPPcbibSt8auto_ptrINS0_18connection_factoryEE]
database::database [not-in-charge] ( std::string const& name, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p4 )
[symbol: _ZN3odb6sqlite8databaseC2ERKSsibSt8auto_ptrINS0_18connection_factoryEE]
query.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
operator! ( query const& p1 )
[symbol: _ZN3odb6sqlitentERKNS0_5queryE]
operator&& ( query const& p1, query const& p2 )
[symbol: _ZN3odb6sqliteaaERKNS0_5queryES3_]
operator|| ( query const& p1, query const& p2 )
[symbol: _ZN3odb6sqliteooERKNS0_5queryES3_]
query::append ( char const* table, char const* column )
[symbol: _ZN3odb6sqlite5query6appendEPKcS3_]
query::append ( std::string const& native )
[symbol: _ZN3odb6sqlite5query6appendERKSs]
query::clause_prefix ( ) const
[symbol: _ZNK3odb6sqlite5query13clause_prefixEv]
query::optimize ( )
[symbol: _ZN3odb6sqlite5query8optimizeEv]
query::true_expr [data]
[symbol: _ZN3odb6sqlite5query9true_exprE]
statement.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
select_statement::select_statement [in-charge] ( connection& conn, std::string const& statement, binding& data )
[symbol: _ZN3odb6sqlite16select_statementC1ERNS0_10connectionERKSsRNS0_7bindingE]
select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& statement, binding& data )
[symbol: _ZN3odb6sqlite16select_statementC2ERNS0_10connectionERKSsRNS0_7bindingE]
statements-base.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
statements_base::~statements_base [in-charge-deleting] ( )
[symbol: _ZN3odb6sqlite15statements_baseD0Ev]
statements_base::~statements_base [in-charge] ( )
[symbol: _ZN3odb6sqlite15statements_baseD1Ev]
statements_base::~statements_base [not-in-charge] ( )
[symbol: _ZN3odb6sqlite15statements_baseD2Ev]
transaction-impl.hxx,
libodb-sqlite-1.6.so
namespace odb::sqlite
transaction_impl::start ( )
[symbol: _ZN3odb6sqlite16transaction_impl5startEv]
transaction_impl::transaction_impl [in-charge] ( connection_ptr p1, enum transaction_impl::lock p2 )
[symbol: _ZN3odb6sqlite16transaction_implC1ENS_7details10shared_ptrINS0_10connectionEEENS1_4lockE]
transaction_impl::transaction_impl [not-in-charge] ( connection_ptr p1, enum transaction_impl::lock p2 )
[symbol: _ZN3odb6sqlite16transaction_implC2ENS_7details10shared_ptrINS0_10connectionEEENS1_4lockE]
to the top
Removed Symbols (9)
connection-factory.hxx,
libodb-sqlite-1.5.so
namespace odb::sqlite
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, int extra_flags, connection_pool_factory* p3 )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC1ERNS0_8databaseEiPS1_]
connection_pool_factory::pooled_connection::pooled_connection [not-in-charge] ( connection::database_type& p1, int extra_flags, connection_pool_factory* p3 )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC2ERNS0_8databaseEiPS1_]
single_connection_factory::single_connection::single_connection [in-charge] ( connection::database_type& p1, int extra_flags, single_connection_factory* p3 )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC1ERNS0_8databaseEiPS1_]
single_connection_factory::single_connection::single_connection [not-in-charge] ( connection::database_type& p1, int extra_flags, single_connection_factory* p3 )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC2ERNS0_8databaseEiPS1_]
database.hxx,
libodb-sqlite-1.5.so
namespace odb::sqlite
database::database [in-charge] ( int& argc, char** argv, bool erase, int flags, std::auto_ptr<connection_factory> p5 )
[symbol: _ZN3odb6sqlite8databaseC1ERiPPcbiSt8auto_ptrINS0_18connection_factoryEE]
database::database [in-charge] ( std::string const& name, int flags, std::auto_ptr<connection_factory> p3 )
[symbol: _ZN3odb6sqlite8databaseC1ERKSsiSt8auto_ptrINS0_18connection_factoryEE]
database::database [not-in-charge] ( int& argc, char** argv, bool erase, int flags, std::auto_ptr<connection_factory> p5 )
[symbol: _ZN3odb6sqlite8databaseC2ERiPPcbiSt8auto_ptrINS0_18connection_factoryEE]
database::database [not-in-charge] ( std::string const& name, int flags, std::auto_ptr<connection_factory> p3 )
[symbol: _ZN3odb6sqlite8databaseC2ERKSsiSt8auto_ptrINS0_18connection_factoryEE]
database::execute ( char const* statement, std::size_t length )
[symbol: _ZN3odb6sqlite8database7executeEPKcj]
to the top
Problems with Data Types, High Severity (11)
connection-factory.hxx
namespace sqlite
[+] class connection_pool_factory::pooled_connection (1)
| Change |
Effect |
1 | Size of this class has been increased from 120 bytes to 124 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (1)
connection_pool_factory::pooled_connection::~pooled_connection [in-charge] ( )This method is from 'connection_pool_factory::pooled_connection' class.
[+] class single_connection_factory::single_connection (1)
| Change |
Effect |
1 | Size of this class has been increased from 120 bytes to 124 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (1)
single_connection_factory::single_connection::~single_connection [in-charge] ( )This method is from 'single_connection_factory::single_connection' class.
connection.hxx
namespace sqlite
[+] class connection (3)
| Change |
Effect |
1 | Size of this class has been increased from 108 bytes to 112 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
2 | Base class connection has been added. | 1) The layout of v-table in this class has been changed. 2) The memory layout in this class has been shifted by 8 bytes. |
3 | Base class details::shared_base has been removed. | The memory layout in this class has been shifted by 8 bytes. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 6 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~connection |
connection::begin |
12 |
~connection |
connection::execute |
16 |
|
~connection |
20 |
|
~connection |
[+] affected symbols (18)
connection::clear ( )This method is from 'connection' class.
connection::connection [in-charge] ( connection::database_type& p1, int extra_flags )This constructor is from 'connection' class.
connection::wait ( )This method is from 'connection' class.
connection::~connection [in-charge] ( )This method is from 'connection' class.
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, int extra_flags, connection_pool_factory* p3 )This constructor is from derived class 'connection_pool_factory::pooled_connection'.
connection_pool_factory::pooled_connection::~pooled_connection [in-charge] ( )This method is from derived class 'connection_pool_factory::pooled_connection'.
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond )1st parameter 'conn' (reference) has base type 'connection'.
insert_statement::insert_statement [in-charge] ( connection& conn, std::string const& statement, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
simple_statement::simple_statement [in-charge] ( connection& p1, char const* statement, std::size_t n )1st parameter 'p1' (reference) has base type 'connection'.
simple_statement::simple_statement [in-charge] ( connection& p1, std::string const& statement )1st parameter 'p1' (reference) has base type 'connection'.
single_connection_factory::single_connection::single_connection [in-charge] ( connection::database_type& p1, int extra_flags, single_connection_factory* p3 )This constructor is from derived class 'single_connection_factory::single_connection'.
single_connection_factory::single_connection::~single_connection [in-charge] ( )This method is from derived class 'single_connection_factory::single_connection'.
statement::bind_param ( struct bind const* p1, std::size_t count, std::size_t start_param )Field 'this->conn_' in the object of this method has base type 'connection'.
statement::bind_result ( struct bind const* p1, std::size_t count, bool truncated )Field 'this->conn_' in the object of this method has base type 'connection'.
statement_cache::statement_cache [in-charge] ( connection& p1 )1st parameter 'p1' (reference) has base type 'connection'.
translate_error ( int error, connection& p2 )2nd parameter 'p2' (reference) has base type 'connection'.
update_statement::update_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
database.hxx
namespace sqlite
[+] class database (1)
| Change |
Effect |
1 | Size of this class has been increased from 16 bytes to 20 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (9)
connection::connection [in-charge] ( connection::database_type& p1, int extra_flags )1st parameter 'p1' (reference) has base type 'database'.
connection_pool_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
database::begin ( )This method is from 'database' class.
database::begin_exclusive ( )This method is from 'database' class.
database::begin_immediate ( )This method is from 'database' class.
database::~database [in-charge] ( )This method is from 'database' class.
new_connection_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
single_connection_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
transaction_impl::transaction_impl [in-charge] ( transaction_impl::database_type& p1, enum transaction_impl::lock p2 )1st parameter 'p1' (reference) has base type 'database'.
object-statements.hxx
namespace sqlite
[+] class object_statements_base (1)
| Change |
Effect |
1 | Base class statements_base has been added. | The memory layout in this class has been shifted by 8 bytes. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~object_statements_base |
~object_statements_base |
12 |
~object_statements_base |
~object_statements_base |
[+] affected symbols (1)
object_statements_base::~object_statements_base [in-charge] ( )This method is from 'object_statements_base' class.
query.hxx
namespace sqlite
[+] class query (1)
| Change |
Effect |
1 | Size of this class has been increased from 4 bytes to 12 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (4)
query::clause ( ) constThis method is from 'query' class.
query::operator+= ( query const& p1 )1st parameter 'p1' (reference) has base type 'query'.
query::operator = ( query const& p1 )1st parameter 'p1' (reference) has base type 'query'.
query::query [in-charge] ( query const& p1 )1st parameter 'p1' (reference) has base type 'query'.
transaction-impl.hxx
namespace sqlite
[+] class transaction_impl (1)
| Change |
Effect |
1 | Size of this class has been increased from 12 bytes to 20 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (7)
database::begin ( )Return value (pointer) has base type 'transaction_impl'.
database::begin_exclusive ( )Return value (pointer) has base type 'transaction_impl'.
database::begin_immediate ( )Return value (pointer) has base type 'transaction_impl'.
transaction_impl::commit ( )This method is from 'transaction_impl' class.
transaction_impl::rollback ( )This method is from 'transaction_impl' class.
transaction_impl::transaction_impl [in-charge] ( transaction_impl::database_type& p1, enum transaction_impl::lock p2 )This constructor is from 'transaction_impl' class.
transaction_impl::~transaction_impl [in-charge] ( )This method is from 'transaction_impl' class.
transaction.hxx
namespace odb
[+] class transaction_impl (2)
| Change |
Effect |
1 | Size of this class has been changed from 8 bytes to 12 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. |
2 | Pure virtual method transaction_impl::start ( ) has been added to this class. | 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 7 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~transaction_impl |
~transaction_impl |
12 |
~transaction_impl |
~transaction_impl |
16 |
__cxa_pure_virtual |
__cxa_pure_virtual |
20 |
__cxa_pure_virtual |
__cxa_pure_virtual |
24 |
|
__cxa_pure_virtual |
[+] affected symbols (6)
sqlite::transaction_impl::commit ( )This method is from derived class 'sqlite::transaction_impl'.
sqlite::transaction_impl::rollback ( )This method is from derived class 'sqlite::transaction_impl'.
sqlite::transaction_impl::transaction_impl [in-charge] ( sqlite::transaction_impl::database_type& p1, enum sqlite::transaction_impl::lock p2 )This constructor is from derived class 'sqlite::transaction_impl'.
sqlite::transaction_impl::~transaction_impl [in-charge] ( )This method is from derived class 'sqlite::transaction_impl'.
transaction_impl::commit ( )This method is from 'transaction_impl' class.
transaction_impl::rollback ( )This method is from 'transaction_impl' class.
to the top
Problems with Symbols, High Severity (8)
connection-factory.hxx,
libodb-sqlite-1.5.so
namespace odb::sqlite
[+] connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, int extra_flags, connection_pool_factory* p3 ) (1)
changed to:connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC1ERNS0_8databaseEiPS1_]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC1ERNS0_8databaseEiPS1_ to _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC1ERNS0_8databaseEi. This may cause "undefined reference" linker error in old client applications. |
[+] connection_pool_factory::pooled_connection::pooled_connection [not-in-charge] ( connection::database_type& p1, int extra_flags, connection_pool_factory* p3 ) (1)
changed to:connection_pool_factory::pooled_connection::pooled_connection [not-in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC2ERNS0_8databaseEiPS1_]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC2ERNS0_8databaseEiPS1_ to _ZN3odb6sqlite23connection_pool_factory17pooled_connectionC2ERNS0_8databaseEi. This may cause "undefined reference" linker error in old client applications. |
[+] single_connection_factory::single_connection::single_connection [not-in-charge] ( connection::database_type& p1, int extra_flags, single_connection_factory* p3 ) (1)
changed to:single_connection_factory::single_connection::single_connection [not-in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC2ERNS0_8databaseEiPS1_]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite25single_connection_factory17single_connectionC2ERNS0_8databaseEiPS1_ to _ZN3odb6sqlite25single_connection_factory17single_connectionC2ERNS0_8databaseEi. This may cause "undefined reference" linker error in old client applications. |
[+] single_connection_factory::single_connection::single_connection [in-charge] ( connection::database_type& p1, int extra_flags, single_connection_factory* p3 ) (1)
changed to:single_connection_factory::single_connection::single_connection [in-charge] ( connection::database_type& p1, int extra_flags )
[symbol: _ZN3odb6sqlite25single_connection_factory17single_connectionC1ERNS0_8databaseEiPS1_]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite25single_connection_factory17single_connectionC1ERNS0_8databaseEiPS1_ to _ZN3odb6sqlite25single_connection_factory17single_connectionC1ERNS0_8databaseEi. This may cause "undefined reference" linker error in old client applications. |
database.hxx,
libodb-sqlite-1.5.so
namespace odb::sqlite
[+] database::database [not-in-charge] ( int& argc, char** argv, bool erase, int flags, std::auto_ptr<connection_factory> p5 ) (1)
changed to:database::database [not-in-charge] ( int& argc, char** argv, bool erase, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p6 )
[symbol: _ZN3odb6sqlite8databaseC2ERiPPcbiSt8auto_ptrINS0_18connection_factoryEE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite8databaseC2ERiPPcbiSt8auto_ptrINS0_18connection_factoryEE to _ZN3odb6sqlite8databaseC2ERiPPcbibSt8auto_ptrINS0_18connection_factoryEE. This may cause "undefined reference" linker error in old client applications. |
[+] database::database [in-charge] ( int& argc, char** argv, bool erase, int flags, std::auto_ptr<connection_factory> p5 ) (1)
changed to:database::database [in-charge] ( int& argc, char** argv, bool erase, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p6 )
[symbol: _ZN3odb6sqlite8databaseC1ERiPPcbiSt8auto_ptrINS0_18connection_factoryEE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite8databaseC1ERiPPcbiSt8auto_ptrINS0_18connection_factoryEE to _ZN3odb6sqlite8databaseC1ERiPPcbibSt8auto_ptrINS0_18connection_factoryEE. This may cause "undefined reference" linker error in old client applications. |
[+] database::database [in-charge] ( std::string const& name, int flags, std::auto_ptr<connection_factory> p3 ) (1)
changed to:database::database [in-charge] ( int& argc, char** argv, bool erase, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p6 )
[symbol: _ZN3odb6sqlite8databaseC1ERKSsiSt8auto_ptrINS0_18connection_factoryEE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite8databaseC1ERKSsiSt8auto_ptrINS0_18connection_factoryEE to _ZN3odb6sqlite8databaseC1ERiPPcbibSt8auto_ptrINS0_18connection_factoryEE. This may cause "undefined reference" linker error in old client applications. |
[+] database::database [not-in-charge] ( std::string const& name, int flags, std::auto_ptr<connection_factory> p3 ) (1)
changed to:database::database [not-in-charge] ( int& argc, char** argv, bool erase, int flags, bool foreign_keys, std::auto_ptr<connection_factory> p6 )
[symbol: _ZN3odb6sqlite8databaseC2ERKSsiSt8auto_ptrINS0_18connection_factoryEE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb6sqlite8databaseC2ERKSsiSt8auto_ptrINS0_18connection_factoryEE to _ZN3odb6sqlite8databaseC2ERiPPcbibSt8auto_ptrINS0_18connection_factoryEE. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (3)
database.hxx
namespace odb::sqlite
[+] class database (1)
| Change |
Effect |
1 | The layout of v-table has been changed for unknown reason. | Call of any method in this class may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 6 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~database |
~database |
12 |
~database |
~database |
16 |
database::execute |
database::begin |
20 |
database::begin |
database::connection_ |
[+] affected symbols (8)
database::begin ( )This method is from 'database' class.
database::begin_exclusive ( )This method is from 'database' class.
database::begin_immediate ( )This method is from 'database' class.
database::database [in-charge] ( int& argc, char** argv, bool erase, int flags, std::auto_ptr<connection_factory> p5 )This constructor is from 'database' class.
database::database [in-charge] ( std::string const& name, int flags, std::auto_ptr<connection_factory> p3 )This constructor is from 'database' class.
database::execute ( char const* statement, std::size_t length )This method is from 'database' class.
database::print_usage ( std::ostream& p1 ) [static]This method is from 'database' class.
database::~database [in-charge] ( )This method is from 'database' class.
object-statements.hxx
namespace odb::sqlite
[+] class object_statements_base (1)
| Change |
Effect |
1 | Field conn_ has been removed from the middle position of this structural type. | 1) Applications will access incorrect memory when attempting to access this field. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
[+] affected symbols (1)
object_statements_base::~object_statements_base [in-charge] ( )This method is from 'object_statements_base' class.
statement.hxx
namespace odb::sqlite
[+] class statement (1)
| Change |
Effect |
1 | Size of field conn_ has been changed from 108 bytes to 112 bytes. | Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. |
[+] affected symbols (2)
statement::bind_param ( struct bind const* p1, std::size_t count, std::size_t start_param )This method is from 'statement' class.
statement::bind_result ( struct bind const* p1, std::size_t count, bool truncated )This method is from 'statement' class.
to the top
Problems with Data Types, Low Severity (7)
connection.hxx
namespace odb::sqlite
[+] class connection (2)
| Change |
Effect |
1 | The relative position of private field statement_cache_ has been changed from 6 to 2. | Size of the inclusive type has been changed. |
2 | Size of field db_ has been changed from 16 bytes to 20 bytes. | Size of the inclusive type has been changed. |
[+] affected symbols (14)
connection::clear ( )This method is from 'connection' class.
connection::connection [in-charge] ( connection::database_type& p1, int extra_flags )This constructor is from 'connection' class.
connection::wait ( )This method is from 'connection' class.
connection::~connection [in-charge] ( )This method is from 'connection' class.
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond )1st parameter 'conn' (reference) has base type 'connection'.
insert_statement::insert_statement [in-charge] ( connection& conn, std::string const& statement, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
simple_statement::simple_statement [in-charge] ( connection& p1, char const* statement, std::size_t n )1st parameter 'p1' (reference) has base type 'connection'.
simple_statement::simple_statement [in-charge] ( connection& p1, std::string const& statement )1st parameter 'p1' (reference) has base type 'connection'.
statement::bind_param ( struct bind const* p1, std::size_t count, std::size_t start_param )Field 'this->conn_' in the object of this method has base type 'connection'.
statement::bind_result ( struct bind const* p1, std::size_t count, bool truncated )Field 'this->conn_' in the object of this method has base type 'connection'.
statement_cache::statement_cache [in-charge] ( connection& p1 )1st parameter 'p1' (reference) has base type 'connection'.
translate_error ( int error, connection& p2 )2nd parameter 'p2' (reference) has base type 'connection'.
update_statement::update_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
database.hxx
namespace odb::sqlite
[+] class database (1)
| Change |
Effect |
1 | Field foreign_keys_ 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 (9)
connection::connection [in-charge] ( connection::database_type& p1, int extra_flags )1st parameter 'p1' (reference) has base type 'database'.
connection_pool_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
database::begin ( )This method is from 'database' class.
database::begin_exclusive ( )This method is from 'database' class.
database::begin_immediate ( )This method is from 'database' class.
database::~database [in-charge] ( )This method is from 'database' class.
new_connection_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
single_connection_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
transaction_impl::transaction_impl [in-charge] ( transaction_impl::database_type& p1, enum transaction_impl::lock p2 )1st parameter 'p1' (reference) has base type 'database'.
query.hxx
namespace odb::sqlite
[+] class query (1)
| Change |
Effect |
1 | Type of field clause_ has been changed from std::string (4 bytes) to query::clause_type (12 bytes). | Size of the inclusive type has been changed. |
[+] affected symbols (4)
query::clause ( ) constThis method is from 'query' class.
query::operator+= ( query const& p1 )1st parameter 'p1' (reference) has base type 'query'.
query::operator = ( query const& p1 )1st parameter 'p1' (reference) has base type 'query'.
query::query [in-charge] ( query const& p1 )1st parameter 'p1' (reference) has base type 'query'.
statement.hxx
namespace odb::sqlite
[+] class statement (2)
| Change |
Effect |
1 | The pointer level of field stmt_ has been decreased from 1 to 0. | The library functions will treat the value of this field as the lower-dimension array and will not read all elements. This may change the behavior of applications. |
2 | Type of field stmt_ has been changed from sqlite3_stmt* to auto_handle<struct sqlite3_stmt>. | Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols (2)
statement::bind_param ( struct bind const* p1, std::size_t count, std::size_t start_param )This method is from 'statement' class.
statement::bind_result ( struct bind const* p1, std::size_t count, bool truncated )This method is from 'statement' class.
transaction-impl.hxx
namespace odb::sqlite
[+] class transaction_impl (1)
| Change |
Effect |
1 | Field lock_ 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 (7)
database::begin ( )Return value (pointer) has base type 'transaction_impl'.
database::begin_exclusive ( )Return value (pointer) has base type 'transaction_impl'.
database::begin_immediate ( )Return value (pointer) has base type 'transaction_impl'.
transaction_impl::commit ( )This method is from 'transaction_impl' class.
transaction_impl::rollback ( )This method is from 'transaction_impl' class.
transaction_impl::transaction_impl [in-charge] ( transaction_impl::database_type& p1, enum transaction_impl::lock p2 )This constructor is from 'transaction_impl' class.
transaction_impl::~transaction_impl [in-charge] ( )This method is from 'transaction_impl' class.
to the top
Problems with Symbols, Low Severity (3)
connection-factory.hxx,
libodb-sqlite-1.5.so
namespace odb::sqlite
[+] connection_pool_factory::connect ( ) (1)
[symbol: _ZN3odb6sqlite23connection_pool_factory7connectEv]
| Change | Effect |
---|
1 | Type of return value has been changed from odb::details::shared_ptr<connection> to connection_ptr. | Replacement of return type may indicate a change in its semantic meaning. |
[+] new_connection_factory::connect ( ) (1)
[symbol: _ZN3odb6sqlite22new_connection_factory7connectEv]
| Change | Effect |
---|
1 | Type of return value has been changed from odb::details::shared_ptr<connection> to connection_ptr. | Replacement of return type may indicate a change in its semantic meaning. |
[+] single_connection_factory::connect ( ) (1)
[symbol: _ZN3odb6sqlite25single_connection_factory7connectEv]
| Change | Effect |
---|
1 | Type of return value has been changed from odb::details::shared_ptr<connection> to connection_ptr. | Replacement of return type may indicate a change in its semantic meaning. |
to the top
Other Changes in Data Types (4)
connection-factory.hxx
namespace odb::sqlite
[+] class connection_pool_factory (1)
| Change |
Effect |
1 | Virtual method connection_pool_factory::create ( ) has been added to this class. | No effect. You can add virtual functions at end of leaf classes with exported constructors. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 7 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
connection_pool_factory::connect |
connection_pool_factory::connect |
12 |
connection_pool_factory::database |
connection_pool_factory::database |
16 |
~connection_pool_factory |
~connection_pool_factory |
20 |
~connection_pool_factory |
~connection_pool_factory |
24 |
|
connection_pool_factory::create |
[+] affected symbols (3)
connection_pool_factory::connect ( )This method is from 'connection_pool_factory' class.
connection_pool_factory::database ( connection_factory::database_type& p1 )This method is from 'connection_pool_factory' class.
connection_pool_factory::~connection_pool_factory [in-charge] ( )This method is from 'connection_pool_factory' class.
[+] class single_connection_factory (1)
| Change |
Effect |
1 | Virtual method single_connection_factory::create ( ) has been added to this class. | No effect. You can add virtual functions at end of leaf classes with exported constructors. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 7 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
single_connection_factory::connect |
single_connection_factory::connect |
12 |
single_connection_factory::database |
single_connection_factory::database |
16 |
~single_connection_factory |
~single_connection_factory |
20 |
~single_connection_factory |
~single_connection_factory |
24 |
|
single_connection_factory::create |
[+] affected symbols (3)
single_connection_factory::connect ( )This method is from 'single_connection_factory' class.
single_connection_factory::database ( connection_factory::database_type& p1 )This method is from 'single_connection_factory' class.
single_connection_factory::~single_connection_factory [in-charge] ( )This method is from 'single_connection_factory' class.
statement-cache.hxx
namespace odb::sqlite
[+] class statement_cache (1)
| Change |
Effect |
1 | Size of field conn_ has been changed from 108 bytes to 112 bytes. | No effect. |
[+] affected symbols (1)
statement_cache::statement_cache [in-charge] ( connection& p1 )This constructor is from 'statement_cache' class.
statement.hxx
namespace odb::sqlite
[+] class select_statement (1)
| Change |
Effect |
1 | Type of field cond_ has been changed from binding& (12 bytes) to binding* (4 bytes). | No effect. |
[+] affected symbols (7)
select_statement::execute ( )This method is from 'select_statement' class.
select_statement::free_result ( )This method is from 'select_statement' class.
select_statement::load ( )This method is from 'select_statement' class.
select_statement::next ( )This method is from 'select_statement' class.
select_statement::reload ( )This method is from 'select_statement' class.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& statement, binding& cond, binding& data )This constructor is from 'select_statement' class.
select_statement::~select_statement [in-charge] ( )This method is from 'select_statement' class.
to the top
Other Changes in Symbols (9)
transaction-impl.hxx,
libodb-sqlite-1.5.so
namespace sqlite
[+] transaction_impl::commit ( ) (1)
[symbol: _ZN3odb6sqlite16transaction_impl6commitEv]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::rollback ( ) (1)
[symbol: _ZN3odb6sqlite16transaction_impl8rollbackEv]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::transaction_impl [in-charge] ( transaction_impl::database_type& p1, enum transaction_impl::lock p2 ) (1)
[symbol: _ZN3odb6sqlite16transaction_implC1ERNS0_8databaseENS1_4lockE]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::transaction_impl [not-in-charge] ( transaction_impl::database_type& p1, enum transaction_impl::lock p2 ) (1)
[symbol: _ZN3odb6sqlite16transaction_implC2ERNS0_8databaseENS1_4lockE]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::~transaction_impl [not-in-charge] ( ) (1)
[symbol: _ZN3odb6sqlite16transaction_implD2Ev]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::~transaction_impl [in-charge-deleting] ( ) (1)
[symbol: _ZN3odb6sqlite16transaction_implD0Ev]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::~transaction_impl [in-charge] ( ) (1)
[symbol: _ZN3odb6sqlite16transaction_implD1Ev]
| Change | Effect |
---|
1 | This method became public. | No effect. |
transaction.hxx
namespace odb
[+] transaction_impl::commit ( ) (1)
[symbol: _ZN3odb16transaction_impl6commitEv]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::rollback ( ) (1)
[symbol: _ZN3odb16transaction_impl8rollbackEv]
| Change | Effect |
---|
1 | This method became public. | No effect. |
to the top
Header Files (22)
binding.hxx
config.h
config.hxx
connection-factory.hxx
connection.hxx
container-statements.hxx
database.hxx
error.hxx
exceptions.hxx
export.hxx
forward.hxx
object-statements.hxx
options.hxx
query.hxx
result.hxx
sqlite-types.hxx
statement-cache.hxx
statement.hxx
traits.hxx
transaction-impl.hxx
transaction.hxx
version.hxx
to the top
Shared Libraries (1)
libodb-sqlite-1.5.so
to the top