a:22:{s:7:"attribs";a:6:{s:15:"packagerversion";s:5:"1.9.4";s:7:"version";s:3:"2.0";s:5:"xmlns";s:35:"http://pear.php.net/dtd/package-2.0";s:11:"xmlns:tasks";s:33:"http://pear.php.net/dtd/tasks-1.0";s:9:"xmlns:xsi";s:41:"http://www.w3.org/2001/XMLSchema-instance";s:18:"xsi:schemaLocation";s:147:"http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd";}s:4:"name";s:18:"MDB2_Driver_mysqli";s:7:"channel";s:12:"pear.php.net";s:7:"summary";s:18:"mysqli MDB2 driver";s:11:"description";s:31:"This is the MySQLi MDB2 driver.";s:4:"lead";a:2:{i:0;a:4:{s:4:"name";s:17:"Lukas Kahwe Smith";s:4:"user";s:6:"lsmith";s:5:"email";s:20:"smith@pooteeweet.org";s:6:"active";s:2:"no";}i:1;a:4:{s:4:"name";s:16:"Lorenzo Alberton";s:4:"user";s:5:"quipo";s:5:"email";s:19:"l.alberton@quipo.it";s:6:"active";s:3:"yes";}}s:4:"date";s:10:"2012-10-23";s:4:"time";s:8:"18:12:25";s:7:"version";a:2:{s:7:"release";s:7:"1.5.0b4";s:3:"api";s:7:"1.5.0b4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:7:"license";s:11:"BSD License";s:5:"notes";s:2210:"- Make varchar_max_length property public, Bug #19582.
- Revert 327099 by afz, caused "Notice: Undefined index: charset on line 1003"
- PEAR::isError() -> MDB2::isError(), Bug #19491.
- PEAR::loadExtension() -> extension_loaded(), Bug #19583.
- max value for VARCHAR is 65535 but if used multi-bytes (UTF8) so it is 21844, because UTF8 string takes 3bytes
- Fix Bug #19262. Updates conditional stagements to use logical operators to include MDB2_FETCHMODE_OBJECT where appropriate. Was broken in r321197.
- Have truncateTable() return MDB2_OK on success, as documented (bug 19201)
- Have alterTable() return MDB2_OK on success, as documented (bug 19200)
- Have dropIndex() return MDB2_OK on success, as documented (bug 19198)
- Have vacuum() return MDB2_OK on success, as documented (bug 19196)
- Have createIndex() return MDB2_OK on success, as documented (bug 19195)
- Have dropConstraint() return MDB2_OK on success, as documented (bug 19194)
- Have dropSequence() return MDB2_OK on success, as documented (bug 19191).
- Make setOption('result_wrap_class') actually useful by changing the default value of $result_wrap_class parameters from false to true.
- Obtain error information in _doQuery() because standaloneQuery() throws off $this->connection.
- FETCHMODE constants are NOT bitwise.
- Make $sql_comments public (was before, used in tests, no real harm).
- Property visibility
- boolean data type
- fixed bug #17984: Error is not reported when mysqli_stmt_bind_param() fails [dennylin93]
- fixed bug #18057: Result of getDeclaration() can have invalid syntax [hschletz]
- request #18068: mapNativeDatatype() returns decimal places also for 'float' mdb2type
- fixed bug #18203: Type introspection breaks with associative arrays if names are identical (patch by Peter Bex)
- fixed bug #17892: removed debug message [pdt256]
- fixed bug #17892: removed debug message [pdt256]
- fixed bug #17984: Error is not reported when mysqli_stmt_bind_param() fails [dennylin93]
- fixed bug #18057: Result of getDeclaration() can have invalid syntax [hschletz]
- request #18068: mapNativeDatatype() returns decimal places also for 'float' mdb2type

open todo items:
- use a trigger to emulate setting default now()";s:8:"contents";a:1:{s:3:"dir";a:2:{s:7:"attribs";a:2:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:1:"/";}s:4:"file";a:8:{i:0;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6c33730ebb0e8c53806479a8611291a5";s:4:"name";s:31:"MDB2/Driver/Datatype/mysqli.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:1;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"452b0e4454f67565256bd98bdd94a704";s:4:"name";s:31:"MDB2/Driver/Function/mysqli.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:2;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"1e484acb557e93cd2c52465183da75d4";s:4:"name";s:30:"MDB2/Driver/Manager/mysqli.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:3;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"95f279b48b5500f70e03dacca952ba5e";s:4:"name";s:29:"MDB2/Driver/Native/mysqli.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:4;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"745f8d860f04a332662c5c8400e2fcd2";s:4:"name";s:30:"MDB2/Driver/Reverse/mysqli.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:5;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"4e10d86cf32417b6b91d7bdb9ca8e1e3";s:4:"name";s:22:"MDB2/Driver/mysqli.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:6;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"707e367696fb405b397582b8f5376462";s:4:"name";s:34:"tests/Nonstandard/MysqliHelper.php";s:4:"role";s:4:"test";}}i:7;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"5633fb2015d8acbadba9028e6de30b36";s:4:"name";s:18:"package_mysqli.xml";s:4:"role";s:4:"data";}}}}}s:12:"dependencies";a:1:{s:8:"required";a:3:{s:3:"php";a:1:{s:3:"min";s:5:"5.2.0";}s:13:"pearinstaller";a:1:{s:3:"min";s:5:"1.9.1";}s:7:"package";a:3:{s:4:"name";s:4:"MDB2";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"2.5.0b4";}}}s:10:"phprelease";s:0:"";s:9:"changelog";a:1:{s:7:"release";a:23:{i:0;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"1.5.0b4";s:3:"api";s:7:"1.5.0b4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2012-10-23";s:7:"license";s:11:"BSD License";s:5:"notes";s:2210:"- Make varchar_max_length property public, Bug #19582.
- Revert 327099 by afz, caused "Notice: Undefined index: charset on line 1003"
- PEAR::isError() -> MDB2::isError(), Bug #19491.
- PEAR::loadExtension() -> extension_loaded(), Bug #19583.
- max value for VARCHAR is 65535 but if used multi-bytes (UTF8) so it is 21844, because UTF8 string takes 3bytes
- Fix Bug #19262. Updates conditional stagements to use logical operators to include MDB2_FETCHMODE_OBJECT where appropriate. Was broken in r321197.
- Have truncateTable() return MDB2_OK on success, as documented (bug 19201)
- Have alterTable() return MDB2_OK on success, as documented (bug 19200)
- Have dropIndex() return MDB2_OK on success, as documented (bug 19198)
- Have vacuum() return MDB2_OK on success, as documented (bug 19196)
- Have createIndex() return MDB2_OK on success, as documented (bug 19195)
- Have dropConstraint() return MDB2_OK on success, as documented (bug 19194)
- Have dropSequence() return MDB2_OK on success, as documented (bug 19191).
- Make setOption('result_wrap_class') actually useful by changing the default value of $result_wrap_class parameters from false to true.
- Obtain error information in _doQuery() because standaloneQuery() throws off $this->connection.
- FETCHMODE constants are NOT bitwise.
- Make $sql_comments public (was before, used in tests, no real harm).
- Property visibility
- boolean data type
- fixed bug #17984: Error is not reported when mysqli_stmt_bind_param() fails [dennylin93]
- fixed bug #18057: Result of getDeclaration() can have invalid syntax [hschletz]
- request #18068: mapNativeDatatype() returns decimal places also for 'float' mdb2type
- fixed bug #18203: Type introspection breaks with associative arrays if names are identical (patch by Peter Bex)
- fixed bug #17892: removed debug message [pdt256]
- fixed bug #17892: removed debug message [pdt256]
- fixed bug #17984: Error is not reported when mysqli_stmt_bind_param() fails [dennylin93]
- fixed bug #18057: Result of getDeclaration() can have invalid syntax [hschletz]
- request #18068: mapNativeDatatype() returns decimal places also for 'float' mdb2type

open todo items:
- use a trigger to emulate setting default now()";}i:1;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"1.5.0b3";s:3:"api";s:7:"1.5.0b3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2010-08-29";s:7:"license";s:11:"BSD License";s:5:"notes";s:591:"- fixed bug #16003: incorrect check for error after mysqli_store_result
- fixed bug #16147: first prepared statement is emulated when using factory with mysql
- fixed bug #17037: 'on update' not mentioned in tableInfo()
- fixed bug #17065: There is no NEW row in on DELETE trigger (fix error in FK constraint triggers)
- fixed bug #17650: lastInsertId can not handle bigint, forces cast to integer [alexpw]
- return ON UPDATE|DELETE action in getTableConstraintDefinition()
- result->free() now works on multiple result sets

open todo items:
- use a trigger to emulate setting default now()";}i:2;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"1.5.0b2";s:3:"api";s:7:"1.5.0b2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2009-01-14";s:7:"license";s:11:"BSD License";s:5:"notes";s:496:"- fixed bug #12117: disconnect() does not work as documented
- fixed bug #13412: sometimes getTableConstraintDefinition() fails for FOREIGN KEYs
- fixed bug #13581: wrong query in beginTransaction() for certain MySQL versions
- fixed bug #13928: Invalid triggers created for 'ON UPDATE'
- fixed bug #15051: Cannot create constraints with field length
- add index on FK column(s) or a FK constraint cannot be created in some cases

open todo items:
- use a trigger to emulate setting default now()";}i:3;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"1.5.0b1";s:3:"api";s:7:"1.5.0b1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2008-03-15";s:7:"license";s:11:"BSD License";s:5:"notes";s:1646:"- fixed bug #11831: createTable() now supports tables with a multi-field PRIMARY KEY
  where one field is defined as AUTO_INCREMENT
- request #11204: support AUTO_INCREMENT for FLOAT data type and UNSIGNED option
  for FLOAT and DECIMAL data type [afz]
- fixed bug #11692: value of $db->supports('transactions') changes after query [afz]
- request #12731: added truncateTable() in the Manager module
- request #12732: added vacuum() in the Manager module for OPTIMIZE/VACUUM TABLE abstraction
- request #12800: added alterDatabase() in the Manager module [afz]
- fixed quoting in createDatabase() in the Manager module
- fixed bug #12924: correctly handle internal expected errors even with custom error handling
- added standaloneQuery() and databaseExists()
- request #13106: added unixtimestamp() in the Function module
- fixed regexp in listTableConstraints() in the Manager module to list FOREIGN KEY constraints
- fixed bug #13180: MySQL driver tells SAVEPOINT is supported for MyISAM tables
- fixed bug #13283: replace() doesn't respect quote_identifiers option
- request #13313: setCharSet() supports 'COLLATE' too
- fixed bug #13370: some capabilities depend on user options, so check them after
  a setOption() call
- when triggers are supported, two triggers are created to emulate ON UPDATE / ON DELETE actions
  for FOREIGN KEY constraints. Known limitation: since mysql doesn't support multiple triggers
  with the same action time and event for one table, if there are multiple table referencing
  the same table, only the first one will have the triggers created.

open todo items:
- use a trigger to emulate setting default now()";}i:4;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"1.5.0a2";s:3:"api";s:7:"1.5.0a2";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2007-12-06";s:7:"license";s:11:"BSD License";s:5:"notes";s:194:"- fixed bug #12516: error in FK constraint creation query
- request #12012: added charset/collation support in createDatabase()

open todo items:
- use a trigger to emulate setting default now()";}i:5;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"1.5.0a1";s:3:"api";s:7:"1.5.0a1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2007-10-28";s:7:"license";s:11:"BSD License";s:5:"notes";s:1422:"- fixed bug #10024: Added new option 'lob_allow_url_include' (default false) to
  [dis]allow inserting a LOB from an url (file, http, ...).
- fixed bug #10986: Using more random statement names (request #11625)
- fixed bug #11055: Using placeholders with := variable assignment fails [bekarau]
- initial support for FOREIGN KEY constraints in the Manager and Reverse modules
- request #11389: added many new MySQL 5.1 error codes in errorInfo()
- fixed bug #11428: propagate quote() errors with invalid data types
- fixed bug in _modifyQuery() when using SELECT FOR UPDATE or similar queries
- fixed bug #11590: _getServerCapabilities() has to be called once per connection
- fixed bug #11790: avoid array_diff() because it has a memory leak in PHP 5.1.x
- fixed some E_STRICT errors with PHP5
- fixed bug #12010: MDB2_PORTABILITY_RTRIM option was ignored
- fixed bug #12083: createTable() in the Manager module now returns MDB2_OK on success,
  as documented
- request #12213: usage of mysqli_options 'MYSQLI_SET_CHARSET_NAME' and mysqli_set_charset()
  when available (patch by Carsten Wiedmann)
- fixed bug #12242: missing charset info in the Reverse module (patch by Carsten Wiedmann)
- fixed bug #12269: tableInfo() in the Reverse module detect 'clob' data type
  as first option
- fixed bug #12336: supply default value for NOT NULL timestamp fields

open todo items:
- use a trigger to emulate setting default now()";}i:6;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.4.1";s:3:"api";s:5:"1.4.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2007-05-03";s:7:"license";s:11:"BSD License";s:5:"notes";s:857:"- fixed bug #10378: incorrect query rewrite in setLimit() when using "FOR UPDATE"
  or "LOCK IN SHARE MODE" (thanks to priyadi) or "INTO OUTFILE" or "INTO DUMPFILE"
- fixed bug #10384: in setCharset(), use mysqli_real_escape_string() instead of
  mysql_real_escape_string()
- return length as "precision,scale" for NUMERIC and DECIMAL fields in mapNativeDatatype()
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
  module, also return the field position in the index/constraint
- fixed bug #10636: transactions broken in release 2.4.0 because of some properties
  being reset (thanks to Conor Kerr)
- fixed bug #10748: failed connections don't return native error code [urkle]
- fixed bug #10895: setLimit() does not work properly when a subquery uses LIMIT

open todo items:
- use a trigger to emulate setting default now()";}i:7;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.4.0";s:3:"api";s:5:"1.4.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2007-03-13";s:7:"license";s:11:"BSD License";s:5:"notes";s:1508:"- fixed bug #9283: missing support for BINARY/VARBINARY data types (thanks to Tom Hendrikx)
- propagate errors in getTableFieldDefinition() in the Reverse module
- implemented getTriggerDefinition() in the Reverse module (mysql > 5.0.2) [experimental]
- implemented listTableTriggers() in the Manager module (mysql > 5.0.2)
- implemented listFunctions() in the Manager module
- setCharset() now uses "SET NAMES" instead of "SET character_set_client"
- select the mysql database in listUsers() in the Manager module
- added error codes for MySQL 5 (patch by Adam Harvey)
- implemented guid() in the Function module [globally unique identifier]
- fixed bug #10033: beginTransaction() does not know server capabilities
- fixed bug #10057: createConstraint() returns an error when the definition is incomplete
- request #9451: you can set charset, collation, engine and comments in createSequence()
- implemented a fallback mechanism within getTableIndexDefinition() and
  getTableConstraintDefinition() in the Reverse module to ignore the 'idxname_format'
  option and use the index name as provided in case of failure before returning
  an error
- fixed bug #10181: propagate error when an invalid type is passed to prepare()
- added a 'nativetype_map_callback' option to map native data declarations back to
  custom data types (thanks to Andrew Hill).
- fixed bug #10239: execute() misinterprets MySQL's user defined variables
- phpdoc fixes

open todo items:
- use a trigger to emulate setting default now()";}i:8;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.3.0";s:3:"api";s:5:"2.3.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-11-03";s:7:"license";s:11:"BSD License";s:5:"notes";s:421:"- added charset and collation support to field declaration
- fixed bug #9024: typo in error checking
- fixed parameter order in charset setting fallback (Bug #8807)
- fix typos in error handling in a few places (bug #9024)
- typo fix in tableInfo (Bug #8925)
- do not skip id generation in nextId() when creating a sequence on demand
  because this prevents lastInsertID() from working
- migrated to package.xml version 2";}i:9;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.2.2";s:3:"api";s:5:"1.2.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-09-03";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:266:"- fixed single quote handling inside non emulated prepared statements (Bug #8538)
- flip positions property array in prepared statement objects to make it
  possible to optionally use the same named placeholder in multiple places
  inside a single prepared statement";}i:10;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.2.1";s:3:"api";s:5:"1.2.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-08-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1132:"- fixed issue in tableInfo() that originates in getTableFieldDefinition() which
  led to returning incorrect type values (Bug #8291)
- quote identifiers in the reverse module when 'quote_identifiers' is enabled (Bug #8309)
- use version_compare() to fix complex version comparisons (Bug #8355)
- do not use quote() in setCharset() since it is supposed to set the charset in
  the connection that was passed to it
- return an error if a named placeholder name is used twice inside a single statement
- do not list empty contraints and indexes
- added support for 'primary' option in createTable()
- fixed notnull reverse engineering on mysql 4.x (Bug #8415)
- do not set a default if type is a LOB (Request #8074)
- if a default value is set, then we need to use VARCHAR instead of TEXT
- removed _verifyTableType() since it just adds overhead, is hard to do reliably
  and you will get an error if the table type is not supported anyways
- fixed handling return values when disable_query is set in _doQuery() and _execute()
- only call RELEASE SAVEPOINT if the server version if 5.0.3 or higher
- increased MDB2 dependency too 2.2.1";}i:11;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.2.0";s:3:"api";s:5:"1.2.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-07-23";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:990:"- added ability to escape wildcard characters in escape() and quote()
- added setTransactionIsolation()
- added savepoint support to beginTransaction(), commit() and rollback()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added context array parameter to debug() and make use of it whereever sensible
- added optional method name parameter to raiseError() and use whereever possible
- added ability to escape wildcard characters in escape() and quote()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added 'nativetype' output to tableInfo() and getTableFieldDefinition()
- added 'mdb2type' output to getTableFieldDefinition()
- reworked tableInfo() to use a common implementation based on getTableFieldDefinition()
  when a table name is passed (Bug #8124)
- fixed incorrect regex in mapNativeDatatype() (Bug #8256) (thx ioz at ionosfera dot com)
- use old dsn when rolling back open transactions in disconnect()";}i:12;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.1.0";s:3:"api";s:5:"1.1.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-06-15";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1155:"- tweaked handling of free() for prepared statements
- return error if a prepared statement is attempted to be freed twice
- removed use of addslashes() for BLOB quoting
  (this might result in SQL injection vulnerability)
- added setCharset()
- use setCharset() in connect()/_doConnect()
- set transaction enabled engine as default
- generalized quoteIdentifier() with a property
- use general implementation of quoteIdentifier() (Bug #7738)
- fixed warning in replace() if type is not set (Bug #7740)
- cosmetic performance tweak in getTableFieldDefinition()
- switched most array_key_exists() calls to !empty() to improve readability and performance
- fixed a few edge cases and potential warnings
- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback
- pass limit and offset to the result object constructor in _execute() for read statements
- check if result/connection has not yet been freed/dicsonnected before
  attempting to free a result set(Bug #7790)
- fixed unbuffered query support
- revert change that would prefer 'clob' over 'text' for TEXT fields
  (this was breaking runtime instrospection)";}i:13;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.0.3";s:3:"api";s:5:"1.0.3";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-05-22";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:210:"- fixed unsigned handling and minor tweaks to type mapping in mapNativeDatatype()
- use emulated prepared statements on mysql 4.0 or lower
- added "emulate_prepared" option to force prepared statement emulation";}i:14;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.0.2";s:3:"api";s:5:"1.0.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-05-14";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:986:"- optimized listTables() and listViews()
- optimized show related queries
- merged in some features and fixes from the mysql driver
- explicitly set is_manip parameter to false for transaction debug calls
- pass parameter array as debug() all with scope "parameters" in every execute()
  call (bug #4119)
- silently change name of primary key contraints to PRIMARY
- added ability to hint that a constraint is a primary key in dropConstraint()
- typo fixes in phpdoc (thx Stoyan)
- added support for fixed and variable types for 'text' in declarations,
  as well as in reverse engineering (Request #1523)
- made _doQuery() return a reference
- added userinfo's to all raiseError calls that previously had none
- use native prepared queries for prepared SELECT statements
- only use native prepared queries of mysql 4.1 or higher
- added 'prepared_statements' supported meta data setting
- fixed issue with free() returning void
- added missing supported parameter to prepare() signature";}i:15;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.0.1";s:3:"api";s:5:"1.0.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-04-16";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:704:"- fixed length handling in tableInfo() (bug #6887)
- aligned _modifyQuery() signature and phpdoc
- added support for tabe options in createTable() (bug ##7079)
- added optional database parameter to listTables() and listSequences()
- added 'result_introspection' supported metadata support
- properly quote table names in tableInfo() (related to bug #6573)
- use connected_server_info in getServerVersion() as a cache cache
- use parent::disconnect() in disconnect()
- added support for length in integer reverse engineering
- some fixes regarding boolean reverse engineering
- added listViews() and hide views in listTables()

open todo item:
- use native prepared queries for prepared SELECT statements";}i:16;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.0.0";s:3:"api";s:5:"1.0.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-02-09";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:157:"- handle null as resource when disable_query option is enabled in result object

open todo item:
- use native prepared queries for prepared SELECT statements";}i:17;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"0.2.4";s:3:"api";s:5:"0.2.4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2006-02-05";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:817:"- typo fix in getTableConstraintDefinition() (bug #6487)
- added support for length in integer and decimal columns
- removed ugly hack for quote parameter in quote() since it was insufficient
  (escaping also needs to be prevented)
- added support for out of order parameter binding in prepared queries
- reset row_limit and row_offset after calling prepare() just like we do for query() and exec()
- cosmetic fix (removed "row_" prefix from "row_limit" and "row_offset")
- now using TINYINT(1) by default instead of CHAR(1) for the boolean datatype (BC BREAK!)
- typo fix in error message in createTable()
- improved parsing in getServerInfo() (bug #6550)
- fixed subselect emulation
- support an arbitrary number of arguments in concat()

open todo item:
- use native prepared queries for prepared SELECT statements";}i:18;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"0.2.3";s:3:"api";s:5:"0.2.3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2006-01-13";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:967:"- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226)
- properly handle PRIMARY keys in listTableConstraints()
- apply _isIndexName() on non primary keys in getTableConstraintDefinition()
- initial implementation of multi_query option (bug #6418)
- added error handling in prepare()
- use multi_query option in executeStoredProc() (bug #6418)
- fixed signature of quoteIdentifier() to make second param optional
- fixed signature of executeStoredProc()
- typo fixes in error handling of nextResult() and numRows() calls
- added @ in front of a few more mysqli calls
- _fixIndexName() now just attempts to remove possible formatting
- renamed _isSequenceName() to _fixSequenceName()
- _fixSequenceName() now just attempts to remove possible formatting, and only
  returns a boolean if no formatting was applied when the new "check" parameter is set to true

open todo item:
- use native prepared queries for prepared SELECT statements";}i:19;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"0.2.2";s:3:"api";s:5:"0.2.2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-30";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:136:"- moved state to beta
- fixed typo in sub select detection

open todo item:
- use native prepared queries for prepared SELECT statements";}i:20;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"0.2.1";s:3:"api";s:5:"0.2.1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2005-12-28";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:186:"- use emulated prepared queries for non manip prepared queries
- proper quote new table name in alterTable()

open todo item:
- use native prepared queries for prepared SELECT statements";}i:21;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"0.2.0";s:3:"api";s:5:"0.2.0";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2005-12-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1808:"- do not fix case in listUsers()
- unified case fixing in the list*() methods
- fixed change and rename in alterTable()
- primary key must be called primary
- use getConnection() to access connection property
- split index and constraint handling
- quote identifiers where possible inside the manager methods depending on
  the new 'quote_identifier' option (defaults to off)
- refactored get*Declaration() methods to use getTypeDeclaration()
- setting in_transaction to false on disconnect
- hide constraints from indexes and vice versa in the list methods
- added new Function modules to handle difference in SQL functions
- force rollback() with open transactions on disconnect
- fixed table renaming
- escape floats to make sure they do not contain evil characters (bug #5608)
- do not check with === if ssl is enabled
- fixed LOB handling
- support column length in create index (mysql only feature, but a nice touch,
  emulating it with substring is not feasible though)
- split off manipulation queries into exec() method from the query() method *BC BREAK*
- if result_types is set to false in prepare() method the query will be handled as a DML statement *BC BREAK*
- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930)
- added ability to determine unsigned in mapNativeDatatype()
  (only really implemented in the mysql(i) drivers) (bug #6054)
- use MDB2_ERROR_NOT_FOUND in getTableConstraintDefinition() and getTableIndexDefinition() (bug #6055)
- use lastInsertID() method in nextID()
- added getServerVersion() and use it to determine sub select support
- unified array structure in mapNativeDatatype() *BC BREAK*
- added 'mdbtype' to tableInfo() output that is generated from mapNativeDatatype()
- changed 'len' to 'length' in tableInfo() output *BC BREAK*";}i:22;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"0.1.1";s:3:"api";s:5:"0.1.1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2005-10-10";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1964:"Warning: this release features numerous BC breaks!

There have been considerable improvements to the datatype, manager and reverse
modules. Furthermore preliminary support for auto increment and primary keys
has been added. Please note that making a field auto increment implies a single
column primary key on this field.

- added support for auto increment and primary key in schema.
- alterTable now needs the full definition to work (use getTableFieldDefinition
 from Reverse module if you do not have a definition at hand) this eliminates the need
 of the declaration part in the alterTable array.
- removed support for dummy_primary_key
- fix PHP4.4 breakage
- moved getInsertID() into core as lastInsertID()
- all non LOB values were quoted twice in execute()
- clobs only need to be mapped to binary when using mysqli_stmt_send_long_data()
  which is handled independently
- use !empty() instead of isset() in fetchRow to determine if result cols were bound or result types were set
- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray()
- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362)
- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons
- renamed MDB2_PORTABILITY_LOWERCASE to MDB2_PORTABILITY_FIX_CASE and use 'field_case' option to determine if to upper- or lowercase (CASE_LOWER/CASE_UPPER)
- count() -> !empty() where possible
- use array_map() instead of array_flip(array_change_key_case(array_flip())) to fix case of array values
- use array_key_exists() instead of isset() where possible
- changed structure of field add/remove/change in alterTable() to match MDB2_Schema
- removed subSelect() implementation (now in already included in common)
- return 0 for manipulation queries when disable_query is enabled
- tweaked getTableFieldDefinition() in reverse module

open todo items:
- fixed LOB support";}}}s:8:"filelist";a:8:{s:31:"MDB2/Driver/Datatype/mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6c33730ebb0e8c53806479a8611291a5";s:4:"name";s:31:"MDB2/Driver/Datatype/mysqli.php";s:4:"role";s:3:"php";s:12:"installed_as";s:52:"/usr/pkg/lib/php/8.2/MDB2/Driver/Datatype/mysqli.php";}s:31:"MDB2/Driver/Function/mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"452b0e4454f67565256bd98bdd94a704";s:4:"name";s:31:"MDB2/Driver/Function/mysqli.php";s:4:"role";s:3:"php";s:12:"installed_as";s:52:"/usr/pkg/lib/php/8.2/MDB2/Driver/Function/mysqli.php";}s:30:"MDB2/Driver/Manager/mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"1e484acb557e93cd2c52465183da75d4";s:4:"name";s:30:"MDB2/Driver/Manager/mysqli.php";s:4:"role";s:3:"php";s:12:"installed_as";s:51:"/usr/pkg/lib/php/8.2/MDB2/Driver/Manager/mysqli.php";}s:29:"MDB2/Driver/Native/mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"95f279b48b5500f70e03dacca952ba5e";s:4:"name";s:29:"MDB2/Driver/Native/mysqli.php";s:4:"role";s:3:"php";s:12:"installed_as";s:50:"/usr/pkg/lib/php/8.2/MDB2/Driver/Native/mysqli.php";}s:30:"MDB2/Driver/Reverse/mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"745f8d860f04a332662c5c8400e2fcd2";s:4:"name";s:30:"MDB2/Driver/Reverse/mysqli.php";s:4:"role";s:3:"php";s:12:"installed_as";s:51:"/usr/pkg/lib/php/8.2/MDB2/Driver/Reverse/mysqli.php";}s:22:"MDB2/Driver/mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"4e10d86cf32417b6b91d7bdb9ca8e1e3";s:4:"name";s:22:"MDB2/Driver/mysqli.php";s:4:"role";s:3:"php";s:12:"installed_as";s:43:"/usr/pkg/lib/php/8.2/MDB2/Driver/mysqli.php";}s:34:"tests/Nonstandard/MysqliHelper.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"707e367696fb405b397582b8f5376462";s:4:"name";s:34:"tests/Nonstandard/MysqliHelper.php";s:4:"role";s:4:"test";s:12:"installed_as";s:79:"/usr/pkg/lib/php/8.2/test/MDB2_Driver_mysqli/tests/Nonstandard/MysqliHelper.php";}s:18:"package_mysqli.xml";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"5633fb2015d8acbadba9028e6de30b36";s:4:"name";s:18:"package_mysqli.xml";s:4:"role";s:4:"data";s:12:"installed_as";s:63:"/usr/pkg/lib/php/8.2/data/MDB2_Driver_mysqli/package_mysqli.xml";}}s:12:"_lastversion";N;s:7:"dirtree";a:11:{s:41:"/usr/pkg/lib/php/8.2/MDB2/Driver/Datatype";b:1;s:32:"/usr/pkg/lib/php/8.2/MDB2/Driver";b:1;s:25:"/usr/pkg/lib/php/8.2/MDB2";b:1;s:41:"/usr/pkg/lib/php/8.2/MDB2/Driver/Function";b:1;s:40:"/usr/pkg/lib/php/8.2/MDB2/Driver/Manager";b:1;s:39:"/usr/pkg/lib/php/8.2/MDB2/Driver/Native";b:1;s:40:"/usr/pkg/lib/php/8.2/MDB2/Driver/Reverse";b:1;s:62:"/usr/pkg/lib/php/8.2/test/MDB2_Driver_mysqli/tests/Nonstandard";b:1;s:50:"/usr/pkg/lib/php/8.2/test/MDB2_Driver_mysqli/tests";b:1;s:44:"/usr/pkg/lib/php/8.2/test/MDB2_Driver_mysqli";b:1;s:44:"/usr/pkg/lib/php/8.2/data/MDB2_Driver_mysqli";b:1;}s:3:"old";a:7:{s:7:"version";s:7:"1.5.0b4";s:12:"release_date";s:10:"2012-10-23";s:13:"release_state";s:4:"beta";s:15:"release_license";s:11:"BSD License";s:13:"release_notes";s:2210:"- Make varchar_max_length property public, Bug #19582.
- Revert 327099 by afz, caused "Notice: Undefined index: charset on line 1003"
- PEAR::isError() -> MDB2::isError(), Bug #19491.
- PEAR::loadExtension() -> extension_loaded(), Bug #19583.
- max value for VARCHAR is 65535 but if used multi-bytes (UTF8) so it is 21844, because UTF8 string takes 3bytes
- Fix Bug #19262. Updates conditional stagements to use logical operators to include MDB2_FETCHMODE_OBJECT where appropriate. Was broken in r321197.
- Have truncateTable() return MDB2_OK on success, as documented (bug 19201)
- Have alterTable() return MDB2_OK on success, as documented (bug 19200)
- Have dropIndex() return MDB2_OK on success, as documented (bug 19198)
- Have vacuum() return MDB2_OK on success, as documented (bug 19196)
- Have createIndex() return MDB2_OK on success, as documented (bug 19195)
- Have dropConstraint() return MDB2_OK on success, as documented (bug 19194)
- Have dropSequence() return MDB2_OK on success, as documented (bug 19191).
- Make setOption('result_wrap_class') actually useful by changing the default value of $result_wrap_class parameters from false to true.
- Obtain error information in _doQuery() because standaloneQuery() throws off $this->connection.
- FETCHMODE constants are NOT bitwise.
- Make $sql_comments public (was before, used in tests, no real harm).
- Property visibility
- boolean data type
- fixed bug #17984: Error is not reported when mysqli_stmt_bind_param() fails [dennylin93]
- fixed bug #18057: Result of getDeclaration() can have invalid syntax [hschletz]
- request #18068: mapNativeDatatype() returns decimal places also for 'float' mdb2type
- fixed bug #18203: Type introspection breaks with associative arrays if names are identical (patch by Peter Bex)
- fixed bug #17892: removed debug message [pdt256]
- fixed bug #17892: removed debug message [pdt256]
- fixed bug #17984: Error is not reported when mysqli_stmt_bind_param() fails [dennylin93]
- fixed bug #18057: Result of getDeclaration() can have invalid syntax [hschletz]
- request #18068: mapNativeDatatype() returns decimal places also for 'float' mdb2type

open todo items:
- use a trigger to emulate setting default now()";s:12:"release_deps";a:3:{i:0;a:4:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"5.2.0";s:8:"optional";s:2:"no";}i:1;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.9.1";s:8:"optional";s:2:"no";}i:2;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"MDB2";s:3:"rel";s:2:"ge";s:7:"version";s:7:"2.5.0b4";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:2:{i:0;a:5:{s:4:"name";s:17:"Lukas Kahwe Smith";s:5:"email";s:20:"smith@pooteeweet.org";s:6:"active";s:2:"no";s:6:"handle";s:6:"lsmith";s:4:"role";s:4:"lead";}i:1;a:5:{s:4:"name";s:16:"Lorenzo Alberton";s:5:"email";s:19:"l.alberton@quipo.it";s:6:"active";s:3:"yes";s:6:"handle";s:5:"quipo";s:4:"role";s:4:"lead";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1787366298;}