API New Database abstraction layer. Ticket #7429
Database abstraction broken up into controller, connector, query builder, and schema manager, each independently configurable via YAML / Injector
Creation of new DBQueryGenerator for database specific generation of SQL
Support for parameterised queries, move of code base to use these over escaped conditions
Refactor of SQLQuery into separate query classes for each of INSERT UPDATE DELETE and SELECT
Support for PDO
Installation process upgraded to use new ORM
SS_DatabaseException created to handle database errors, maintaining details of raw sql and parameter details for user code designed interested in that data.
Renamed DB static methods to conform correctly to naming conventions (e.g. DB::getConn -> DB::get_conn)
Added alter and drop to list of database write operations
Added 3.2 upgrade docs
BUG Clarified behaviour of DataObject::get with a case-insensitive class name. Limit this test to MySQL for the sake of prudence.
BUG Fixed array to string conversion in MemberAuthenticator::authenticate
BUG Fixed issues with PDO running in native mode
BUG Fixed incorrect cacheKey generation in DataObject::get_one
BUG Fixed issue with composite fields in DataObject::write
BUG Fixed issue with test subclasses of Member interfering with security checking in BasicAuthTest
API DB naming requirements better conform to MySQL standard naming rules
API Prepared statement caching
API Option to allow for prepared statement emulation in PDO
API Added exec method to PDOConnector
API DBSchemaManager has 'notice' status flag for messages
Better use of DataList::filter, ::byID, and ::byIDs
Updated and replaced use of deprecated api
Fixed scrutinizer / test cases and updated PHPDoc
Performance Optimisation and simplification of code to use more concise API