Binary compatibility report for the PostgreSQL ODB library between 1.6.0 and 1.7.0 versions on x86
Test Info
Library Name | PostgreSQL ODB |
Version #1 | 1.6.0 |
Version #2 | 1.7.0 |
CPU Type | x86 |
GCC Version | 4.6.1 |
Test Results
Total Header Files | 30 |
Total Shared Libraries | 1 |
Total Symbols / Types | 235 / 204 |
Verdict | Incompatible (36.6%) |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 24 |
Removed Symbols | High | 6 |
Problems with Data Types | High | 10 |
Medium | 4 |
Low | 15 |
Problems with Symbols | High | 4 |
Medium | 0 |
Low | 31 |
Problems with Constants | Low | 0 |
Added Symbols (24)
statement.hxx,
libodb-pgsql-1.7.so
namespace odb::pgsql
delete_statement::delete_statement [in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool copy_name_text )
[symbol: _ZN3odb5pgsql16delete_statementC1ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEb]
delete_statement::delete_statement [not-in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool copy_name_text )
[symbol: _ZN3odb5pgsql16delete_statementC2ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEb]
insert_statement::insert_statement [in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool returning, bool copy_name_text )
[symbol: _ZN3odb5pgsql16insert_statementC1ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEbb]
insert_statement::insert_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool returning )
[symbol: _ZN3odb5pgsql16insert_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingEb]
insert_statement::insert_statement [not-in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool returning, bool copy_name_text )
[symbol: _ZN3odb5pgsql16insert_statementC2ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEbb]
insert_statement::insert_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool returning )
[symbol: _ZN3odb5pgsql16insert_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingEb]
select_statement::select_statement [in-charge] ( connection& conn, char const* name, char const* stmt, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, binding& result, bool copy_name_text )
[symbol: _ZN3odb5pgsql16select_statementC1ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_b]
select_statement::select_statement [in-charge] ( connection& conn, char const* name, char const* text, binding& result, bool copy_name_text )
[symbol: _ZN3odb5pgsql16select_statementC1ERNS0_10connectionEPKcS5_RNS0_7bindingEb]
select_statement::select_statement [not-in-charge] ( connection& conn, char const* name, char const* stmt, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, binding& result, bool copy_name_text )
[symbol: _ZN3odb5pgsql16select_statementC2ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_b]
select_statement::select_statement [not-in-charge] ( connection& conn, char const* name, char const* text, binding& result, bool copy_name_text )
[symbol: _ZN3odb5pgsql16select_statementC2ERNS0_10connectionEPKcS5_RNS0_7bindingEb]
statement::statement [in-charge] ( connection& p1, char const* name, char const* text, bool copy_name_text, Oid const* types, std::size_t types_count )
[symbol: _ZN3odb5pgsql9statementC1ERNS0_10connectionEPKcS5_bPKjj]
statement::statement [not-in-charge] ( connection& p1, char const* name, char const* text, bool copy_name_text, Oid const* types, std::size_t types_count )
[symbol: _ZN3odb5pgsql9statementC2ERNS0_10connectionEPKcS5_bPKjj]
statement::text ( ) const
[symbol: _ZNK3odb5pgsql9statement4textEv]
update_statement::update_statement [in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool copy_name_text )
[symbol: _ZN3odb5pgsql16update_statementC1ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEb]
update_statement::update_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param )
[symbol: _ZN3odb5pgsql16update_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
update_statement::update_statement [not-in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool copy_name_text )
[symbol: _ZN3odb5pgsql16update_statementC2ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEb]
update_statement::update_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param )
[symbol: _ZN3odb5pgsql16update_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
tracer.hxx,
libodb-pgsql-1.7.so
namespace odb::pgsql
tracer::deallocate ( connection& p1, statement const& p2 )
[symbol: _ZN3odb5pgsql6tracer10deallocateERNS0_10connectionERKNS0_9statementE]
tracer::execute ( connection& p1, statement const& p2 )
[symbol: _ZN3odb5pgsql6tracer7executeERNS0_10connectionERKNS0_9statementE]
tracer::prepare ( connection& p1, statement const& p2 )
[symbol: _ZN3odb5pgsql6tracer7prepareERNS0_10connectionERKNS0_9statementE]
tracer::~tracer [in-charge-deleting] ( )
[symbol: _ZN3odb5pgsql6tracerD0Ev]
tracer::~tracer [in-charge] ( )
[symbol: _ZN3odb5pgsql6tracerD1Ev]
tracer::~tracer [not-in-charge] ( )
[symbol: _ZN3odb5pgsql6tracerD2Ev]
traits.hxx,
libodb-pgsql-1.7.so
namespace odb::pgsql
default_value_traits<std::vector<unsigned char>,(enum database_type_id)11>::set_image ( odb::details::buffer& p1, std::size_t& n, bool& is_null, default_value_traits<std::vector<unsigned char>,(enum database_type_id)11>::value_type const& p4 ) [static]
[symbol: _ZN3odb5pgsql20default_value_traitsISt6vectorIhSaIhEELNS0_16database_type_idE11EE9set_imageERNS_7details12basic_bufferIcEERjRbRKS4_]
to the top
Removed Symbols (6)
error.hxx,
libodb-pgsql-1.6.so
namespace odb::pgsql
translate_error ( connection& p1 )
[symbol: _ZN3odb5pgsql15translate_errorERNS0_10connectionE]
statement.hxx,
libodb-pgsql-1.6.so
namespace odb::pgsql
insert_statement::id ( )
[symbol: _ZN3odb5pgsql16insert_statement2idEv]
insert_statement::insert_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& data, native_binding& native_data )
[symbol: _ZN3odb5pgsql16insert_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
insert_statement::insert_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& data, native_binding& native_data )
[symbol: _ZN3odb5pgsql16insert_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
update_statement::update_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data, native_binding& native_data )
[symbol: _ZN3odb5pgsql16update_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_SB_]
update_statement::update_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data, native_binding& native_data )
[symbol: _ZN3odb5pgsql16update_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_SB_]
to the top
Problems with Data Types, High Severity (10)
connection-factory.hxx
namespace odb::pgsql
[+] class connection_pool_factory::pooled_connection (1)
| Change |
Effect |
1 | Size of this class has been increased from 40 bytes to 52 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)
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1 )This constructor is from 'connection_pool_factory::pooled_connection' class.
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, PGconn* p2 )This constructor is from 'connection_pool_factory::pooled_connection' class.
connection_pool_factory::pooled_connection::~pooled_connection [in-charge] ( )This method is from 'connection_pool_factory::pooled_connection' class.
connection_pool_factory::release ( connection_pool_factory::pooled_connection* p1 )1st parameter 'p1' (pointer) has base type 'connection_pool_factory::pooled_connection'.
connection.hxx
namespace odb::pgsql
[+] class connection (1)
| Change |
Effect |
1 | Size of this class has been increased from 28 bytes to 40 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 (17)
connection::begin ( )This method is from 'connection' class.
connection::connection [in-charge] ( connection::database_type& p1 )This constructor is from 'connection' class.
connection::connection [in-charge] ( connection::database_type& p1, PGconn* handle )This constructor is from 'connection' class.
connection::execute ( char const* statement, std::size_t length )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 )This constructor is from derived class 'connection_pool_factory::pooled_connection'.
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, PGconn* p2 )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& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond )1st parameter 'conn' (reference) has base type 'connection'.
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
statement::deallocate ( )Field 'this->conn_' in the object of this method has base type 'connection'.
statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count )1st parameter 'p1' (reference) has base type 'connection'.
statements_base::~statements_base [in-charge] ( )Field 'this->conn_' in the object of this method has base type 'connection'.
translate_error ( connection& c, PGresult* r )1st parameter 'c' (reference) has base type 'connection'.
database.hxx
namespace odb::pgsql
[+] class database (1)
| Change |
Effect |
1 | Size of this class has been increased from 40 bytes to 44 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 (18)
connection::connection [in-charge] ( connection::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
connection::connection [in-charge] ( connection::database_type& p1, PGconn* handle )1st parameter 'p1' (reference) has base type 'database'.
connection_pool_factory::connect ( )Field 'this->db_' in the object of this method has base type 'database'.
connection_pool_factory::create ( )Field 'this->db_' in the object of this method has base type 'database'.
connection_pool_factory::database ( connection_factory::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
connection_pool_factory::pooled_connection::pooled_connection [in-charge] ( connection::database_type& p1, PGconn* p2 )1st parameter 'p1' (reference) has base type 'database'.
connection_pool_factory::release ( connection_pool_factory::pooled_connection* p1 )Field 'this->db_' in the object of this method has base type 'database'.
connection_pool_factory::~connection_pool_factory [in-charge] ( )Field 'this->db_' in the object of this method has base type 'database'.
database::begin ( )This method is from 'database' class.
database::connection_ ( )This method is from 'database' class.
database::database [in-charge] ( int& argc, char** argv, bool erase, std::string const& extra_conninfo, std::auto_ptr<connection_factory> p5 )This constructor is from 'database' class.
database::database [in-charge] ( std::string const& conninfo, std::auto_ptr<connection_factory> p2 )This constructor is from 'database' class.
database::database [in-charge] ( std::string const& user, std::string const& password, std::string const& db, std::string const& host, std::string const& socket_ext, std::string const& extra_conninfo, std::auto_ptr<connection_factory> factory )This constructor is from 'database' class.
database::database [in-charge] ( std::string const& user, std::string const& password, std::string const& db, std::string const& host, unsigned int port, std::string const& extra_conninfo, std::auto_ptr<connection_factory> factory )This constructor 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'.
transaction_impl::transaction_impl [in-charge] ( transaction_impl::database_type& p1 )1st parameter 'p1' (reference) has base type 'database'.
statement.hxx
namespace odb::pgsql
[+] class delete_statement (1)
| Change |
Effect |
1 | Size of this class has been increased from 32 bytes to 44 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)
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond )This constructor is from 'delete_statement' class.
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond )This constructor is from 'delete_statement' class.
delete_statement::execute ( )This method is from 'delete_statement' class.
delete_statement::~delete_statement [in-charge] ( )This method is from 'delete_statement' class.
[+] class insert_statement (1)
| Change |
Effect |
1 | Size of this class has been increased from 44 bytes to 56 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 (2)
insert_statement::execute ( )This method is from 'insert_statement' class.
insert_statement::~insert_statement [in-charge] ( )This method is from 'insert_statement' class.
[+] class select_statement (1)
| Change |
Effect |
1 | Size of this class has been increased from 48 bytes to 60 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)
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& name, std::string const& stmt, binding& data )This constructor is from 'select_statement' class.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data )This constructor is from 'select_statement' class.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data )This constructor is from 'select_statement' class.
select_statement::~select_statement [in-charge] ( )This method is from 'select_statement' class.
[+] class statement (3)
| Change |
Effect |
1 | Size of this class has been increased from 24 bytes to 36 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 odb::statement 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 4 bytes. |
3 | Base class odb::details::shared_base has been removed. | The memory layout in this class has been shifted by 4 bytes. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 5 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 |
|
statement::text |
[+] affected symbols (25)
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond )This constructor is from derived class 'delete_statement'.
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond )This constructor is from derived class 'delete_statement'.
delete_statement::execute ( )This method is from derived class 'delete_statement'.
delete_statement::~delete_statement [in-charge] ( )This method is from derived class 'delete_statement'.
insert_statement::execute ( )This method is from derived class 'insert_statement'.
insert_statement::id ( )This method is from derived class 'insert_statement'.
insert_statement::insert_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& data, native_binding& native_data )This constructor is from derived class 'insert_statement'.
insert_statement::~insert_statement [in-charge] ( )This method is from derived class 'insert_statement'.
select_statement::execute ( )This method is from derived class 'select_statement'.
select_statement::free_result ( )This method is from derived class 'select_statement'.
select_statement::load ( )This method is from derived class 'select_statement'.
select_statement::next ( )This method is from derived class 'select_statement'.
select_statement::reload ( )This method is from derived class 'select_statement'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, binding& data )This constructor is from derived class 'select_statement'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data )This constructor is from derived class 'select_statement'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data )This constructor is from derived class 'select_statement'.
select_statement::~select_statement [in-charge] ( )This method is from derived class 'select_statement'.
statement::bind_param ( native_binding& p1, binding const& p2 ) [static]This method is from 'statement' class.
statement::bind_result ( struct bind* p1, std::size_t count, PGresult* p3, std::size_t row, bool truncated ) [static]This method is from 'statement' class.
statement::deallocate ( )This method is from 'statement' class.
statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count )This constructor is from 'statement' class.
statement::~statement [in-charge] ( )This method is from 'statement' class.
update_statement::execute ( )This method is from derived class 'update_statement'.
update_statement::update_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data, native_binding& native_data )This constructor is from derived class 'update_statement'.
update_statement::~update_statement [in-charge] ( )This method is from derived class 'update_statement'.
[+] class update_statement (1)
| Change |
Effect |
1 | Size of this class has been increased from 40 bytes to 44 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 (2)
update_statement::execute ( )This method is from 'update_statement' class.
update_statement::~update_statement [in-charge] ( )This method is from 'update_statement' class.
to the top
Problems with Symbols, High Severity (4)
statement.hxx,
libodb-pgsql-1.6.so
namespace odb::pgsql
[+] insert_statement::insert_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& data, native_binding& native_data ) (1)
changed to:insert_statement::insert_statement [in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool returning, bool copy_name_text )
[symbol: _ZN3odb5pgsql16insert_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb5pgsql16insert_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE to _ZN3odb5pgsql16insert_statementC1ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEbb. This may cause "undefined reference" linker error in old client applications. |
[+] insert_statement::insert_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& data, native_binding& native_data ) (1)
changed to:insert_statement::insert_statement [not-in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool returning, bool copy_name_text )
[symbol: _ZN3odb5pgsql16insert_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb5pgsql16insert_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE to _ZN3odb5pgsql16insert_statementC2ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEbb. This may cause "undefined reference" linker error in old client applications. |
[+] update_statement::update_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data, native_binding& native_data ) (1)
changed to:update_statement::update_statement [in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool copy_name_text )
[symbol: _ZN3odb5pgsql16update_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_SB_]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb5pgsql16update_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_SB_ to _ZN3odb5pgsql16update_statementC1ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEb. This may cause "undefined reference" linker error in old client applications. |
[+] update_statement::update_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data, native_binding& native_data ) (1)
changed to:update_statement::update_statement [not-in-charge] ( connection& conn, char const* name, char const* text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, bool copy_name_text )
[symbol: _ZN3odb5pgsql16update_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_SB_]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb5pgsql16update_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_SB_ to _ZN3odb5pgsql16update_statementC2ERNS0_10connectionEPKcS5_PKjjRNS0_7bindingERNS0_14native_bindingEb. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (4)
statement.hxx
namespace odb::pgsql
[+] class statement (3)
| Change |
Effect |
1 | Field name_copy_ has been added at the middle position of this structural type. | 1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
2 | Size of field conn_ has been changed from 28 bytes to 40 bytes. | 1) Size of the inclusive type has been changed. 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. |
3 | The pointer level of field name_ has been increased from 0 to 1. | The library functions may try to access unallocated memory by the dereferencing of old field value and therefore cause a crash of applications. |
[+] affected symbols (2)
statement::deallocate ( )This method is from 'statement' class.
statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count )This constructor is from 'statement' class.
statements-base.hxx
namespace odb::pgsql
[+] class statements_base (1)
| Change |
Effect |
1 | Size of field conn_ has been changed from 28 bytes to 40 bytes. | Previous accesses of applications and library functions to this field may be broken. |
[+] affected symbols (1)
statements_base::~statements_base [in-charge] ( )This method is from 'statements_base' class.
to the top
Problems with Data Types, Low Severity (15)
connection.hxx
namespace odb
[+] class connection (4)
| Change |
Effect |
1 | Field tracer_ has been added to this type. | 1) This field will not be initialized by old clients. 2) 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 transaction_tracer_ has been added to this type. | 1) This field will not be initialized by old clients. 2) 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 | Size of this type has been changed from 16 bytes to 24 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
4 | Size of field database_ has been changed from 4 bytes to 8 bytes. | Size of the inclusive type has been changed. |
[+] affected symbols (1)
pgsql::database::connection_ ( )Return value (pointer) has base type 'connection'.
connection.hxx
namespace odb::pgsql
[+] class connection (2)
| Change |
Effect |
1 | Field failed_ 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 | Size of field db_ has been changed from 40 bytes to 44 bytes. | Size of the inclusive type has been changed. |
[+] affected symbols (14)
connection::begin ( )This method is from 'connection' class.
connection::connection [in-charge] ( connection::database_type& p1 )This constructor is from 'connection' class.
connection::connection [in-charge] ( connection::database_type& p1, PGconn* handle )This constructor is from 'connection' class.
connection::execute ( char const* statement, std::size_t length )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& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond )1st parameter 'conn' (reference) has base type 'connection'.
delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data )1st parameter 'conn' (reference) has base type 'connection'.
statement::deallocate ( )Field 'this->conn_' in the object of this method has base type 'connection'.
statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count )1st parameter 'p1' (reference) has base type 'connection'.
statements_base::~statements_base [in-charge] ( )Field 'this->conn_' in the object of this method has base type 'connection'.
translate_error ( connection& c, PGresult* r )1st parameter 'c' (reference) has base type 'connection'.
statement.hxx
namespace odb::pgsql
[+] class select_statement (3)
| Change |
Effect |
1 | Field handle_ 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 | Type of field result_ has been changed from auto_handle<struct pg_result> (4 bytes) to binding& (12 bytes). | Size of the inclusive type has been changed. |
3 | Field data_ has been removed from this type. | Size of the inclusive type has been changed. |
[+] affected symbols (9)
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& name, std::string const& stmt, binding& data )This constructor is from 'select_statement' class.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data )This constructor is from 'select_statement' class.
select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data )This constructor is from 'select_statement' class.
select_statement::~select_statement [in-charge] ( )This method is from 'select_statement' class.
[+] class statement (4)
| Change |
Effect |
1 | Field text_ has been added to this type. | 1) This field will not be initialized by old clients. 2) 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 text_copy_ has been added to this type. | 1) This field will not be initialized by old clients. 2) 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 name_ became const. | The value of this field is expected to be const in new library version, but can be modified by old applications. |
4 | Type of field name_ has been changed from std::string to char const*. | Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols (2)
statement::deallocate ( )This method is from 'statement' class.
statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count )This constructor is from 'statement' class.
[+] class update_statement (2)
| Change |
Effect |
1 | Field data_ has been removed from this type. | Size of the inclusive type has been changed. |
2 | Field native_data_ has been removed from this type. | Size of the inclusive type has been changed. |
[+] affected symbols (2)
update_statement::execute ( )This method is from 'update_statement' class.
update_statement::~update_statement [in-charge] ( )This method is from 'update_statement' class.
to the top
Problems with Symbols, Low Severity (31)
statement.hxx,
libodb-pgsql-1.6.so
namespace odb::pgsql
[+] delete_statement::delete_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond ) (3)
changed to:delete_statement::delete_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param )
[symbol: _ZN3odb5pgsql16delete_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter cond has been renamed to param. | Renaming of a parameter may indicate a change in its semantic meaning. |
3 | 7th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond ) (3)
changed to:delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param )
[symbol: _ZN3odb5pgsql16delete_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter cond has been renamed to param. | Renaming of a parameter may indicate a change in its semantic meaning. |
3 | 7th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond ) (2)
changed to:delete_statement::delete_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, native_binding& native_param )
[symbol: _ZN3odb5pgsql16delete_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_14native_bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] delete_statement::delete_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond ) (2)
changed to:delete_statement::delete_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, native_binding& native_param )
[symbol: _ZN3odb5pgsql16delete_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_14native_bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, binding& data ) (2)
changed to:select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, binding& result )
[symbol: _ZN3odb5pgsql16select_statementC1ERNS0_10connectionERKSsS5_RNS0_7bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 4th parameter data has been renamed to result. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, binding& data ) (2)
changed to:select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, binding& result )
[symbol: _ZN3odb5pgsql16select_statementC2ERNS0_10connectionERKSsS5_RNS0_7bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 4th parameter data has been renamed to result. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data ) (4)
changed to:select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, binding& result )
[symbol: _ZN3odb5pgsql16select_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter cond has been renamed to param. | Renaming of a parameter may indicate a change in its semantic meaning. |
3 | 7th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
4 | 8th parameter data has been renamed to result. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, binding& cond, native_binding& native_cond, binding& data ) (4)
changed to:select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, binding& param, native_binding& native_param, binding& result )
[symbol: _ZN3odb5pgsql16select_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_7bindingERNS0_14native_bindingES9_]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter cond has been renamed to param. | Renaming of a parameter may indicate a change in its semantic meaning. |
3 | 7th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
4 | 8th parameter data has been renamed to result. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data ) (3)
changed to:select_statement::select_statement [in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, native_binding& native_param, binding& result )
[symbol: _ZN3odb5pgsql16select_statementC1ERNS0_10connectionERKSsS5_PKjjRNS0_14native_bindingERNS0_7bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
3 | 7th parameter data has been renamed to result. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count, native_binding& native_cond, binding& data ) (3)
changed to:select_statement::select_statement [not-in-charge] ( connection& conn, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count, native_binding& native_param, binding& result )
[symbol: _ZN3odb5pgsql16select_statementC2ERNS0_10connectionERKSsS5_PKjjRNS0_14native_bindingERNS0_7bindingE]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
2 | 6th parameter native_cond has been renamed to native_param. | Renaming of a parameter may indicate a change in its semantic meaning. |
3 | 7th parameter data has been renamed to result. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count ) (1)
changed to:statement::statement [in-charge] ( connection& p1, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count )
[symbol: _ZN3odb5pgsql9statementC1ERNS0_10connectionERKSsS5_PKjj]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] statement::statement [not-in-charge] ( connection& p1, std::string const& name, std::string const& stmt, Oid const* types, std::size_t types_count ) (1)
changed to:statement::statement [not-in-charge] ( connection& p1, std::string const& name, std::string const& text, Oid const* types, std::size_t types_count )
[symbol: _ZN3odb5pgsql9statementC2ERNS0_10connectionERKSsS5_PKjj]
| Change | Effect |
---|
1 | 3rd parameter stmt has been renamed to text. | Renaming of a parameter may indicate a change in its semantic meaning. |
[+] update_statement::execute ( ) (1)
[symbol: _ZN3odb5pgsql16update_statement7executeEv]
| Change | Effect |
---|
1 | Type of return value has been changed from void to unsigned long long (8 bytes). | Replacement of return type may indicate a change in its semantic meaning. |
to the top
Header Files (30)
auto-handle.hxx
binding.hxx
config.h
config.hxx
connection-factory.hxx
connection.hxx
container-statements.hxx
database.hxx
endian-traits.hxx
error.hxx
exceptions.hxx
export.hxx
forward.hxx
object-result.hxx
object-statements.hxx
options.hxx
pgsql-fwd.hxx
pgsql-oid.hxx
pgsql-types.hxx
query.hxx
result.hxx
statement-cache.hxx
statement.hxx
statements-base.hxx
traits.hxx
transaction-impl.hxx
transaction.hxx
version.hxx
view-result.hxx
view-statements.hxx
to the top
Shared Libraries (1)
libodb-pgsql-1.6.so
to the top