Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
a:25:{s:7:"attribs";a:6:{s:15:"packagerversion";s:5:"1.5.3";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:4:"MDB2";s:7:"channel";s:12:"pear.php.net";s:7:"extends";s:3:"MDB";s:7:"summary";s:26:"database abstraction layer";s:11:"description";s:1379:"PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers.
2
 
3
It provides a common API for all supported RDBMS. The main difference to most
4
other DB abstraction packages is that MDB2 goes much further to ensure
5
portability. MDB2 provides most of its many features optionally that
6
can be used to construct portable SQL statements:
7
* Object-Oriented API
8
* A DSN (data source name) or array format for specifying database servers
9
* Datatype abstraction and on demand datatype conversion
10
* Various optional fetch modes to fix portability issues
11
* Portable error codes
12
* Sequential and non sequential row fetching as well as bulk fetching
13
* Ability to make buffered and unbuffered queries
14
* Ordered array and associative array for the fetched rows
15
* Prepare/execute (bind) named and unnamed placeholder emulation
16
* Sequence/autoincrement emulation
17
* Replace emulation
18
* Limited sub select emulation
19
* Row limit emulation
20
* Transactions/savepoint support
21
* Large Object support
22
* Index/Unique Key/Primary Key support
23
* Pattern matching abstraction
24
* Module framework to load advanced functionality on demand
25
* Ability to read the information schema
26
* RDBMS management methods (creating, dropping, altering)
27
* Reverse engineering schemas from an existing database
28
* SQL function call abstraction
29
* Full integration into the PEAR Framework
30
* PHPDoc API documentation";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:11:"contributor";a:4:{s:4:"name";s:11:"Paul Cooper";s:4:"user";s:3:"pgc";s:5:"email";s:14:"pgc@ucecom.com";s:6:"active";s:2:"no";}s:6:"helper";a:2:{i:0;a:4:{s:4:"name";s:16:"Daniel Convissor";s:4:"user";s:7:"danielc";s:5:"email";s:15:"danielc@php.net";s:6:"active";s:3:"yes";}i:1;a:4:{s:4:"name";s:14:"David Coallier";s:4:"user";s:6:"davidc";s:5:"email";s:17:"david@jaws.com.mx";s:6:"active";s:3:"yes";}}s:4:"date";s:10:"2007-05-03";s:4:"time";s:8:"20:58:15";s:7:"version";a:2:{s:7:"release";s:5:"2.4.1";s:3:"api";s:5:"2.4.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:7:"license";s:11:"BSD License";s:5:"notes";s:2022:"- fixed bug #10407: propagate errors in MDB2_Statement_Common::execute()
31
- fixed bug #10452: error in getDeclaration() with custom datatype_map and no
32
  datatype_map_callback function
33
- fixed bug #10521: quote($val,'decimal') and quote($val,'float') pass unsafe characters
34
- return length as "precision,scale" for NUMERIC and DECIMAL fields in mapNativeDatatype()
35
- fixed bug #10537: safer check for valid MDB2 connection in singleton() [fornax]
36
- fixed bug #10598: MDB2::singleton() not working in some rare conditions [fornax]
37
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
38
  module, also return the field position in the index/constraint
39
- exec() now returns a reference instead of a copy to prevent memory leaks
40
- request #10787: MDB2_Driver_Common::$phptype and $dbsyntax properties are now public
41
 
42
open todo items:
43
- handle autoincrement fields in alterTable()
44
- add length handling to LOB reverse engineering
45
- add EXPLAIN abstraction
46
- add cursor support along the lines of PDO (Request #3660 etc.)
47
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
48
- add support to export/import in CSV format
49
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
50
- add support for database/table/row LOCKs
51
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
52
- generate STATUS file from test suite results and allow users to submit test results
53
- add support for full text index creation and querying
54
- add tests to check if the RDBMS specific handling with portability options
55
  disabled behaves as expected
56
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
57
- add a getTableFieldsDefinitions() method to be used in tableInfo()
58
- drop ILIKE from matchPattern() and instead add a second parameter to
59
  handle case sensitivity with arbitrary operators
60
- add charset and collation support to field declaration in all drivers
61
- handle LOBs in buffered result sets (Request #8793)";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:53:{i:0;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b5cd8d01a36258caa0c4eb7e3478c219";s:4:"name";s:25:"docs/examples/example.php";s:4:"role";s:3:"doc";}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:"dd25c9a1d24d945ef0c3cb2fc889a070";s:4:"name";s:30:"docs/examples/example_php5.php";s:4:"role";s:3:"doc";}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:"74b2bb45de61eccbffed7d75d5268af9";s:4:"name";s:37:"docs/examples/metapear_test_db.schema";s:4:"role";s:3:"doc";}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:"a253b37e185622112acfef6c94b79aef";s:4:"name";s:17:"docs/CONTRIBUTORS";s:4:"role";s:3:"doc";}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:"cc1befe78146094be02f89bbb201b4ab";s:4:"name";s:19:"docs/datatypes.html";s:4:"role";s:3:"doc";}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:"a70b17bcd8e56911f74a4dff61a3ff8d";s:4:"name";s:16:"docs/MAINTAINERS";s:4:"role";s:3:"doc";}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:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c7b68ea23aa2ae6d91913703a2246f15";s:4:"name";s:11:"docs/README";s:4:"role";s:3:"doc";}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:7;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f9858c9327499e60db66621a817c66a4";s:4:"name";s:11:"docs/STATUS";s:4:"role";s:3:"doc";}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:8;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ec0c4383ddfd3af69d577344d0d5b4dd";s:4:"name";s:9:"docs/TODO";s:4:"role";s:3:"doc";}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:9;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"0c87967f991c8dd76240735e4244d0c9";s:4:"name";s:31:"MDB2/Driver/Datatype/Common.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:10;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"7302578a918db5a4465891c754d167da";s:4:"name";s:31:"MDB2/Driver/Function/Common.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:11;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"459831f86db78b16887d138207250fd9";s:4:"name";s:30:"MDB2/Driver/Manager/Common.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:12;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"005901a0e84f6ff717e0847f0a3faf14";s:4:"name";s:29:"MDB2/Driver/Native/Common.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:13;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"edf3e1b0c845dedf7473960e632c8c21";s:4:"name";s:30:"MDB2/Driver/Reverse/Common.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:14;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"af81dd360b2d2d09f8c978214b06a553";s:4:"name";s:13:"MDB2/Date.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:15;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"0aad199da225ee0eabe9eb16e7ef8e72";s:4:"name";s:17:"MDB2/Extended.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:16;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"023c4bda6db2d8f277d8d3c76dc8f850";s:4:"name";s:17:"MDB2/Iterator.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:17;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"bd83458d9b7a044cb44956244a584849";s:4:"name";s:12:"MDB2/LOB.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:18;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"01d41e566bdb62c7bcb432c8039dda9a";s:4:"name";s:16:"tests/basic.phpt";s:4:"role";s:4:"test";}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:19;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d67ccf96fabd2e95fa57a7ea76549349";s:4:"name";s:17:"tests/clitest.php";s:4:"role";s:4:"test";}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:20;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c90cdd55233d9ef470150c06a946d213";s:4:"name";s:16:"tests/config.php";s:4:"role";s:4:"test";}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:21;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2a2c534ab4afb0c05ca9d7ca47815bf5";s:4:"name";s:30:"tests/Console_TestListener.php";s:4:"role";s:4:"test";}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:22;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"19ef782cc5be7de11c369889a74044d5";s:4:"name";s:28:"tests/driver_test.schema.xml";s:4:"role";s:4:"test";}}i:23;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d46a8f267dbd54f0c7ff55e479d33e7e";s:4:"name";s:27:"tests/HTML_TestListener.php";s:4:"role";s:4:"test";}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:24;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ff346ecb984d644ec23584ddb02527b5";s:4:"name";s:23:"tests/import.schema.php";s:4:"role";s:4:"test";}}i:25;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b56138622fdae4c539b7be33fb7d957e";s:4:"name";s:27:"tests/MDB2_api_testcase.php";s:4:"role";s:4:"test";}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:26;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"9ddc66748dd375105b4ffda677f57e41";s:4:"name";s:28:"tests/MDB2_bugs_testcase.php";s:4:"role";s:4:"test";}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:27;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f8534befe37efc7f35beb0897b75f951";s:4:"name";s:27:"tests/MDB2_Connect_Test.php";s:4:"role";s:4:"test";}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:28;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"73383f476c1788a49831fcf5daeef744";s:4:"name";s:32:"tests/MDB2_datatype_testcase.php";s:4:"role";s:4:"test";}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:29;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"52612ab88c430f08e108d146b46a57d2";s:4:"name";s:32:"tests/MDB2_extended_testcase.php";s:4:"role";s:4:"test";}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:30;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ca4ad92dd091bc59b0f0be14b8cfdc0c";s:4:"name";s:32:"tests/MDB2_function_testcase.php";s:4:"role";s:4:"test";}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:31;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"e063e6c063d963de546c3bd90cb25283";s:4:"name";s:33:"tests/MDB2_internals_testcase.php";s:4:"role";s:4:"test";}}i:32;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"802fce3b33dfff70dbe2ca20c2671409";s:4:"name";s:31:"tests/MDB2_manager_testcase.php";s:4:"role";s:4:"test";}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:33;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"22be0efc5b2b81bd6cd6ebe31747445e";s:4:"name";s:30:"tests/MDB2_native_testcase.php";s:4:"role";s:4:"test";}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:34;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"92fcbe9e6c2efc8290437d3c87507583";s:4:"name";s:26:"tests/MDB2_nonstandard.php";s:4:"role";s:4:"test";}}i:35;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"32504b5dd5ff479da628abd6f96753c3";s:4:"name";s:32:"tests/MDB2_nonstandard_ibase.php";s:4:"role";s:4:"test";}}i:36;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dee3b6f3069fe286c304ca32b77dbe99";s:4:"name";s:32:"tests/MDB2_nonstandard_mssql.php";s:4:"role";s:4:"test";}}i:37;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"1766c43f50ce08418b524a6047462e4d";s:4:"name";s:32:"tests/MDB2_nonstandard_mysql.php";s:4:"role";s:4:"test";}}i:38;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"14f12bd33f7212d51b400e0a3ea9dff9";s:4:"name";s:33:"tests/MDB2_nonstandard_mysqli.php";s:4:"role";s:4:"test";}}i:39;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d8c9287b3614da53d818ef86bfc9ef86";s:4:"name";s:31:"tests/MDB2_nonstandard_oci8.php";s:4:"role";s:4:"test";}}i:40;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"3e790ed8bf0b3b91ec518cdab9eba271";s:4:"name";s:32:"tests/MDB2_nonstandard_pgsql.php";s:4:"role";s:4:"test";}}i:41;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"54882586bf87e9f3b5d5ab9a20e3e5f7";s:4:"name";s:33:"tests/MDB2_nonstandard_sqlite.php";s:4:"role";s:4:"test";}}i:42;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b29a49619cf11ba7f531bb806b25619b";s:4:"name";s:31:"tests/MDB2_reverse_testcase.php";s:4:"role";s:4:"test";}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:43;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2925fd7431313d5df54e068544f8982f";s:4:"name";s:23:"tests/MDB2_testcase.php";s:4:"role";s:4:"test";}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:44;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d56f2bd9b951bab6646f00ceeb4fd986";s:4:"name";s:29:"tests/MDB2_usage_testcase.php";s:4:"role";s:4:"test";}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:45;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ca453d042076964cbd3350902ad25fa6";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";}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:46;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a2c50ccea24f7bdd5439b366608d59d5";s:4:"name";s:14:"tests/test.php";s:4:"role";s:4:"test";}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:47;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dc05c6cc4540981d350ccac2005c2578";s:4:"name";s:20:"tests/testchoose.php";s:4:"role";s:4:"test";}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:48;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"3c4d2c9d89398c5692d36299d98f9c6e";s:4:"name";s:15:"tests/tests.css";s:4:"role";s:4:"test";}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:49;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"841447ae8672a6779166791d0bf6ec03";s:4:"name";s:19:"tests/testUtils.php";s:4:"role";s:4:"test";}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:50;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c30bfb476b678d53c7f5e158bde7d9a9";s:4:"name";s:25:"tests/test_setup.php.dist";s:4:"role";s:4:"test";}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:51;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a5019765abfd14334f25231c61c568ef";s:4:"name";s:7:"LICENSE";s:4:"role";s:4:"data";}}i:52;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"0d4093f6d7db5ec64434116b700e9a82";s:4:"name";s:8:"MDB2.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";}}}}}}s:12:"dependencies";a:2:{s:8:"required";a:3:{s:3:"php";a:1:{s:3:"min";s:5:"4.3.2";}s:13:"pearinstaller";a:1:{s:3:"min";s:7:"1.4.0b1";}s:7:"package";a:3:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.3.6";}}s:5:"group";a:9:{i:0;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:29:"Frontbase SQL driver for MDB2";s:4:"name";s:5:"fbsql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_fbsql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.3.0";}}i:1;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:34:"Interbase/Firebird driver for MDB2";s:4:"name";s:5:"ibase";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_ibase";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.1";}}i:2;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:21:"MySQL driver for MDB2";s:4:"name";s:5:"mysql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_mysql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.1";}}i:3;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:22:"MySQLi driver for MDB2";s:4:"name";s:6:"mysqli";}s:10:"subpackage";a:3:{s:4:"name";s:18:"MDB2_Driver_mysqli";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.1";}}i:4;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:29:"MS SQL Server driver for MDB2";s:4:"name";s:5:"mssql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_mssql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.2.1";}}i:5;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:22:"Oracle driver for MDB2";s:4:"name";s:4:"oci8";}s:10:"subpackage";a:3:{s:4:"name";s:16:"MDB2_Driver_oci8";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.1";}}i:6;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:26:"PostgreSQL driver for MDB2";s:4:"name";s:5:"pgsql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_pgsql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.1";}}i:7;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:24:"Querysim driver for MDB2";s:4:"name";s:8:"querysim";}s:10:"subpackage";a:3:{s:4:"name";s:20:"MDB2_Driver_querysim";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.6.0";}}i:8;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:23:"SQLite2 driver for MDB2";s:4:"name";s:6:"sqlite";}s:10:"subpackage";a:3:{s:4:"name";s:18:"MDB2_Driver_sqlite";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.1";}}}}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:5:"2.4.1";s:3:"api";s:5:"2.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:2022:"- fixed bug #10407: propagate errors in MDB2_Statement_Common::execute()
62
- fixed bug #10452: error in getDeclaration() with custom datatype_map and no
63
  datatype_map_callback function
64
- fixed bug #10521: quote($val,'decimal') and quote($val,'float') pass unsafe characters
65
- return length as "precision,scale" for NUMERIC and DECIMAL fields in mapNativeDatatype()
66
- fixed bug #10537: safer check for valid MDB2 connection in singleton() [fornax]
67
- fixed bug #10598: MDB2::singleton() not working in some rare conditions [fornax]
68
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
69
  module, also return the field position in the index/constraint
70
- exec() now returns a reference instead of a copy to prevent memory leaks
71
- request #10787: MDB2_Driver_Common::$phptype and $dbsyntax properties are now public
72
 
73
open todo items:
74
- handle autoincrement fields in alterTable()
75
- add length handling to LOB reverse engineering
76
- add EXPLAIN abstraction
77
- add cursor support along the lines of PDO (Request #3660 etc.)
78
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
79
- add support to export/import in CSV format
80
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
81
- add support for database/table/row LOCKs
82
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
83
- generate STATUS file from test suite results and allow users to submit test results
84
- add support for full text index creation and querying
85
- add tests to check if the RDBMS specific handling with portability options
86
  disabled behaves as expected
87
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
88
- add a getTableFieldsDefinitions() method to be used in tableInfo()
89
- drop ILIKE from matchPattern() and instead add a second parameter to
90
  handle case sensitivity with arbitrary operators
91
- add charset and collation support to field declaration in all drivers
92
- handle LOBs in buffered result sets (Request #8793)";}i:1;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.4.0";s:3:"api";s:5:"2.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:2758:"- propagate errors in getTableFieldDefinition() in the Reverse module
93
- internally use MDB2::classExists() wrapper instead of directly calling class_exists()
94
- fixed bug #9502: query result misbehaves when the number of returned columns
95
  is greater than the number of passed types
96
- fixed bug #9748: Table name is not quoted in Extended.php buildManipSQL()
97
- fixed bug #9800: when the php extension for the driver fails to load, the
98
  error is not propagated correctly and the script dies
99
- propagate errors in the Datatype module
100
- implemented guid() in the Function module [globally unique identifier]
101
  (thanks to mario dot adam at schaeffler dot com)
102
- fixed bug #4854: Oracle Easy Connect syntax only works with array DSN
103
- fixed bug #10105: inTransaction() was returning an incorrect value after a call
104
  to disconnect() or __destruct()
105
- implemented a fallback mechanism within getTableIndexDefinition() and
106
  getTableConstraintDefinition() in the Reverse module to ignore the 'idxname_format'
107
  option and use the index name as provided in case of failure before returning
108
  an error
109
- added a 'nativetype_map_callback' option to map native data declarations back to
110
  custom data types (thanks to Andrew Hill).
111
- fixed bug #10234 and bug #10233: MDB2_Driver_Datatype_Common::mapNativeDatatype()
112
  must ensure that it returns the correct length value, or null
113
- added support for TEMPORARY tables (patch by Andrew Hill)
114
- phpdoc fixes
115
- fixed tests to be compatible with PHP4
116
- added new tests, including some MDB2 internals tests by Andrew Hill and Monique Szpak
117
 
118
open todo items:
119
- handle autoincrement fields in alterTable()
120
- add length handling to LOB reverse engineering
121
- add EXPLAIN abstraction
122
- add cursor support along the lines of PDO (Request #3660 etc.)
123
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
124
- add support to export/import in CSV format
125
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
126
- add support for database/table/row LOCKs
127
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
128
- generate STATUS file from test suite results and allow users to submit test results
129
- add support for full text index creation and querying
130
- add tests to check if the RDBMS specific handling with portability options
131
  disabled behaves as expected
132
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
133
- add a getTableFieldsDefinitions() method to be used in tableInfo()
134
- drop ILIKE from matchPattern() and instead add a second parameter to
135
  handle case sensitivity with arbitrary operators
136
- add charset and collation support to field declaration in all drivers
137
- handle LOBs in buffered result sets (Request #8793)";}i:2;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.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:3085:"- added charset and collation support to field declaration
138
- added SQL comments and quoted identifier handling inside prepared statement parser
139
- expanded length/scale support for numeric types (Request #7170)
140
- added statement_format option to make it possible to define the name used for
141
  native statements if supported
142
- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute()
143
- fixed notice in exec() call in autoExecute()
144
- reversed if logic in MDB2::fileExists checking to be more fool proof with
145
  safe_mode restrictions (Bug #8296)
146
- moved CREATE TABLE query generation in a separate method for reuse in the drivers
147
- added testLOBRead to test multiple LOB reads
148
- fixed getColumnNames() optional parameter handling (Bug #8857)
149
- phpdoc fix for fetchCol/fetchAll
150
- added an extra if in the autoExecute method of the Extended driver (Bug #8878)
151
- expanded tableInfo() tests
152
- expanded prepare() tests
153
- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107)
154
- add test for lastInsertID()
155
- also output php version in test results
156
- added supported 'new_link'
157
- dropped use of track_errors because 5.2.0 causes php_errormsg to not get
158
  populated if a custom error handler is set and it was causing issues for
159
  safe_mode users anyways
160
- added some error handling into the bindValues()/bindParams() methods (Bug #9133)
161
- bindValue() does not need values by reference
162
- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158)
163
- implemented stream_stat() method (Bug #9092)
164
- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise
165
- extracted _skipDelimitedStrings() method from prepare()
166
- added test for _skipDelimitedStrings() method
167
- migrated to package.xml version 2
168
 
169
open todo items:
170
- handle autoincrement fields in alterTable()
171
- add length handling to LOB reverse engineering
172
- expand charset support in schema management and result set handling (Request #4666)
173
- add EXPLAIN abstraction
174
- add cursor support along the lines of PDO (Request #3660 etc.)
175
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
176
- add support to export/import in CSV format
177
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
178
- add support for database/table/row LOCKs
179
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
180
- generate STATUS file from test suite results and allow users to submit test results
181
- explore use of install groups (pear install MDB2#mysql)
182
- add support for full text index creation and querying
183
- add tests to check if the RDBMS specific handling with portability options
184
  disabled behaves as expected
185
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
186
- add a getTableFieldsDefinitions() method to be used in tableInfo()
187
- drop ILIKE from matchPattern() and instead add a second parameter to
188
  handle case sensitivity with arbitrary operators
189
- add charset and collation support to field declaration in all drivers
190
- handle LOBs in buffered result sets (Request #8793)";}i:3;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.2";s:3:"api";s:5:"2.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:1412:"- flip positions property array in prepared statement objects to make it
191
  possible to optionally use the same named placeholder in multiple places
192
  inside a single prepared statement
193
- expanded prepare tests to cover more edge cases
194
- renamed valid_types property to valid_default_values in the Datatype module
195
 
196
open todo items:
197
- handle autoincrement fields in alterTable()
198
- add length handling to LOB reverse engineering
199
- expand charset support in schema management and result set handling (Request #4666)
200
- add EXPLAIN abstraction
201
- add cursor support along the lines of PDO (Request #3660 etc.)
202
- expand length/scale support for numeric types (Request #7170)
203
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
204
- add support to export/import in CSV format
205
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
206
- add support for database/table/row LOCKs
207
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
208
- generate STATUS file from test suite results and allow users to submit test results
209
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
210
- add support for full text index creation and querying
211
- add tests to check if the RDBMS specific handling with portability options
212
  disabled behaves as expected
213
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)";}i:4;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.1";s:3:"api";s:5:"2.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:2632:"- fixed missing code in tableInfo() (Bug #8289)
214
- fixed handling of indexes and constraints and types in tableInfo() (fixes BC break)
215
- do not set nested transaction error if error is expected
216
- explictly default to NULL when the column is NULLable and no default is set
217
  (related to Bug #8359)
218
- added support for case insensitive matching via ILIKE in matchPattern()
219
- added getAsKeyword() for generating "AS" keyword as required by the RDBMS
220
- return an error if a named placeholder name is used twice inside a single statement
221
- add support for multi column PRIMARY KEYs in createTable()
222
- added lower() and upper() to the function module
223
- moved escaping tests to datatype tests
224
- added summary at the end of a test run for each RDBMS
225
- explicitly pass the php_type var in all internal loadModule() calls
226
- added support for 'primary' option in createTable()
227
- expanded NULL tests
228
- fixed handling return values when disable_query is set in _doQuery() and _execute()
229
- check if safe_mode is enabled in fileExists() to determine what algo to use (Bug #8296)
230
- added a test case for updating LOBs
231
- added rtrim test case for LOBs
232
- if result types are specified only rtrim() type 'text' fields (otherwise
233
  it will mean that for some drivers LOB's would get rtrimmed)
234
- phpdoc fixes to the convertResult*() methods
235
- added execParam() method and code tweaks for get*() methods in the Extended module
236
- removed redundant assertions when testing if a given feature is unsupported
237
- removed tests of portability off (users should just set the given portability
238
  setting they want to test in their test_setup.php)
239
 
240
open todo items:
241
- handle autoincrement fields in alterTable()
242
- add length handling to LOB reverse engineering
243
- expand charset support in schema management and result set handling (Request #4666)
244
- add EXPLAIN abstraction
245
- add cursor support along the lines of PDO (Request #3660 etc.)
246
- expand length/scale support for numeric types (Request #7170)
247
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
248
- add support to export/import in CSV format
249
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
250
- add support for database/table/row LOCKs
251
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
252
- generate STATUS file from test suite results and allow users to submit test results
253
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
254
- add support for full text index creation and querying
255
- add tests to check if the RDBMS specific handling with portability options
256
  disabled behaves as expected";}i:5;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.0";s:3:"api";s:5:"2.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:3286:"- added MDB2_AUTOQUERY_SELECT (Request #7817)
257
- added nested transaction support (inspired by ADODB's smart transactions) but
258
  expanded to optionally use SAVEPOINTs *EXPERIMENTAL*
259
  beginNestedTransaction(), completeNestedTransaction(),
260
  failNestedTransaction(), getNestedTransactionError()
261
- inTransaction() will now return an integer with the nested transaction depth
262
  if a nested transaction has been started
263
- added setTransactionIsolation()
264
- added savepoint support to beginTransaction(), commit() and rollback()
265
- added Native base class for consistency
266
- added missing colnum parameter to queryOne() [used by getOne()]
267
- added new tests for get*() Extended module methods
268
- fixed missing db variable from getValidTypes()
269
- added testing of a prepared statement with no parameters
270
- added handling of empty result sets to result set verification in the test suite
271
- oci8 and ibase (and possibly other rdbms) do not like freeing the statement
272
  before reading the result set (Bug #8068):
273
  * moved statement freeing after reading the result set in get*() Extended methods
274
  * bypass prepared statement API for queries without parameters in autoExecute()
275
  (this means you cannot use parameters with SELECT statements in autoExecute()
276
  on the above mentioned platforms)
277
- use data type callback in getValidTypes()
278
- fixed identifier quoting in buildManipSQL() for SELECT statements (thx Kailoran)
279
- phpdoc and cosmetic fixes in limitQuery()
280
- added matchPattern() and patternEscapeString(), escapePattern() *EXPERIMENTAL*
281
- added ability to escape wildcard characters in escape() and quote()
282
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
283
- added context array parameter to debug() and make use of it whereever sensible
284
- added optional method name parameter to raiseError() and use whereever possible
285
- added a new option "debug_expanded_output" which needs to be set to true to
286
  get additional context information and to get "post" callback calls
287
- added testPortabilityOptions()
288
- set length of 8 and fixed for user_password in the test suite
289
- reworked tableInfo() to use a common implementation based on getTableFieldDefinition()
290
  when a table name is passed (Bug #8124)
291
- disconnect after changing database/DSN (otherwise transactions may be left open)
292
 
293
open todo items:
294
- handle autoincrement fields in alterTable()
295
- add length handling to LOB reverse engineering
296
- expand charset support in schema management and result set handling (Request #4666)
297
- add EXPLAIN abstraction
298
- add cursor support along the lines of PDO (Request #3660 etc.)
299
- expand length/scale support for numeric types (Request #7170)
300
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
301
- add support to export/import in CSV format
302
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
303
- add support to generating "AS" keyword if required
304
- add support for database/table/row LOCKs
305
- add ActiveRecord implementation (probably as a separate package)
306
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
307
- extended to support for case insensitive matching via ILIKE/collate in matchPattern()
308
- generate STATUS file from test suite results and allow users to submit test results";}i:6;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.1.0";s:3:"api";s:5:"2.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:1721:"- removed bogus code from execute()
309
- new test case for floats/decimals and locale
310
- reworked fix for float/decimal handling
311
- expanded scientific notation handling
312
- fixed several minor issues with the datatype tests
313
- removed use of "*" in all places in the test suite that are followed by a fetch
314
- tweaked handling of free() for prepared statements
315
- return error if a prepared statement is attempted to be free'ed or executed again
316
- added result_wrap_class param to limitQuery()
317
- added parameter to not quote return value of getBeforeId()
318
- added setCharset()
319
- enable transactions by default
320
- added decimal reverse engineering test
321
- fixed parameter order in assertions in reverse engineering fields tests
322
- generalized quoteIdentifier() with a property
323
- switched most array_key_exists() calls to !empty() to improve readability and performance
324
- fixed a few edge cases and potential warnings
325
- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback
326
- added 'datatype_map' option (Request #7797)
327
- added reverse parameter to getColumnNames()
328
- added 'datatype_map_callback' option
329
- added getValidTypes() method to handle additional types from the 'datatype_map' option
330
- set last_query in _execute() to prepared statement (Bug #7856)
331
- adding random function emulation to generate a float between 0 and 1
332
- explicitly fetch row id = 1 in LOB tests
333
- cosmetic fix to prepare() (Bug #7883)
334
- bumped PHP dependency to 4.3.2 because of LOB stream support
335
 
336
open todo items:
337
- handle autoincrement fields in alterTable()
338
- add support for ADODB style "smart transactions":
339
  http://phplens.com/lens/adodb/docs-adodb.htm#ex11
340
- add length handling to LOB reverse engineering";}i:7;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.3";s:3:"api";s:5:"2.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:633:"- fix float/decimal handling (Request #3021)
341
- default to decimal for double (instead of float)
342
- serialize arrays when no type is explicitly given
343
- phpdoc fixes
344
- expanded FLOAT test
345
- added support for identifier quoting (Request #7671)
346
- added test class for the Extended module
347
- added support for DELETE in auto*() methods (Request #5345)
348
- added "emulate_prepared" option to force prepared statement emulation
349
 
350
open todo items:
351
- handle autoincrement fields in alterTable()
352
- add support for ADODB style "smart transactions":
353
  http://phplens.com/lens/adodb/docs-adodb.htm#ex11
354
- add length handling to LOB reverse engineering";}i:8;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.2";s:3:"api";s:5:"2.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:2298:"- phpdoc and folding mark fixes (thx Laurent and Stoyan)
355
- added getTriggerDefinition() in the Reverse module
356
- added listTableViews() in the Manager module
357
- explicitly set is_manip parameter to false for transaction debug calls
358
- various minor tweaks to error messages, phpdoc and adding stub methods to the
359
  common driver
360
- added row seeking support to fetchOne()
361
- added ability to hint that a constraint is a primary key in dropConstraint()
362
- since we no longer complain about primary keys not being called primary we can
363
  remove the necessary hacks in the test suite
364
- improved LOB tests in the test suite
365
- do not require Manager module for core API tests
366
- added support for fixed and variable types for 'text' in declarations,
367
  as well as in reverse engineering (Request #1523)
368
- updated MAINTAINERS to current status
369
- readded STATUS document, still needs to be filled with content
370
- tweaked handling of error objects inside raiseError()
371
- made _doQuery() return a reference
372
- added userinfo's to all raiseError calls that previously had none
373
- added bindValueArray()
374
- use bindValueArray() instead of bindParamArray() in all internal calls
375
- removed the skeleton drivers, since its too much work to maintain them
376
  and there are plenty of sample drivers to look at
377
- fixed example due to API change in MDB2_Schema (Bug #7575)
378
- added 'prepared_statements' supported meta data setting
379
- do not retrieve lob in the stream constructor and streams_eof()
380
- strip of file:// prefix in writeLOBToFile()
381
- typo fix ressource/resource in LOB array
382
- removed lob property from the LOB streams wrapper (references are always
383
  shaky business in PHP so lets use them as little as possible)
384
- fixed _destroyLOB() API to match other private LOB methods
385
- fixed phpdoc comments of all private LOB methods
386
- typo fix in autoincrement test
387
- reworked index/constraint creation to not affected unnecessary reverse tests
388
 
389
Note: Due to changes in generation of declaration statements you may need to
390
update your test databases (for example by rerunning the MDB2_Schema
391
installation using the CVS version or a release greater than 0.5.0)
392
 
393
open todo items:
394
- handle autoincrement fields in alterTable()
395
- add support for ADODB style "smart transactions":
396
  http://phplens.com/lens/adodb/docs-adodb.htm#ex11";}i:9;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.1";s:3:"api";s:5:"2.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:1609:"- added new comprehensive tests for the Reverse module
397
- fixed testcases to pass for mysql[i] (needs pk's to be called "primary") ..
398
  sqlite is probably severely broken for these tests
399
- added ability to specify port number when using unix sockets in
400
  MDB2::parseDSN() (bug #5982)
401
- added test for multi_query option
402
- typo fix in get constraint test
403
- use ugly fopen() hack in fileExists()
404
  http://marc.theaimsgroup.com/?l=pear-dev&m=114148949106207&w=2
405
- allow "." and "$" in sequence name (bug #7081)
406
- aligned _modifyQuery() signature and phpdoc
407
- added inTransaction() to determine if a transaction is currently open
408
- added support for tabe options in createTable() (bug ##7079)
409
- make it possible to overwrite the error code-message map
410
- added sample sqlite in memory dsn to php5 example
411
- added 'result_introspection' supported metadata support
412
- added bindValue() method
413
- use MDB2_PREPARE_MANIP where we previously were using false
414
- fixed default values for date and timestamp
415
- if MDB2_PORTABILITY_EMPTY_TO_NULL is set change '' to ' ' in _getDeclaration()
416
- refactored class loading into MDB2::loadClass()
417
- properly quote CURRENT_* for temporal types (bug #6416)
418
- added connected_server_info to cache server info in getServerInfo()
419
- reset all connection related properties in disconnect()
420
- separated result_buffering and prefetching by adding the new result_prefetching option
421
- set error code in all raiseError() calls
422
- added support for length in reverse engineering of integer fields
423
- improve test suite documentation
424
 
425
open todo items:
426
- handle autoincremement fields in alterTable()";}i:10;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.0";s:3:"api";s:5:"2.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:79:"- handle null as resource when disable_query option is enabled in result object";}i:11;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC5";s:3:"api";s:8:"2.0.0RC5";}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:916:"- expanded testing of prepared queries (out of order binding, escape characters
427
  inside the string, lobs without named parameters that match the field name)
428
- removed ugly hack for quote parameter in quote() since it was insufficient
429
  (escaping also needs to be prevented)
430
- added support for out of order parameter binding in prepared queries
431
- expanded testing of prepared queries (out of order binding, escape characters
432
  inside the string, lobs without named parameters that match the field name)
433
- reset row_limit and row_offset after calling prepare() just like we do for query() and exec()
434
- cosmetic fix (removed "row_" prefix from "row_limit" and "row_offset")
435
- now using INT/TINYINT/SMALLINT by default instead of CHAR(1) for the boolean datatype
436
  (BC BREAK!)
437
- added MDB2_datatype_testcase to test suite
438
- support an arbitrary number of arguments in concat()
439
- add property phpdoc comments to LOB.php";}i:12;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC4";s:3:"api";s:8:"2.0.0RC4";}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:796:"- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226)
440
- some cleanups in loadModule()
441
- eliminate possible warnings in execute() and _assignBindColumns()
442
- do not silence includes when debug option is enabled
443
- fixed serious bug in autoincrement test
444
- added dbsyntax to getDSN() string output (feature request #6463)
445
- fixed signature of executeStoredProc()
446
- nextResult() returns false if there are no more result sets to read
447
- renamed _isIndexName() to _fixIndexName()
448
- _fixIndexName() now just attempts to remove possible formatting
449
- renamed _isSequenceName() to _fixSequenceName()
450
- _fixSequenceName() now just attempts to remove possible formatting, and only
451
  returns a boolean if no formatting was applied when the new "check" parameter is set to true";}i:13;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC3";s:3:"api";s:8:"2.0.0RC3";}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:479:"- added error handling when result set introspection is not supported in _wrapResult()
452
- fixed example
453
- removed peardb wrapper (its broken, unmaintained and probably unused)
454
- added new example using php5 only features
455
- MDB2_OK is now a boolean true, instead of integer 1
456
- types can now always be keyed by name or by order
457
- renamed setResultTypes() in the datatype module to checkResultTypes()
458
  and modified the signature accordingly
459
- removed no longer used MDB2::isManip()";}i:14;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC2";s:3:"api";s:8:"2.0.0RC2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}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:616:"- fixed testNow() to use the datatype abstraction
460
- fixed testGetTableFieldDefinition() to use a blob column instead of a clob
461
  since we default to blob when we cannot differntiate between blob and clob
462
- split up alterTable() testing into two separate test methods
463
- removed errorNative() was never implemented, use errorInfo() instead
464
- fixed major bug in _fixResultArrayValues() that would lead to performance or
465
  incorrect application of portability features
466
- phpdoc fixes in LOB.php, Iterator.php, Date.php and Extended.php
467
- removed not required prev() and hasPrev() from the SeekableIterator implementation";}i:15;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC1";s:3:"api";s:8:"2.0.0RC1";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}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:1629:"- added numerous testcases in the manager and reverse module
468
- unified case fixing in the list*() methods
469
- case-insensitive comparison in _isSequenceName()
470
- added getConnection() to fetch a native connection resource
471
- split index and constraint handling
472
- quote identifiers where possible inside the manager methods depending on
473
  the new 'quote_identifier' option (defaults to off)
474
- refactored get*Declaration() methods to use getTypeDeclaration()
475
- setting in_transaction to false on disconnect
476
- store if type has changed in compareDefinition()
477
- added new Function modules to handle difference in SQL functions
478
- added verious new test cases
479
- refactored test cases to use an MDB2_testcase base class
480
- allow empty field parameter in get*ID() methods (bug #5791)
481
- tweaked error messages for file loads
482
- split off manipulation queries into exec() method from the query() method *BC BREAK*
483
- only if result_types is set to false in prepare() method the query will be
484
  handled as a DML statement *BC BREAK*
485
- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930)
486
- added getServerVersion()
487
- renamed defaultOutput() to getDefaultOutput() *BC BREAK*
488
- use tableInfo() to automatically determine the result types if type is set to true
489
- reworked file loading to work around issues in safe_mode with MDB2::fileExists() (bug #6226)
490
- no need to return by reference in getConnection() (it even seems to work for
491
  mysqli that has objects and not resource connections)
492
- added "idxname_format" as option similar to "seqname_format"
493
- fixed bug in API calls inside autoExecute() (bug #6286)";}i:16;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta6";s:3:"api";s:10:"2.0.0beta6";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-10-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:3425:"Warning: this release features numerous BC breaks!
494
 
495
There have been considerable improvements to the datatype, manager and reverse
496
modules. Furthermore preliminary support for auto increment and primary keys
497
has been added. Please note that making a field auto increment implies a single
498
column primary key on this field.
499
 
500
- increased php dependency to 4.3.0 due to the usage of the streams API since beta5
501
- moved logic from MDB2::connect() to MDB2::factory(), the only difference is
502
  that MDB2::connect will immediatly try to connect to the database
503
- MDB2::singleton now uses MDB2::factory()
504
- added support for auto increment and primary key in schema. (mysql[i])
505
- alterTable now needs the full definition to work (use getTableFieldDefinition
506
 from Reverse module if you do not have a definition at hand) this eliminates the need
507
 of the declaration part in the alterTable array.
508
- nicer test chooser. Added some js magic to [un]select all the tests in a group
509
- fixed typo in _getTextDeclaration()
510
- fix PHP4.4 breakage
511
- ensure that types and result_types property in the statement class is an array (bug #4695)
512
- added support for fetchmode in the iterator class and for any other result wrapper class (bug #4685)
513
- moved getInsertID() into core as lastInsertID()
514
- moved getBeforeID() and getAfterID() from core into the extended module
515
- added base class for all modules (which provides getDBInstance())
516
- added free() method to remove an instance from the global instance array
517
- removed schema manager related error codes from MDB2::errorMessage()
518
- dont set the include path in test suite (people can do that in test_setup.php)
519
- added missing default numRows() method
520
- added hack into stream_eof() to handle the BC break in 5.0.x
521
- removed uncessary duplicate quoting in quote() in the peardb wrapper (bug #5195)
522
- warning fix in BC hack of connect() in the peardb wrapper
523
- tweaked error message in setResultTypes()
524
- removed PDO compatibility code in bindParam and bindCol, now using 0-index numeric keys again
525
- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray()
526
- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362)
527
- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons
528
- added new portability fetch mode MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES (to remove database/table qualifiers from assoc indexes)
529
- 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)
530
- ensure that fetchAll always returns an array() even if the result set was empty
531
- use array_key_exists() instead of isset() where possible
532
- changed structure of field add/remove/change in alterTable() to match MDB2_Schema
533
- added default values for supported property
534
- reworked supports() to return the given value and also return errors for non existant support feature
535
- reworked subSelect() to use the 'emulated' supports() return value
536
- removed implementation of createIndex() (now every driver needs to implement it themselves)
537
- sync fileExists with the LiveUser one, explode instead of split and is_readable instead of file_exists.
538
- tweaked compare method family to better deal with optional properties
539
 
540
open todo items:
541
- add test cases for the various module methods
542
- add getServerVersion()";}i:17;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta5";s:3:"api";s:10:"2.0.0beta5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-06-08";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:1230:"Warning: this release features numerous BC breaks to make the MDB2 API be as
543
similar as possible as the ext/pdo API! The next release is likely to also break
544
BC for the same reason. Check php.net/pdo for information on the pdo API.
545
 
546
- refactored LOB support (BC breaks)
547
- moved all drivers into separate packages MDB2_Driver_* (BC break)
548
- bindParam() and bindColumn() are now 1-indexed (BC break)
549
- removed special handling for day light saving time (bug #4341) (BC break)
550
- ensure SQL injection protection in all _quote() methods
551
  (was missing in some decimal, float, time, date and timestamp implementations)
552
- renamed getRowCount() to rowCount() for PDO compliance (BC break)
553
  (doesnt take into account the offset anymore)
554
- added new quote() parameter to remove quotes (ugly hack will get cleaned up)
555
- renamed execute() to _execute() since common provides some common functionality via execute()
556
- fixed some issues regarding limit/offset in prepared statements
557
- fixed bug in _assignBindColumns() when using associative fetches
558
- support numeric and string keys in types array for prepared queries
559
- call trigger error if __call() is unable to find a method in any of the modules
560
- work around php5 bugs in the test suite";}i:18;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta4";s:3:"api";s:10:"2.0.0beta4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-04-29";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:2802:"Warning: this release features numerous BC breaks to make the MDB2 API be as
561
similar as possible as the ext/pdo API! The next release is likely to also break
562
BC for the same reason. Check php.net/pdo for information on the pdo API.
563
 
564
- fixed bugs in MDB2_Extended::buildManipSQL() introduced in latest tweaks (bug #3725)
565
- mysqli has connection objects instead of resources
566
- fix mssql tableInfo() so flags are returned (bug #3691)
567
- fixed bug in handling of force_array when 2 or less columns are fetched in fetchAll()
568
- added map error message for sqlite multi-column unique constraints.
569
- added listUsers(), listViews(), listFunctions() to oracle manager
570
- added listFunctions() to pgsql manager
571
- updated listViews() in pgsql manager
572
- added __call() support for module handling
573
- mysql driver now uses mysqli implementations where feasible
574
- ensure that internal calls to query dont wrap the result
575
- for some reason mysqli didnt like SELECT LAST_INSERT_ID()
576
- fixed bug in table alteration when only an index was added
577
- updated pgsql API calls to 4.2.0 recommended names (bug #3904)
578
- moved logic to compareDefinitions from the Manager into the Datatype module
579
  to increase flexibility
580
- extended MDB2::isError() to be able to handle an array or codes
581
- added error handling into autoPrepare() and autoExecute()
582
- migrade all MDB2::isError calls that dont check for specific errors codes to PEAR::isError
583
- don't pass new_link to mysql_pconnect() (bug #3993)
584
- use MDB2::raiseError() instead of MDB2_Driver_Common::raiseError()
585
- do not disable result wrapping when doing internal calls to query() (bug #3997)
586
- _wrapResult() now ensures that the result class is an instance of MDB2_Result_Common
587
- unbundled the MDB2_Tools_Manager into a separate package PEAR::MDB2_Schema
588
- improved getTableFieldDefinition() and moved native type mapping to the
589
  datatype module mapNativeDatatype() method (mysql, sqlite, pgsql and ibase drivers)
590
- fixes for listTables() in sqlite and pgsql driver
591
- ensure that mysql drivers use the dummy_primary_key property
592
- severely reworked how data is fetched and buffered and freed in the iterator
593
- added mapNativeDatatype() to ibase driver
594
- getTypeDeclaration() => _getTypeDeclaration() in ibase driver
595
- cosmetic fixes and tweaks (replace(). fetchOne() ..)
596
- renamed 'seqname_col_name' option to 'seqcol_name'
597
- moved schema documentation, xml_reverse_engineering.php, MDB.dtd
598
  and MDB.xls to MDB_Schema package
599
- Mysqli: implicit sequence is named as table by default
600
- Mysqli: text types now map to clob first
601
- ensure that types are numerically keyed in setResultTypes()
602
- added caching to getColumnNames()
603
- added bindColumn() support
604
- use MDB2_Schema::factory()
605
- phpdoc fixes in regards to flipped fetchmode
606
- remove renegate mysql code in sqlite driver";}i:19;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta3";s:3:"api";s:10:"2.0.0beta3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-03-06";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:7520:"Warning: this release features numerous BC breaks to make the MDB2 API be as
607
similar as possible as the ext/pdo API! The next release is likely to also break
608
BC for the same reason. Check php.net/pdo for information on the pdo API.
609
 
610
Oracle NULL in LOB fields is broken.
611
The fbsql and mssql drivers are likely to be broken as they are largely untested.
612
 
613
MDB2 static class:
614
- "xxx" out password on connect error in MDB2::connect()
615
- MDB2::isError now also optionally accepts and error code to check for
616
- added LOAD DATA (port from DB) and SET to MDB2::isManip()
617
 
618
All drivers:
619
- use __construct() (PHP4 BC hacks are provided)
620
- allow null values to be set for options
621
- ensure we are returning a reference in all relevant places
622
 
623
- allow errorInfo() to be called when no connection has been established yet
624
- use MDB2_ERROR_UNSUPPORTED instead of MDB2_ERROR_NOT_CAPABLE in common implementations
625
- readded MDB2_Error as the baseclass for all MDB2 error objects
626
- updated error mappings from DB
627
 
628
- added MDB2_Driver_Common::getDatabase();
629
- reworked dsn default handling
630
- added ability to "xxx" out password in getDSN()
631
 
632
- use _close() method in several places where they previously were not used
633
- removed redundant code in _close() that dealt with transaction closing already
634
  done in disconnect()
635
- if the dbsyntax is set in the dsn it will be set in the dbsyntax property
636
- only disconnect persistant connections if disconnect() has been explicitly
637
  called by the user
638
- instead of having a generic implemention of disconnect() we will rename
639
  _close() to disconnect() to overwrite the generic implementation
640
- added support for 'new_link' dsn option for all supported drivers (mysql, oci8, pgsql)
641
 
642
- transaction API moved over to PDO: removed autoCommit(), added beginTransaction()
643
  and refactored commit() (it doesn't start a new transaction automatically anymore)
644
- reworked handling of uncommited transaction for persistant connections when
645
  a given connection is no longer in use
646
 
647
- added 'disable_query' option to be able to disable the execution of all queries
648
 (this might be useful in conjuntion with a custom debug handler to be able to
649
 dump all queries into a file instead of executing them)
650
- removed affectedRows() method in favor of returning affectedRows() on query if relevant
651
- added generic implementation of query() and moved driver specific code into _doQuery()
652
- added _modifyQuery() to any driver that did not yet have it yet
653
- standaloneQuery() now also supports SELECT querys
654
- remove redundant call to commit() since setting autoCommit() already commits in MDB2::replace()
655
- refactored standaloneQuery(), query(), _doQuery(), _wrapResult(); the most important change are:
656
  result are only wrapped if it is explicitly requested
657
  standaloneQuery() now works just as query() does but with its own connection
658
- allowing limits of 0 in setLimit()
659
 
660
- explicitly specify colum name in sequence emulation queries
661
- added getBeforeId() and getAfterId()
662
- added new supported feature 'auto_increment'
663
 
664
- added default implementation for quoteCLOB() and quoteBLOB()
665
- reworked quote handling: moved all implementation details into the extension,
666
  made all quote methods private except for quote() itself, honor portability
667
  MDB2_PORTABILITY_EMPTY_TO_NULL in quote(), removed MDB2_TYPE_* constants
668
- reworked get*Declaration handling: moved all implementation details into the extension,
669
  made all quote methods private except for quote() itself
670
- placed convert methods after the portability conversions to ensure that the
671
  proper type is maintained after the conversion methods
672
- dont convert fetched null values in the Datatype module
673
 
674
- removed executeParams() and moved executeMultiple() from extended module
675
 
676
- updated tableInfo() code from DB
677
 
678
- made LIMIT handling more robust by taking some code from DB
679
 
680
All drivers result:
681
- performance tweak in fetchCol()
682
- added MDB2_FETCHMODE_OBJECT
683
- added MDB2_Driver_Result_Common::getRowCounter()
684
- added rownum handling to fetchRow()
685
- removed fetch() and resultIsNull()
686
 
687
All drivers prepared statements
688
- moved prepare/execute API towards PDO
689
- setParamsArray() can now handle non ordered arrays
690
- removed requirement for LOB inserts to pass the parameters as an array
691
- placeholders are now numbered starting from 0 (BC break in setParam() !)
692
- queries inside the prepared_queries property now start counting at 1 (performance tweak)
693
- refactored handling of filename LOB values (prefix with 'file://')
694
- removed _executePrepared(), drivers need to overwrite execute() for now on
695
- add support for oracle style named parameters and modified test suite accordingly
696
 
697
MySQL driver:
698
- improved handling of MDB2_PORTABILITY_LOWERCASE in all the reverse
699
  methods inside the mysql driver to work coherently
700
- fixed several issues in the listTablefields() method of manager drivers
701
 
702
MSSQL driver:
703
- added code in MDB2_Driver_mssql::connect() to better handle date values
704
  independant of ini and locale settings inside the server
705
- use comma, rather than colon, to delimit port in MDB2_driver_mssql::connect().
706
  Bug 2140. (danielc)
707
- unified mssql standalone query with sqlite, mysql and others (not tested on
708
  mssql yet, but since mssql automatically reuses connections per dsn the old
709
  way could gurantee anything different from happening)
710
 
711
PgSQL driver:
712
- use track_errors to capture error messages in MDB2_driver_pgsql::connect().
713
  Bug 2011. (danielc)
714
- add port to connect string when protocol is unix in MDB2_driver_pgsql::connect().
715
  Bug 1919. (danielc)
716
- accommodate changes made to PostgreSQL so "no such field" errors get properly
717
  indicated rather than being mislabeled as "no such table." (danielc)
718
- added "permission denied" to error regex in pgsql driver.
719
  Bug 2417. (stewart_linux-org-au)
720
 
721
OCI8 driver:
722
- fixed typo in MDB2_Driver_Manager_oci8::listTables() (fix for bug #2434)
723
- added emulate_database option (default true) to the Oracle driver that handles
724
  if the database_name should be used for connections of the username
725
- oci8 driver now uses native bind support for all types in prepare()/execute()
726
 
727
Interbase driver:
728
- completely revised ibase driver, now passing all tests under php5
729
 
730
Frontbase driver:
731
- fbsql: use correct error codes. Was using MySQL's codes by mistake.
732
 
733
MySQLi driver:
734
- added mysqli driver (passes all tests, but doesnt use native prepare yet)
735
 
736
DB wrapper
737
- fixed a large number of compatibility issues in the PEAR::DB wrapper
738
 
739
Iterator
740
- fixed several bugs and updated the interface to match the final php5 iterator API
741
- buffered result sets now implements seekable
742
- removed unnecessary returns
743
- throw pear error on rewind in unbuffered result set
744
- renamed size() to count() to match the upcoming Countable interface
745
 
746
Extended module:
747
- modified the signature of the auto*() methods to be compatible with DB (bug #3720)
748
- tweaked buildManipSQL() to not use loops (bug #3721)
749
 
750
MDB_Tools_Manager
751
- updated raiseError method in the Manager to be compatible with
752
  XML_Parser 1.1.x and return useful error message (fix bug #2055)
753
- major refactoring of MDB2_Manager resulting in several new methods being available
754
- fixed error in MDB2_Manager::_escapeSpecialCharacter() that would lead to
755
  incorrect handling of integer values (this needs to be explored in more detail)
756
- several typo fixes and minor logic errors (among others a fix for bug #2057)
757
- moved xml dumping in MDB2_Tools_Manager into separate Writer class
758
- fixed bugs in start value handling in create sequence (bug #3077)";}i:20;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta2";s:3:"api";s:10:"2.0.0beta2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2004-04-25";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:2601:"The core of MDB2 is now fairly stable API-wise. The modules, especially the
759
manager and reverse module, might see some API refinement before the first
760
stable release.
761
- added listTables() and listTableFields() methods to MDB2_Driver_Manager_mssql
762
  and MDB2_Driver_Manager_oci8
763
- reversed parameter order of getValue(), type parameter is now optional and
764
  will then be autodetected (BC break!)
765
- renamed get*Value() to quote*() (BC break!)
766
- fixed LOB management in MDB2_Driver_ibase
767
- moved getOne, getRow, getCol, getAll back into the exteneded module (most
768
  users should be able to move to the queryOne, queryRow, queryCol and queryAll
769
  equivalent) (BC break!)
770
- added getAssoc to the extended module
771
- fixed bug in MDB2_Driver_Datatype_Common::implodeArray()
772
- added sequence_col_name option to make the column name inside sequence
773
  emulation tables configurable
774
- fixed a bug in the MDB2_Driver_oci8 and MDB2_Driver_ibase buffering emulation
775
  when using limit queries
776
- removed MDB2_PORTABILITY_NULL_TO_EMPTY in favor of MDB2_PORTABILITY_EMPTY_TO_NULL
777
  this means that DB and MDB2 work exactly the opposite now, but it seems more
778
  efficient to do things the way Oracle does since this is the RDBMS which
779
  creates the original issue to begin with (BC break!)
780
- fixed a typos in getAll, getAssoc and getCol
781
- test suite: moved set_time_limit() call to the setup script to be easier to customize
782
- renamed hasMore() to valid() due to changes in the PHP5 iterator API (BC break!)
783
- renamed toString() to __toString() in order to take advantage of new PHP5
784
  goodness and made it public
785
- MDB2_Driver_Datatype_Common::setResultTypes() can now handle missing elements
786
  inside type arrays: array(2 => 'boolean', 4 => 'timestamp')
787
- fixed potential warning due to manipulation query detection in the query*()
788
  and the get*() query+fetch methods
789
- added tests for fetchAll() and fetchCol()
790
- performance tweaks for fetchAll() and fetchCol()
791
- fixed MDB2_Driver_Manager_mysql::listTableIndexes()
792
- fixed MDB2_Driver_Common::debug()
793
- renamed MDB2::isResult() to MDB2::isResultCommon()
794
- added base result class MDB2_Result from which all result sets should be
795
  inherited and added MDB2::isResult() which checks if a given object extends from it
796
- added 'result_wrap_class' option and optional parameter to query() to enable
797
  wrapping of result classes into an arbitrary class
798
- added $result_class param to all drivers where it was missing from the
799
  query() and _executePrepared() methods
800
- applied several fixes to the PEAR::DB wrapper
801
- fixed a typo in MDB2_Driver_Reverse_pgsql::tableInfo()";}i:21;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta1";s:3:"api";s:10:"2.0.0beta1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2004-03-12";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:1280:"- fixed bug in MDB2::singleton
802
- fixed minor bugs in prepare/execute
803
- added PEAR::DB wrapper (not working yet)
804
- fixed several bugs in the ibase driver
805
- fixed several PHP5 related issues
806
- fixed bug in sequence creation on MySQL
807
- fixed issues with nextid() ondemand handling in conjunction with currId()
808
- added native currId() implementation for the Oracle driver
809
- fixed sqlite driver (passes all but the REPLACE test due to a conformance issue in sqlite itself)
810
- removed decimal_factor property to allow changing of decimal_places option
811
- using native escape string methods in sqlite and mysql driver
812
- fixed minor conformance issues in tableInfo() in the oci8 and mysql driver
813
- removed optimize option and added portability option instead (ported from DB)
814
- added quoteIdentifier() method (ported from DB)
815
- added STATUS document to make the status of the drivers more transparent
816
- fixed a few bugs in querysim driver
817
- fixed issue in mysql reverse engineering: ensuring the correct case is used when
818
  doing assoc fetches based on portability flag setting
819
- updated reverse engineering script to the new MDB2 API
820
- removed broken implementations of currId() in the mssql and fbsql driver
821
- fixed a few instances of MDB_Common to the new class name of MDB_Driver_Common";}i:22;a:5:{s:7:"version";a:2:{s:7:"release";s:11:"2.0.0alpha1";s:3:"api";s:11:"2.0.0alpha1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2004-01-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:1845:"This is the first alpha release of MDB2 2.0.
822
 
823
MDB2 2.x breaks backwards compatibility in many ways in order to simplify
824
the API for both users and drivers developers.
825
 
826
Please note that currently only the MySQL, the PostGreSQL and the Oracle driver
827
have been tested to pass the test suite.
828
 
829
Here follows a short list of the most important changes:
830
- all code that is not necessary for basic operation is now separateed
831
  into separate modules which can be loaded with the loadModule() method
832
- all datatype related methods have been moved to a dataype module with
833
  the notable exception of getValue() and the newly introduced getDeclaration()
834
- added extended module for highlevel methods
835
- all manager method are no longer available in the core class and or
836
  now only available in the manager module
837
- all reverse engineering methods have been taken from the manager class
838
  and are now available through the reverse module
839
- a new module has been added to allow the addition of methods with
840
  RDBMS specific functionality (like getting the last autoincrement ID)
841
- LOB handling has been greatly simplified
842
- several methods names have been shortend
843
- the fetch.+() methods do not free the result set anymore
844
- the Manager and the reverse_engineer_xml_schema have been moved into
845
  a Tools directory
846
- all parameters are now lowercased with underscores as separators
847
- all drivers now support all of the dsn options that PEAR DB supports
848
- several methods have been removed because they offered redundant functionality
849
- changed prepare API type is now passed to prepare and not to setParam*()
850
- results are now wrapped inside objects and all methods which operate
851
  on resultsets have been moved into respecitive classes
852
- there are two types of result object: buffered (default) and unbuffered
853
- totally rewrote buffering and limit emulation";}}}s:8:"filelist";a:53:{s:25:"docs/examples/example.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b5cd8d01a36258caa0c4eb7e3478c219";s:4:"name";s:25:"docs/examples/example.php";s:4:"role";s:3:"doc";s:12:"installed_as";s:50:"/usr/share/php/docs/MDB2/docs/examples/example.php";}s:30:"docs/examples/example_php5.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dd25c9a1d24d945ef0c3cb2fc889a070";s:4:"name";s:30:"docs/examples/example_php5.php";s:4:"role";s:3:"doc";s:12:"installed_as";s:55:"/usr/share/php/docs/MDB2/docs/examples/example_php5.php";}s:37:"docs/examples/metapear_test_db.schema";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"74b2bb45de61eccbffed7d75d5268af9";s:4:"name";s:37:"docs/examples/metapear_test_db.schema";s:4:"role";s:3:"doc";s:12:"installed_as";s:62:"/usr/share/php/docs/MDB2/docs/examples/metapear_test_db.schema";}s:17:"docs/CONTRIBUTORS";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a253b37e185622112acfef6c94b79aef";s:4:"name";s:17:"docs/CONTRIBUTORS";s:4:"role";s:3:"doc";s:12:"installed_as";s:42:"/usr/share/php/docs/MDB2/docs/CONTRIBUTORS";}s:19:"docs/datatypes.html";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"cc1befe78146094be02f89bbb201b4ab";s:4:"name";s:19:"docs/datatypes.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:44:"/usr/share/php/docs/MDB2/docs/datatypes.html";}s:16:"docs/MAINTAINERS";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a70b17bcd8e56911f74a4dff61a3ff8d";s:4:"name";s:16:"docs/MAINTAINERS";s:4:"role";s:3:"doc";s:12:"installed_as";s:41:"/usr/share/php/docs/MDB2/docs/MAINTAINERS";}s:11:"docs/README";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c7b68ea23aa2ae6d91913703a2246f15";s:4:"name";s:11:"docs/README";s:4:"role";s:3:"doc";s:12:"installed_as";s:36:"/usr/share/php/docs/MDB2/docs/README";}s:11:"docs/STATUS";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f9858c9327499e60db66621a817c66a4";s:4:"name";s:11:"docs/STATUS";s:4:"role";s:3:"doc";s:12:"installed_as";s:36:"/usr/share/php/docs/MDB2/docs/STATUS";}s:9:"docs/TODO";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ec0c4383ddfd3af69d577344d0d5b4dd";s:4:"name";s:9:"docs/TODO";s:4:"role";s:3:"doc";s:12:"installed_as";s:34:"/usr/share/php/docs/MDB2/docs/TODO";}s:31:"MDB2/Driver/Datatype/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"0c87967f991c8dd76240735e4244d0c9";s:4:"name";s:31:"MDB2/Driver/Datatype/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:46:"/usr/share/php/MDB2/Driver/Datatype/Common.php";}s:31:"MDB2/Driver/Function/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"7302578a918db5a4465891c754d167da";s:4:"name";s:31:"MDB2/Driver/Function/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:46:"/usr/share/php/MDB2/Driver/Function/Common.php";}s:30:"MDB2/Driver/Manager/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"459831f86db78b16887d138207250fd9";s:4:"name";s:30:"MDB2/Driver/Manager/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:45:"/usr/share/php/MDB2/Driver/Manager/Common.php";}s:29:"MDB2/Driver/Native/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"005901a0e84f6ff717e0847f0a3faf14";s:4:"name";s:29:"MDB2/Driver/Native/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:44:"/usr/share/php/MDB2/Driver/Native/Common.php";}s:30:"MDB2/Driver/Reverse/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"edf3e1b0c845dedf7473960e632c8c21";s:4:"name";s:30:"MDB2/Driver/Reverse/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:45:"/usr/share/php/MDB2/Driver/Reverse/Common.php";}s:13:"MDB2/Date.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"af81dd360b2d2d09f8c978214b06a553";s:4:"name";s:13:"MDB2/Date.php";s:4:"role";s:3:"php";s:12:"installed_as";s:28:"/usr/share/php/MDB2/Date.php";}s:17:"MDB2/Extended.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"0aad199da225ee0eabe9eb16e7ef8e72";s:4:"name";s:17:"MDB2/Extended.php";s:4:"role";s:3:"php";s:12:"installed_as";s:32:"/usr/share/php/MDB2/Extended.php";}s:17:"MDB2/Iterator.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"023c4bda6db2d8f277d8d3c76dc8f850";s:4:"name";s:17:"MDB2/Iterator.php";s:4:"role";s:3:"php";s:12:"installed_as";s:32:"/usr/share/php/MDB2/Iterator.php";}s:12:"MDB2/LOB.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"bd83458d9b7a044cb44956244a584849";s:4:"name";s:12:"MDB2/LOB.php";s:4:"role";s:3:"php";s:12:"installed_as";s:27:"/usr/share/php/MDB2/LOB.php";}s:16:"tests/basic.phpt";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"01d41e566bdb62c7bcb432c8039dda9a";s:4:"name";s:16:"tests/basic.phpt";s:4:"role";s:4:"test";s:12:"installed_as";s:42:"/usr/share/php/tests/MDB2/tests/basic.phpt";}s:17:"tests/clitest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d67ccf96fabd2e95fa57a7ea76549349";s:4:"name";s:17:"tests/clitest.php";s:4:"role";s:4:"test";s:12:"installed_as";s:43:"/usr/share/php/tests/MDB2/tests/clitest.php";}s:16:"tests/config.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c90cdd55233d9ef470150c06a946d213";s:4:"name";s:16:"tests/config.php";s:4:"role";s:4:"test";s:12:"installed_as";s:42:"/usr/share/php/tests/MDB2/tests/config.php";}s:30:"tests/Console_TestListener.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2a2c534ab4afb0c05ca9d7ca47815bf5";s:4:"name";s:30:"tests/Console_TestListener.php";s:4:"role";s:4:"test";s:12:"installed_as";s:56:"/usr/share/php/tests/MDB2/tests/Console_TestListener.php";}s:28:"tests/driver_test.schema.xml";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"19ef782cc5be7de11c369889a74044d5";s:4:"name";s:28:"tests/driver_test.schema.xml";s:4:"role";s:4:"test";s:12:"installed_as";s:54:"/usr/share/php/tests/MDB2/tests/driver_test.schema.xml";}s:27:"tests/HTML_TestListener.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d46a8f267dbd54f0c7ff55e479d33e7e";s:4:"name";s:27:"tests/HTML_TestListener.php";s:4:"role";s:4:"test";s:12:"installed_as";s:53:"/usr/share/php/tests/MDB2/tests/HTML_TestListener.php";}s:23:"tests/import.schema.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ff346ecb984d644ec23584ddb02527b5";s:4:"name";s:23:"tests/import.schema.php";s:4:"role";s:4:"test";s:12:"installed_as";s:49:"/usr/share/php/tests/MDB2/tests/import.schema.php";}s:27:"tests/MDB2_api_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b56138622fdae4c539b7be33fb7d957e";s:4:"name";s:27:"tests/MDB2_api_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:53:"/usr/share/php/tests/MDB2/tests/MDB2_api_testcase.php";}s:28:"tests/MDB2_bugs_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"9ddc66748dd375105b4ffda677f57e41";s:4:"name";s:28:"tests/MDB2_bugs_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:54:"/usr/share/php/tests/MDB2/tests/MDB2_bugs_testcase.php";}s:27:"tests/MDB2_Connect_Test.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f8534befe37efc7f35beb0897b75f951";s:4:"name";s:27:"tests/MDB2_Connect_Test.php";s:4:"role";s:4:"test";s:12:"installed_as";s:53:"/usr/share/php/tests/MDB2/tests/MDB2_Connect_Test.php";}s:32:"tests/MDB2_datatype_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"73383f476c1788a49831fcf5daeef744";s:4:"name";s:32:"tests/MDB2_datatype_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_datatype_testcase.php";}s:32:"tests/MDB2_extended_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"52612ab88c430f08e108d146b46a57d2";s:4:"name";s:32:"tests/MDB2_extended_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_extended_testcase.php";}s:32:"tests/MDB2_function_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ca4ad92dd091bc59b0f0be14b8cfdc0c";s:4:"name";s:32:"tests/MDB2_function_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_function_testcase.php";}s:33:"tests/MDB2_internals_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"e063e6c063d963de546c3bd90cb25283";s:4:"name";s:33:"tests/MDB2_internals_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:59:"/usr/share/php/tests/MDB2/tests/MDB2_internals_testcase.php";}s:31:"tests/MDB2_manager_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"802fce3b33dfff70dbe2ca20c2671409";s:4:"name";s:31:"tests/MDB2_manager_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:57:"/usr/share/php/tests/MDB2/tests/MDB2_manager_testcase.php";}s:30:"tests/MDB2_native_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"22be0efc5b2b81bd6cd6ebe31747445e";s:4:"name";s:30:"tests/MDB2_native_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:56:"/usr/share/php/tests/MDB2/tests/MDB2_native_testcase.php";}s:26:"tests/MDB2_nonstandard.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"92fcbe9e6c2efc8290437d3c87507583";s:4:"name";s:26:"tests/MDB2_nonstandard.php";s:4:"role";s:4:"test";s:12:"installed_as";s:52:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard.php";}s:32:"tests/MDB2_nonstandard_ibase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"32504b5dd5ff479da628abd6f96753c3";s:4:"name";s:32:"tests/MDB2_nonstandard_ibase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_ibase.php";}s:32:"tests/MDB2_nonstandard_mssql.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dee3b6f3069fe286c304ca32b77dbe99";s:4:"name";s:32:"tests/MDB2_nonstandard_mssql.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_mssql.php";}s:32:"tests/MDB2_nonstandard_mysql.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"1766c43f50ce08418b524a6047462e4d";s:4:"name";s:32:"tests/MDB2_nonstandard_mysql.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_mysql.php";}s:33:"tests/MDB2_nonstandard_mysqli.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"14f12bd33f7212d51b400e0a3ea9dff9";s:4:"name";s:33:"tests/MDB2_nonstandard_mysqli.php";s:4:"role";s:4:"test";s:12:"installed_as";s:59:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_mysqli.php";}s:31:"tests/MDB2_nonstandard_oci8.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d8c9287b3614da53d818ef86bfc9ef86";s:4:"name";s:31:"tests/MDB2_nonstandard_oci8.php";s:4:"role";s:4:"test";s:12:"installed_as";s:57:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_oci8.php";}s:32:"tests/MDB2_nonstandard_pgsql.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"3e790ed8bf0b3b91ec518cdab9eba271";s:4:"name";s:32:"tests/MDB2_nonstandard_pgsql.php";s:4:"role";s:4:"test";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_pgsql.php";}s:33:"tests/MDB2_nonstandard_sqlite.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"54882586bf87e9f3b5d5ab9a20e3e5f7";s:4:"name";s:33:"tests/MDB2_nonstandard_sqlite.php";s:4:"role";s:4:"test";s:12:"installed_as";s:59:"/usr/share/php/tests/MDB2/tests/MDB2_nonstandard_sqlite.php";}s:31:"tests/MDB2_reverse_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b29a49619cf11ba7f531bb806b25619b";s:4:"name";s:31:"tests/MDB2_reverse_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:57:"/usr/share/php/tests/MDB2/tests/MDB2_reverse_testcase.php";}s:23:"tests/MDB2_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2925fd7431313d5df54e068544f8982f";s:4:"name";s:23:"tests/MDB2_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:49:"/usr/share/php/tests/MDB2/tests/MDB2_testcase.php";}s:29:"tests/MDB2_usage_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d56f2bd9b951bab6646f00ceeb4fd986";s:4:"name";s:29:"tests/MDB2_usage_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:55:"/usr/share/php/tests/MDB2/tests/MDB2_usage_testcase.php";}s:12:"tests/README";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ca453d042076964cbd3350902ad25fa6";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";s:12:"installed_as";s:38:"/usr/share/php/tests/MDB2/tests/README";}s:14:"tests/test.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a2c50ccea24f7bdd5439b366608d59d5";s:4:"name";s:14:"tests/test.php";s:4:"role";s:4:"test";s:12:"installed_as";s:40:"/usr/share/php/tests/MDB2/tests/test.php";}s:20:"tests/testchoose.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dc05c6cc4540981d350ccac2005c2578";s:4:"name";s:20:"tests/testchoose.php";s:4:"role";s:4:"test";s:12:"installed_as";s:46:"/usr/share/php/tests/MDB2/tests/testchoose.php";}s:15:"tests/tests.css";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"3c4d2c9d89398c5692d36299d98f9c6e";s:4:"name";s:15:"tests/tests.css";s:4:"role";s:4:"test";s:12:"installed_as";s:41:"/usr/share/php/tests/MDB2/tests/tests.css";}s:19:"tests/testUtils.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"841447ae8672a6779166791d0bf6ec03";s:4:"name";s:19:"tests/testUtils.php";s:4:"role";s:4:"test";s:12:"installed_as";s:45:"/usr/share/php/tests/MDB2/tests/testUtils.php";}s:25:"tests/test_setup.php.dist";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c30bfb476b678d53c7f5e158bde7d9a9";s:4:"name";s:25:"tests/test_setup.php.dist";s:4:"role";s:4:"test";s:12:"installed_as";s:51:"/usr/share/php/tests/MDB2/tests/test_setup.php.dist";}s:7:"LICENSE";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a5019765abfd14334f25231c61c568ef";s:4:"name";s:7:"LICENSE";s:4:"role";s:4:"data";s:12:"installed_as";s:26:"/var/www/pear/MDB2/LICENSE";}s:8:"MDB2.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"0d4093f6d7db5ec64434116b700e9a82";s:4:"name";s:8:"MDB2.php";s:4:"role";s:3:"php";s:12:"installed_as";s:23:"/usr/share/php/MDB2.php";}}s:12:"_lastversion";s:5:"2.4.0";s:7:"dirtree";a:12:{s:38:"/usr/share/php/docs/MDB2/docs/examples";b:1;s:29:"/usr/share/php/docs/MDB2/docs";b:1;s:35:"/usr/share/php/MDB2/Driver/Datatype";b:1;s:26:"/usr/share/php/MDB2/Driver";b:1;s:19:"/usr/share/php/MDB2";b:1;s:35:"/usr/share/php/MDB2/Driver/Function";b:1;s:34:"/usr/share/php/MDB2/Driver/Manager";b:1;s:33:"/usr/share/php/MDB2/Driver/Native";b:1;s:34:"/usr/share/php/MDB2/Driver/Reverse";b:1;s:31:"/usr/share/php/tests/MDB2/tests";b:1;s:18:"/var/www/pear/MDB2";b:1;s:14:"/usr/share/php";b:1;}s:3:"old";a:7:{s:7:"version";s:5:"2.4.1";s:12:"release_date";s:10:"2007-05-03";s:13:"release_state";s:6:"stable";s:15:"release_license";s:11:"BSD License";s:13:"release_notes";s:2022:"- fixed bug #10407: propagate errors in MDB2_Statement_Common::execute()
854
- fixed bug #10452: error in getDeclaration() with custom datatype_map and no
855
  datatype_map_callback function
856
- fixed bug #10521: quote($val,'decimal') and quote($val,'float') pass unsafe characters
857
- return length as "precision,scale" for NUMERIC and DECIMAL fields in mapNativeDatatype()
858
- fixed bug #10537: safer check for valid MDB2 connection in singleton() [fornax]
859
- fixed bug #10598: MDB2::singleton() not working in some rare conditions [fornax]
860
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
861
  module, also return the field position in the index/constraint
862
- exec() now returns a reference instead of a copy to prevent memory leaks
863
- request #10787: MDB2_Driver_Common::$phptype and $dbsyntax properties are now public
864
 
865
open todo items:
866
- handle autoincrement fields in alterTable()
867
- add length handling to LOB reverse engineering
868
- add EXPLAIN abstraction
869
- add cursor support along the lines of PDO (Request #3660 etc.)
870
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
871
- add support to export/import in CSV format
872
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
873
- add support for database/table/row LOCKs
874
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
875
- generate STATUS file from test suite results and allow users to submit test results
876
- add support for full text index creation and querying
877
- add tests to check if the RDBMS specific handling with portability options
878
  disabled behaves as expected
879
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
880
- add a getTableFieldsDefinitions() method to be used in tableInfo()
881
- drop ILIKE from matchPattern() and instead add a second parameter to
882
  handle case sensitivity with arbitrary operators
883
- add charset and collation support to field declaration in all drivers
884
- handle LOBs in buffered result sets (Request #8793)";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:"4.3.2";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:7:"1.4.0b1";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:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.3.6";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:5:{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";}i:2;a:5:{s:4:"name";s:11:"Paul Cooper";s:5:"email";s:14:"pgc@ucecom.com";s:6:"active";s:2:"no";s:6:"handle";s:3:"pgc";s:4:"role";s:11:"contributor";}i:3;a:5:{s:4:"name";s:16:"Daniel Convissor";s:5:"email";s:15:"danielc@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:7:"danielc";s:4:"role";s:6:"helper";}i:4;a:5:{s:4:"name";s:14:"David Coallier";s:5:"email";s:17:"david@jaws.com.mx";s:6:"active";s:3:"yes";s:6:"handle";s:6:"davidc";s:4:"role";s:6:"helper";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1180420360;}