1<?xml version="1.0" encoding="UTF-8"?> 2<package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="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"> 3 <name>MDB2</name> 4 <channel>pear.php.net</channel> 5 <extends>MDB</extends> 6 <summary>database abstraction layer</summary> 7 <description>PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers. 8 9It provides a common API for all supported RDBMS. The main difference to most 10other DB abstraction packages is that MDB2 goes much further to ensure 11portability. MDB2 provides most of its many features optionally that 12can be used to construct portable SQL statements: 13* Object-Oriented API 14* A DSN (data source name) or array format for specifying database servers 15* Datatype abstraction and on demand datatype conversion 16* Various optional fetch modes to fix portability issues 17* Portable error codes 18* Sequential and non sequential row fetching as well as bulk fetching 19* Ability to make buffered and unbuffered queries 20* Ordered array and associative array for the fetched rows 21* Prepare/execute (bind) named and unnamed placeholder emulation 22* Sequence/autoincrement emulation 23* Replace emulation 24* Limited sub select emulation 25* Row limit emulation 26* Transactions/savepoint support 27* Large Object support 28* Index/Unique Key/Primary Key support 29* Pattern matching abstraction 30* Module framework to load advanced functionality on demand 31* Ability to read the information schema 32* RDBMS management methods (creating, dropping, altering) 33* Reverse engineering schemas from an existing database 34* SQL function call abstraction 35* Full integration into the PEAR Framework 36* PHPDoc API documentation</description> 37 <lead> 38 <name>Lukas Kahwe Smith</name> 39 <user>lsmith</user> 40 <email>smith@pooteeweet.org</email> 41 <active>no</active> 42 </lead> 43 <lead> 44 <name>Lorenzo Alberton</name> 45 <user>quipo</user> 46 <email>l.alberton@quipo.it</email> 47 <active>yes</active> 48 </lead> 49 <lead> 50 <name>Daniel Convissor</name> 51 <user>danielc</user> 52 <email>danielc@php.net</email> 53 <active>yes</active> 54 </lead> 55 <contributor> 56 <name>Paul Cooper</name> 57 <user>pgc</user> 58 <email>pgc@ucecom.com</email> 59 <active>no</active> 60 </contributor> 61 <helper> 62 <name>David Coallier</name> 63 <user>davidc</user> 64 <email>david@jaws.com.mx</email> 65 <active>yes</active> 66 </helper> 67 <helper> 68 <name>Ali Fazelzadeh</name> 69 <user>afz</user> 70 <email>afz@dev-code.com</email> 71 <active>yes</active> 72 </helper> 73 <date>2012-10-29</date> 74 <time>15:41:51</time> 75 <version> 76 <release>2.5.0b5</release> 77 <api>2.5.0b5</api> 78 </version> 79 <stability> 80 <release>beta</release> 81 <api>beta</api> 82 </stability> 83 <license>BSD License</license> 84 <notes> 85- fixed bug #18494: _compareIntegerDefinition() ignores length change. 86- fixed bug #16280: compareDefinition() turns NULL defaults into empty strings for NOT NULL columns. 87- fixed bug #19677: Call to undefined function: MDB2_Driver_mysql::isError() 88 89open todo items: 90- handle autoincrement fields in alterTable() 91- add length handling to LOB reverse engineering 92- add EXPLAIN abstraction 93- add cursor support along the lines of PDO (Request #3660 etc.) 94- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 95- add support to export/import in CSV format 96- add more functions to the Function module (MD5(), IFNULL(), etc.) 97- add support for database/table/row LOCKs 98- add support for CHECK (ENUM as possible mysql fallback) constraints 99- generate STATUS file from test suite results and allow users to submit test results 100- add support for full text index creation and querying 101- add tests to check if the RDBMS specific handling with portability options 102 disabled behaves as expected 103- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 104- add a getTableFieldsDefinitions() method to be used in tableInfo() 105- drop ILIKE from matchPattern() and instead add a second parameter to 106 handle case sensitivity with arbitrary operators 107- handle LOBs in buffered result sets (Request #8793) 108 </notes> 109 <contents> 110 <dir baseinstalldir="/" name="/"> 111 <file baseinstalldir="/" md5sum="5a689ee5fa18f686905e6bd55bea11be" name="docs/examples/example.php" role="doc"> 112 <tasks:replace from="@package_version@" to="version" type="package-info" /> 113 </file> 114 <file baseinstalldir="/" md5sum="a89ca12c63535e42b75c5c1177689747" name="docs/examples/example_php5.php" role="doc"> 115 <tasks:replace from="@package_version@" to="version" type="package-info" /> 116 </file> 117 <file baseinstalldir="/" md5sum="74b2bb45de61eccbffed7d75d5268af9" name="docs/examples/metapear_test_db.schema" role="doc"> 118 <tasks:replace from="@package_version@" to="version" type="package-info" /> 119 </file> 120 <file baseinstalldir="/" md5sum="a253b37e185622112acfef6c94b79aef" name="docs/CONTRIBUTORS" role="doc"> 121 <tasks:replace from="@package_version@" to="version" type="package-info" /> 122 </file> 123 <file baseinstalldir="/" md5sum="fb6255492763a38f2ad95d86e7ccbbf1" name="docs/datatypes.html" role="doc"> 124 <tasks:replace from="@package_version@" to="version" type="package-info" /> 125 </file> 126 <file baseinstalldir="/" md5sum="a70b17bcd8e56911f74a4dff61a3ff8d" name="docs/MAINTAINERS" role="doc"> 127 <tasks:replace from="@package_version@" to="version" type="package-info" /> 128 </file> 129 <file baseinstalldir="/" md5sum="c7b68ea23aa2ae6d91913703a2246f15" name="docs/README" role="doc"> 130 <tasks:replace from="@package_version@" to="version" type="package-info" /> 131 </file> 132 <file baseinstalldir="/" md5sum="9eca356459bd2c74976e2dc08114ccdd" name="docs/STATUS" role="doc"> 133 <tasks:replace from="@package_version@" to="version" type="package-info" /> 134 </file> 135 <file baseinstalldir="/" md5sum="ec0c4383ddfd3af69d577344d0d5b4dd" name="docs/TODO" role="doc"> 136 <tasks:replace from="@package_version@" to="version" type="package-info" /> 137 </file> 138 <file baseinstalldir="/" md5sum="76f4aef169e3249e89946b1a4ee1e72e" name="MDB2/Driver/Datatype/Common.php" role="php"> 139 <tasks:replace from="@package_version@" to="version" type="package-info" /> 140 </file> 141 <file baseinstalldir="/" md5sum="06ac8297c5b84810e244ef3f296c9909" name="MDB2/Driver/Function/Common.php" role="php"> 142 <tasks:replace from="@package_version@" to="version" type="package-info" /> 143 </file> 144 <file baseinstalldir="/" md5sum="1f2671765f855b4e42317584c5c5cefc" name="MDB2/Driver/Manager/Common.php" role="php"> 145 <tasks:replace from="@package_version@" to="version" type="package-info" /> 146 </file> 147 <file baseinstalldir="/" md5sum="977e6c68269ab679f233bf72cfa46db6" name="MDB2/Driver/Native/Common.php" role="php"> 148 <tasks:replace from="@package_version@" to="version" type="package-info" /> 149 </file> 150 <file baseinstalldir="/" md5sum="7ede6c3c81506349871e68949ff4cbe9" name="MDB2/Driver/Reverse/Common.php" role="php"> 151 <tasks:replace from="@package_version@" to="version" type="package-info" /> 152 </file> 153 <file baseinstalldir="/" md5sum="9431ecf0ca9aa4be2278b5a67d56692f" name="MDB2/Date.php" role="php"> 154 <tasks:replace from="@package_version@" to="version" type="package-info" /> 155 </file> 156 <file baseinstalldir="/" md5sum="bb05a17304899664eeef90d4185d2c90" name="MDB2/Extended.php" role="php"> 157 <tasks:replace from="@package_version@" to="version" type="package-info" /> 158 </file> 159 <file baseinstalldir="/" md5sum="dff24e2d856068d6ae716289fc5fa602" name="MDB2/Iterator.php" role="php"> 160 <tasks:replace from="@package_version@" to="version" type="package-info" /> 161 </file> 162 <file baseinstalldir="/" md5sum="0995b814a2269ee98e56810ee7c56743" name="MDB2/LOB.php" role="php"> 163 <tasks:replace from="@package_version@" to="version" type="package-info" /> 164 </file> 165 <file baseinstalldir="/" md5sum="495ce610af17e85504bcaa4948dd674b" name="tests/Nonstandard/Base.php" role="test" /> 166 <file baseinstalldir="/" md5sum="88180b869efe23dcc10dc335d1a86cc9" name="tests/Nonstandard/SqlservHelper.php" role="test" /> 167 <file baseinstalldir="/" md5sum="6154365fbc935bff18d09ce85631c591" name="tests/Standard/Abstract.php" role="test" /> 168 <file baseinstalldir="/" md5sum="4c1b01bcbff9f867fcc4334bfc1e5741" name="tests/Standard/ApiTest.php" role="test" /> 169 <file baseinstalldir="/" md5sum="867da09d597872d66b475319b63147f0" name="tests/Standard/BugsTest.php" role="test" /> 170 <file baseinstalldir="/" md5sum="4805340558ca79c65620450a716a33ba" name="tests/Standard/DatatypeTest.php" role="test" /> 171 <file baseinstalldir="/" md5sum="49b9e7b6b6734038e8d099571e1c75b8" name="tests/Standard/ExtendedTest.php" role="test" /> 172 <file baseinstalldir="/" md5sum="fca11883f6012a7b22bf37341b3ca8bb" name="tests/Standard/FunctionTest.php" role="test" /> 173 <file baseinstalldir="/" md5sum="124d2c68bfc8dc924f0a31201c98134e" name="tests/Standard/InternalsTest.php" role="test"> 174 <tasks:replace from="@package_version@" to="version" type="package-info" /> 175 </file> 176 <file baseinstalldir="/" md5sum="55dd0b2ab097bed18f472116f5b55eae" name="tests/Standard/ManagerTest.php" role="test" /> 177 <file baseinstalldir="/" md5sum="7d65b9467fc024c78ea45698cf0bae0d" name="tests/Standard/ReverseTest.php" role="test" /> 178 <file baseinstalldir="/" md5sum="359888848e14308dc4d22fa4c292aa09" name="tests/Standard/UsageTest.php" role="test" /> 179 <file baseinstalldir="/" md5sum="a4ad7d4f5bb1caf918d6922674dd1c41" name="tests/AllTests.php" role="test" /> 180 <file baseinstalldir="/" md5sum="5ef86f767c99dc2fdf5ee9ac5a0db9a6" name="tests/autoload.inc" role="test"> 181 <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" /> 182 </file> 183 <file baseinstalldir="/" md5sum="8a1c23383cab0a3aa2c5e977c5cfdc49" name="tests/Debug.php" role="test" /> 184 <file baseinstalldir="/" md5sum="e9d8a45ae62be18000f51a08c5cdf143" name="tests/dsn.inc" role="test" /> 185 <file baseinstalldir="/" md5sum="dd740b466aff47209486c0a967cef86a" name="tests/functions.inc" role="test" /> 186 <file baseinstalldir="/" md5sum="64882e6a2b9bd1b459c0c52f34db396b" name="tests/import.schema.php" role="test" /> 187 <file baseinstalldir="/" md5sum="997685ec0ba37bd6a2db8e9ec728e61c" name="tests/README" role="test" /> 188 <file baseinstalldir="/" md5sum="8f37058a24d6b0b343370452483595ea" name="tests/schema.xml" role="test" /> 189 <file baseinstalldir="/" md5sum="a5019765abfd14334f25231c61c568ef" name="LICENSE" role="data" /> 190 <file baseinstalldir="/" md5sum="e5bd768cca253a9ff668b3c0afe07396" name="MDB2.php" role="php"> 191 <tasks:replace from="@package_version@" to="version" type="package-info" /> 192 </file> 193 </dir> 194 </contents> 195 <dependencies> 196 <required> 197 <php> 198 <min>5.2.0</min> 199 </php> 200 <pearinstaller> 201 <min>1.9.1</min> 202 </pearinstaller> 203 <package> 204 <name>PEAR</name> 205 <channel>pear.php.net</channel> 206 <min>1.3.6</min> 207 </package> 208 </required> 209 <group hint="Frontbase SQL driver for MDB2" name="fbsql"> 210 <subpackage> 211 <name>MDB2_Driver_fbsql</name> 212 <channel>pear.php.net</channel> 213 <min>0.3.0</min> 214 </subpackage> 215 </group> 216 <group hint="Interbase/Firebird driver for MDB2" name="ibase"> 217 <subpackage> 218 <name>MDB2_Driver_ibase</name> 219 <channel>pear.php.net</channel> 220 <min>1.5.0b4</min> 221 </subpackage> 222 </group> 223 <group hint="MS SQL Server driver for MDB2" name="mssql"> 224 <subpackage> 225 <name>MDB2_Driver_mssql</name> 226 <channel>pear.php.net</channel> 227 <min>1.5.0b4</min> 228 </subpackage> 229 </group> 230 <group hint="MySQL driver for MDB2" name="mysql"> 231 <subpackage> 232 <name>MDB2_Driver_mysql</name> 233 <channel>pear.php.net</channel> 234 <min>1.5.0b4</min> 235 </subpackage> 236 </group> 237 <group hint="MySQLi driver for MDB2" name="mysqli"> 238 <subpackage> 239 <name>MDB2_Driver_mysqli</name> 240 <channel>pear.php.net</channel> 241 <min>1.5.0b4</min> 242 </subpackage> 243 </group> 244 <group hint="Oracle driver for MDB2" name="oci8"> 245 <subpackage> 246 <name>MDB2_Driver_oci8</name> 247 <channel>pear.php.net</channel> 248 <min>1.5.0b4</min> 249 </subpackage> 250 </group> 251 <group hint="ODBC driver for MDB2" name="odbc"> 252 <subpackage> 253 <name>MDB2_Driver_odbc</name> 254 <channel>pear.php.net</channel> 255 <min>0.2.0</min> 256 </subpackage> 257 </group> 258 <group hint="PostgreSQL driver for MDB2" name="pgsql"> 259 <subpackage> 260 <name>MDB2_Driver_pgsql</name> 261 <channel>pear.php.net</channel> 262 <min>1.5.0b4</min> 263 </subpackage> 264 </group> 265 <group hint="Querysim driver for MDB2" name="querysim"> 266 <subpackage> 267 <name>MDB2_Driver_querysim</name> 268 <channel>pear.php.net</channel> 269 <min>0.7.0</min> 270 </subpackage> 271 </group> 272 <group hint="SQLite2 driver for MDB2" name="sqlite"> 273 <subpackage> 274 <name>MDB2_Driver_sqlite</name> 275 <channel>pear.php.net</channel> 276 <min>1.5.0b4</min> 277 </subpackage> 278 </group> 279 <group hint="MS SQL Server driver for MDB2" name="sqlsrv"> 280 <subpackage> 281 <name>MDB2_Driver_sqlsrv</name> 282 <channel>pear.php.net</channel> 283 <min>1.5.0b5</min> 284 </subpackage> 285 </group> 286 </dependencies> 287 <phprelease /> 288 <changelog> 289 <release> 290 <version> 291 <release>2.5.0b5</release> 292 <api>2.5.0b5</api> 293 </version> 294 <stability> 295 <release>beta</release> 296 <api>beta</api> 297 </stability> 298 <date>2012-10-29</date> 299 <license>BSD License</license> 300 <notes> 301- fixed bug #18494: _compareIntegerDefinition() ignores length change. 302- fixed bug #16280: compareDefinition() turns NULL defaults into empty strings for NOT NULL columns. 303- fixed bug #19677: Call to undefined function: MDB2_Driver_mysql::isError() 304 305open todo items: 306- handle autoincrement fields in alterTable() 307- add length handling to LOB reverse engineering 308- add EXPLAIN abstraction 309- add cursor support along the lines of PDO (Request #3660 etc.) 310- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 311- add support to export/import in CSV format 312- add more functions to the Function module (MD5(), IFNULL(), etc.) 313- add support for database/table/row LOCKs 314- add support for CHECK (ENUM as possible mysql fallback) constraints 315- generate STATUS file from test suite results and allow users to submit test results 316- add support for full text index creation and querying 317- add tests to check if the RDBMS specific handling with portability options 318 disabled behaves as expected 319- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 320- add a getTableFieldsDefinitions() method to be used in tableInfo() 321- drop ILIKE from matchPattern() and instead add a second parameter to 322 handle case sensitivity with arbitrary operators 323- handle LOBs in buffered result sets (Request #8793) 324 </notes> 325 </release> 326 <release> 327 <version> 328 <release>2.5.0b4</release> 329 <api>2.5.0b4</api> 330 </version> 331 <stability> 332 <release>beta</release> 333 <api>beta</api> 334 </stability> 335 <date>2012-10-23</date> 336 <license>BSD License</license> 337 <notes> 338- MDB2 is now E_STRICT compliant! [danielc] 339- Fix Bug #9502: Strong typing query result misbehaves [danielc] 340- Fix Bug #16508: mdb2-2.5.0b1 not working with PHP 5.3.0 [quipo] 341- Fix Bug #17552: MDB2_Driver_Manager_ibase::listTableConstraints returns list of indices [quipo] 342- Fix Bug #17890: Improper use of array_search in psgsql.php v1.173 prepare function [quipo] 343- Fix Bug #18050: Many &quot;Deprecated&quot; [quipo] 344- Fix Bug #18175: Using MDB2::factory raises fatal error [quipo] 345- Fix Bug #18203: Type introspection breaks with associative arrays if names are identical [danielc] (patch by Peter Bex) 346- Fix Bug #18398: non-static functions called statically [danielc] 347- Fix Bug #18427: Notices appear while debugging [quipo] 348- Fix Bug #18721: DSN URLs do not support &quot;@&quot; in database names [danielc] 349- Fix Bug #18826: Crash and security problem with is_a() in combination with value escaping [doconnor] 350- Fix Bug #18886: Deprecated code generates warnings [astembridge] 351- Fix Bug #18978: upgrade from alpha2 to beta3 breaks iterator.php [danielc] 352- Fix Bug #19008: remove error_reporting (for PEAR QA team) [danielc] 353- Fix Bug #19136: Infinite Recurcsion makes result object unuseable [danielc] 354- Fix Bug #19148: &quot;undefined variable result&quot; in MDB2_Driver_Common::_wrapQuery() [danielc] 355- Fix Bug #19191: Have dropSequence() return MDB2_OK on success, as documented [danielc] 356- Fix Bug #19192: Have createSequence() return MDB2_OK on success, as documented [danielc] 357- Fix Bug #19193: Have createConstraint() return MDB2_OK on success, as documented [danielc] 358- Fix Bug #19194: Have dropConstraint() return MDB2_OK on success, as documented [danielc] 359- Fix Bug #19195: Have createIndex() return MDB2_OK on success, as documented [danielc] 360- Fix Bug #19196: Have vacuum() return MDB2_OK on success, as documented [danielc] 361- Fix Bug #19199: Have dropTable() return MDB2_OK on success, as documented [danielc] 362- Fix Bug #19200: Have alterTable() return MDB2_OK on success, as documented [danielc] 363- Fix Bug #19201: Have truncateTable() return MDB2_OK on success, as documented [danielc] 364- Fix Bug #19202: sqlite foreign key violations produce generic MDB2_ERROR [danielc] 365- Fix Bug #19262: Fetchmode constants WERE bitwise [gauthierm] 366- Implement Feature #17367: Documentation Sync Drift [quipo] 367- Implement Feature #18759: User note that is a documentation problem [danielc] 368- small performance tweaks 369 370open todo items: 371- handle autoincrement fields in alterTable() 372- add length handling to LOB reverse engineering 373- add EXPLAIN abstraction 374- add cursor support along the lines of PDO (Request #3660 etc.) 375- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 376- add support to export/import in CSV format 377- add more functions to the Function module (MD5(), IFNULL(), etc.) 378- add support for database/table/row LOCKs 379- add support for CHECK (ENUM as possible mysql fallback) constraints 380- generate STATUS file from test suite results and allow users to submit test results 381- add support for full text index creation and querying 382- add tests to check if the RDBMS specific handling with portability options 383 disabled behaves as expected 384- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 385- add a getTableFieldsDefinitions() method to be used in tableInfo() 386- drop ILIKE from matchPattern() and instead add a second parameter to 387 handle case sensitivity with arbitrary operators 388- handle LOBs in buffered result sets (Request #8793) 389 </notes> 390 </release> 391 <release> 392 <version> 393 <release>2.5.0b3</release> 394 <api>2.5.0b3</api> 395 </version> 396 <stability> 397 <release>beta</release> 398 <api>beta</api> 399 </stability> 400 <date>2010-08-29</date> 401 <license>BSD License</license> 402 <notes> 403- fixed bug #15912: MDB2::loadClass can return MDB2_OK without loading class 404- fixed bug #16020: unable to set params via dsn string in parseDSN() 405- fixed bug #16508: reusing var name + return by ref [rix0r] 406- fixed bug #16727: quote(url, 'clob')) fetches URL even if lob_allow_url_include option is false 407- fixed unreported bug in parseDSN() and oracle's Easy Connect syntax 408- fixed bug #16973 and #17039: Wrong _skipDelimitedStrings behavior with escaped quotes 409- fixed bug #16994: incompatible declaration of setTransactionIsolation() in some drivers 410- dropped PHP 4 support 411- PHP 5.3 compatibility fixes 412- performance tweaks (reduced number of internal function calls) 413- added new sqlsrv driver (native SQL Server driver) [Chris Pucci, Mike Ketcham] 414- added new ODBC experimental driver [pschellhaas] 415- Switched test suite to PHPUnit 3.5 416 417open todo items: 418- handle autoincrement fields in alterTable() 419- add length handling to LOB reverse engineering 420- add EXPLAIN abstraction 421- add cursor support along the lines of PDO (Request #3660 etc.) 422- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 423- add support to export/import in CSV format 424- add more functions to the Function module (MD5(), IFNULL(), etc.) 425- add support for database/table/row LOCKs 426- add support for CHECK (ENUM as possible mysql fallback) constraints 427- generate STATUS file from test suite results and allow users to submit test results 428- add support for full text index creation and querying 429- add tests to check if the RDBMS specific handling with portability options 430 disabled behaves as expected 431- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 432- add a getTableFieldsDefinitions() method to be used in tableInfo() 433- drop ILIKE from matchPattern() and instead add a second parameter to 434 handle case sensitivity with arbitrary operators 435- handle LOBs in buffered result sets (Request #8793) 436 </notes> 437 </release> 438 <release> 439 <version> 440 <release>2.5.0b2</release> 441 <api>2.5.0b2</api> 442 </version> 443 <stability> 444 <release>beta</release> 445 <api>beta</api> 446 </stability> 447 <date>2009-01-14</date> 448 <license>BSD License</license> 449 <notes> 450- fixed bug #12117: disconnect() does not work as documented 451- fixed bug #12912: replace() documentation 452- fixed bug #13811: _skipDelimitedStrings() fails on empty strings 453- fixed bug #13898: more tolerant check for 'new_link' DSN option 454- request #13929: added 'default_fk_action_ondelete' and 'default_fk_action_onupdate' 455 options for default FOREIGN KEY constraints actions 456- fixed bug #14124: _skipDelimitedStrings() and prepare() fail with sql comments 457 inside quoted strings 458- fixed bug #14179: declaration of MDB2_Driver_Common::raiseError() must be 459 compatible with that of PEAR::raiseError() 460- fixed doc bug #14290: connect should mention the type of object returned 461- fixed bug #14831: $ignores in _skipDelimitedStrings() [patch by Aleksander Machniak] 462 463open todo items: 464- handle autoincrement fields in alterTable() 465- add length handling to LOB reverse engineering 466- add EXPLAIN abstraction 467- add cursor support along the lines of PDO (Request #3660 etc.) 468- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 469- add support to export/import in CSV format 470- add more functions to the Function module (MD5(), IFNULL(), etc.) 471- add support for database/table/row LOCKs 472- add support for CHECK (ENUM as possible mysql fallback) constraints 473- generate STATUS file from test suite results and allow users to submit test results 474- add support for full text index creation and querying 475- add tests to check if the RDBMS specific handling with portability options 476 disabled behaves as expected 477- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 478- add a getTableFieldsDefinitions() method to be used in tableInfo() 479- drop ILIKE from matchPattern() and instead add a second parameter to 480 handle case sensitivity with arbitrary operators 481- handle LOBs in buffered result sets (Request #8793) 482 </notes> 483 </release> 484 <release> 485 <version> 486 <release>2.5.0b1</release> 487 <api>2.5.0b1</api> 488 </version> 489 <stability> 490 <release>alpha</release> 491 <api>alpha</api> 492 </stability> 493 <date>2008-03-15</date> 494 <license>BSD License</license> 495 <notes> 496- request #12731: added truncateTable() in the Manager module 497- request #12732: added vacuum() in the Manager module for OPTIMIZE/VACUUM TABLE abstraction 498- request #12800: added alterDatabase() in the Manager module [afz] 499- fixed bug #12924: correctly handle internal expected errors even with custom error handling 500- fixed bug #12991: new error code in errorInfo() [afz] 501- added databaseExists() method [afz] 502- request #13106: added unixtimestamp() in the Function module 503- added max_identifiers_length option 504 505open todo items: 506- handle autoincrement fields in alterTable() 507- add length handling to LOB reverse engineering 508- add EXPLAIN abstraction 509- add cursor support along the lines of PDO (Request #3660 etc.) 510- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 511- add support to export/import in CSV format 512- add more functions to the Function module (MD5(), IFNULL(), etc.) 513- add support for database/table/row LOCKs 514- add support for CHECK (ENUM as possible mysql fallback) constraints 515- generate STATUS file from test suite results and allow users to submit test results 516- add support for full text index creation and querying 517- add tests to check if the RDBMS specific handling with portability options 518 disabled behaves as expected 519- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 520- add a getTableFieldsDefinitions() method to be used in tableInfo() 521- drop ILIKE from matchPattern() and instead add a second parameter to 522 handle case sensitivity with arbitrary operators 523- handle LOBs in buffered result sets (Request #8793) 524 </notes> 525 </release> 526 <release> 527 <version> 528 <release>2.5.0a2</release> 529 <api>2.5.0a2</api> 530 </version> 531 <stability> 532 <release>alpha</release> 533 <api>alpha</api> 534 </stability> 535 <date>2007-12-06</date> 536 <license>BSD License</license> 537 <notes> 538- fixed bug #12358: E_STRICT changes in latest alpha broke PHP4 compatibility 539- fixed bug #12351: wrong case for function PEAR::isError() in the Reverse module 540 [was: IsError()] 541- fixed bug #12530: MDB2_Extended::autoPrepare() gives error if $types is null 542- request #12012: added charset/collation support in createDatabase() for the 543 drivers that support this feature 544- added bindname_format option (this is the regexp used to recognize named 545 placeholders in prepared statements) 546 547open todo items: 548- handle autoincrement fields in alterTable() 549- add length handling to LOB reverse engineering 550- add EXPLAIN abstraction 551- add cursor support along the lines of PDO (Request #3660 etc.) 552- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 553- add support to export/import in CSV format 554- add more functions to the Function module (MD5(), IFNULL(), etc.) 555- add support for database/table/row LOCKs 556- add support for CHECK (ENUM as possible mysql fallback) constraints 557- generate STATUS file from test suite results and allow users to submit test results 558- add support for full text index creation and querying 559- add tests to check if the RDBMS specific handling with portability options 560 disabled behaves as expected 561- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 562- add a getTableFieldsDefinitions() method to be used in tableInfo() 563- drop ILIKE from matchPattern() and instead add a second parameter to 564 handle case sensitivity with arbitrary operators 565- handle LOBs in buffered result sets (Request #8793) 566 </notes> 567 </release> 568 <release> 569 <version> 570 <release>2.5.0a1</release> 571 <api>2.5.0a1</api> 572 </version> 573 <stability> 574 <release>alpha</release> 575 <api>alpha</api> 576 </stability> 577 <date>2007-10-28</date> 578 <license>BSD License</license> 579 <notes> 580- fixed bug #10024: Security fix for LOBs. Added an option to turn lob_allow_url_include off by default 581- fixed bug #11179: prepared statements with named placeholders fail if extra values are provided 582- request #11297: added support for "schema.table" (or "owner.table") notation in the Reverse module 583- initial support for FOREIGN KEY and CHECK constraints in the Reverse and Manager modules 584- fixed bug #11428: propagate quote() errors with invalid data types 585- added new test cases in the test suite 586- added LENGTH() function in the Function module 587- fixed bug #11612: raiseError() must be compatible with PEAR::raiseError() [PHP6] 588- fixed bug #11790: avoid array_diff() because it has a memory leak in PHP 5.1.x 589- fixed bug #11906: quoteIdentifier fails for names with dots 590- fixed bug #11975: Extended::autoExecute() does not work with Oracle when using LOBs 591 (patch by Pieter Meulen, van der) 592- fixed some E_STRICT errors with PHP5 593- fixed bug #12083: createTable() in the Manager module now returns MDB2_OK on success, 594 as documented 595- fixed bug #12246: wrong check in MDB2::isStatement() (thanks to zaa@zaa.pp.ru) 596 597open todo items: 598- handle autoincrement fields in alterTable() 599- add length handling to LOB reverse engineering 600- add EXPLAIN abstraction 601- add cursor support along the lines of PDO (Request #3660 etc.) 602- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 603- add support to export/import in CSV format 604- add more functions to the Function module (MD5(), IFNULL(), etc.) 605- add support for database/table/row LOCKs 606- add support for CHECK (ENUM as possible mysql fallback) constraints 607- generate STATUS file from test suite results and allow users to submit test results 608- add support for full text index creation and querying 609- add tests to check if the RDBMS specific handling with portability options 610 disabled behaves as expected 611- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 612- add a getTableFieldsDefinitions() method to be used in tableInfo() 613- drop ILIKE from matchPattern() and instead add a second parameter to 614 handle case sensitivity with arbitrary operators 615- add charset and collation support to field declaration in all drivers 616- handle LOBs in buffered result sets (Request #8793) 617 </notes> 618 </release> 619 <release> 620 <version> 621 <release>2.4.1</release> 622 <api>2.4.1</api> 623 </version> 624 <stability> 625 <release>stable</release> 626 <api>stable</api> 627 </stability> 628 <date>2007-05-03</date> 629 <license>BSD License</license> 630 <notes> 631- fixed bug #10407: propagate errors in MDB2_Statement_Common::execute() 632- fixed bug #10452: error in getDeclaration() with custom datatype_map and no 633 datatype_map_callback function 634- fixed bug #10521: quote($val,'decimal') and quote($val,'float') pass unsafe characters 635- return length as "precision,scale" for NUMERIC and DECIMAL fields in mapNativeDatatype() 636- fixed bug #10537: safer check for valid MDB2 connection in singleton() [fornax] 637- fixed bug #10598: MDB2::singleton() not working in some rare conditions [fornax] 638- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse 639 module, also return the field position in the index/constraint 640- exec() now returns a reference instead of a copy to prevent memory leaks 641- request #10787: MDB2_Driver_Common::$phptype and $dbsyntax properties are now public 642 643open todo items: 644- handle autoincrement fields in alterTable() 645- add length handling to LOB reverse engineering 646- add EXPLAIN abstraction 647- add cursor support along the lines of PDO (Request #3660 etc.) 648- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 649- add support to export/import in CSV format 650- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.) 651- add support for database/table/row LOCKs 652- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints 653- generate STATUS file from test suite results and allow users to submit test results 654- add support for full text index creation and querying 655- add tests to check if the RDBMS specific handling with portability options 656 disabled behaves as expected 657- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 658- add a getTableFieldsDefinitions() method to be used in tableInfo() 659- drop ILIKE from matchPattern() and instead add a second parameter to 660 handle case sensitivity with arbitrary operators 661- add charset and collation support to field declaration in all drivers 662- handle LOBs in buffered result sets (Request #8793) 663 </notes> 664 </release> 665 <release> 666 <version> 667 <release>2.4.0</release> 668 <api>2.4.0</api> 669 </version> 670 <stability> 671 <release>stable</release> 672 <api>stable</api> 673 </stability> 674 <date>2007-03-13</date> 675 <license>BSD License</license> 676 <notes> 677- propagate errors in getTableFieldDefinition() in the Reverse module 678- internally use MDB2::classExists() wrapper instead of directly calling class_exists() 679- fixed bug #9502: query result misbehaves when the number of returned columns 680 is greater than the number of passed types 681- fixed bug #9748: Table name is not quoted in Extended.php buildManipSQL() 682- fixed bug #9800: when the php extension for the driver fails to load, the 683 error is not propagated correctly and the script dies 684- propagate errors in the Datatype module 685- implemented guid() in the Function module [globally unique identifier] 686 (thanks to mario dot adam at schaeffler dot com) 687- fixed bug #4854: Oracle Easy Connect syntax only works with array DSN 688- fixed bug #10105: inTransaction() was returning an incorrect value after a call 689 to disconnect() or __destruct() 690- implemented a fallback mechanism within getTableIndexDefinition() and 691 getTableConstraintDefinition() in the Reverse module to ignore the 'idxname_format' 692 option and use the index name as provided in case of failure before returning 693 an error 694- added a 'nativetype_map_callback' option to map native data declarations back to 695 custom data types (thanks to Andrew Hill). 696- fixed bug #10234 and bug #10233: MDB2_Driver_Datatype_Common::mapNativeDatatype() 697 must ensure that it returns the correct length value, or null 698- added support for TEMPORARY tables (patch by Andrew Hill) 699- phpdoc fixes 700- fixed tests to be compatible with PHP4 701- added new tests, including some MDB2 internals tests by Andrew Hill and Monique Szpak 702 703open todo items: 704- handle autoincrement fields in alterTable() 705- add length handling to LOB reverse engineering 706- add EXPLAIN abstraction 707- add cursor support along the lines of PDO (Request #3660 etc.) 708- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 709- add support to export/import in CSV format 710- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.) 711- add support for database/table/row LOCKs 712- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints 713- generate STATUS file from test suite results and allow users to submit test results 714- add support for full text index creation and querying 715- add tests to check if the RDBMS specific handling with portability options 716 disabled behaves as expected 717- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 718- add a getTableFieldsDefinitions() method to be used in tableInfo() 719- drop ILIKE from matchPattern() and instead add a second parameter to 720 handle case sensitivity with arbitrary operators 721- add charset and collation support to field declaration in all drivers 722- handle LOBs in buffered result sets (Request #8793) 723 </notes> 724 </release> 725 <release> 726 <version> 727 <release>2.3.0</release> 728 <api>2.3.0</api> 729 </version> 730 <stability> 731 <release>stable</release> 732 <api>stable</api> 733 </stability> 734 <date>2006-11-03</date> 735 <license>BSD License</license> 736 <notes> 737- added charset and collation support to field declaration 738- added SQL comments and quoted identifier handling inside prepared statement parser 739- expanded length/scale support for numeric types (Request #7170) 740- added statement_format option to make it possible to define the name used for 741 native statements if supported 742- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute() 743- fixed notice in exec() call in autoExecute() 744- reversed if logic in MDB2::fileExists checking to be more fool proof with 745 safe_mode restrictions (Bug #8296) 746- moved CREATE TABLE query generation in a separate method for reuse in the drivers 747- added testLOBRead to test multiple LOB reads 748- fixed getColumnNames() optional parameter handling (Bug #8857) 749- phpdoc fix for fetchCol/fetchAll 750- added an extra if in the autoExecute method of the Extended driver (Bug #8878) 751- expanded tableInfo() tests 752- expanded prepare() tests 753- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107) 754- add test for lastInsertID() 755- also output php version in test results 756- added supported 'new_link' 757- dropped use of track_errors because 5.2.0 causes php_errormsg to not get 758 populated if a custom error handler is set and it was causing issues for 759 safe_mode users anyways 760- added some error handling into the bindValues()/bindParams() methods (Bug #9133) 761- bindValue() does not need values by reference 762- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158) 763- implemented stream_stat() method (Bug #9092) 764- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise 765- extracted _skipDelimitedStrings() method from prepare() 766- added test for _skipDelimitedStrings() method 767- migrated to package.xml version 2 768 769open todo items: 770- handle autoincrement fields in alterTable() 771- add length handling to LOB reverse engineering 772- expand charset support in schema management and result set handling (Request #4666) 773- add EXPLAIN abstraction 774- add cursor support along the lines of PDO (Request #3660 etc.) 775- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 776- add support to export/import in CSV format 777- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.) 778- add support for database/table/row LOCKs 779- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints 780- generate STATUS file from test suite results and allow users to submit test results 781- explore use of install groups (pear install MDB2#mysql) 782- add support for full text index creation and querying 783- add tests to check if the RDBMS specific handling with portability options 784 disabled behaves as expected 785- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 786- add a getTableFieldsDefinitions() method to be used in tableInfo() 787- drop ILIKE from matchPattern() and instead add a second parameter to 788 handle case sensitivity with arbitrary operators 789- add charset and collation support to field declaration in all drivers 790- handle LOBs in buffered result sets (Request #8793) 791 </notes> 792 </release> 793 <release> 794 <version> 795 <release>2.2.2</release> 796 <api>2.2.2</api> 797 </version> 798 <stability> 799 <release>stable</release> 800 <api>stable</api> 801 </stability> 802 <date>2006-09-03</date> 803 <license uri="http://www.example.com">BSD License</license> 804 <notes> 805- flip positions property array in prepared statement objects to make it 806 possible to optionally use the same named placeholder in multiple places 807 inside a single prepared statement 808- expanded prepare tests to cover more edge cases 809- renamed valid_types property to valid_default_values in the Datatype module 810 811open todo items: 812- handle autoincrement fields in alterTable() 813- add length handling to LOB reverse engineering 814- expand charset support in schema management and result set handling (Request #4666) 815- add EXPLAIN abstraction 816- add cursor support along the lines of PDO (Request #3660 etc.) 817- expand length/scale support for numeric types (Request #7170) 818- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 819- add support to export/import in CSV format 820- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.) 821- add support for database/table/row LOCKs 822- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints 823- generate STATUS file from test suite results and allow users to submit test results 824- add a package2.xml and explore use of install groups (pear install MDB2#mysql) 825- add support for full text index creation and querying 826- add tests to check if the RDBMS specific handling with portability options 827 disabled behaves as expected 828- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..) 829 </notes> 830 </release> 831 <release> 832 <version> 833 <release>2.2.1</release> 834 <api>2.2.1</api> 835 </version> 836 <stability> 837 <release>stable</release> 838 <api>stable</api> 839 </stability> 840 <date>2006-08-21</date> 841 <license uri="http://www.example.com">BSD License</license> 842 <notes> 843- fixed missing code in tableInfo() (Bug #8289) 844- fixed handling of indexes and constraints and types in tableInfo() (fixes BC break) 845- do not set nested transaction error if error is expected 846- explictly default to NULL when the column is NULLable and no default is set 847 (related to Bug #8359) 848- added support for case insensitive matching via ILIKE in matchPattern() 849- added getAsKeyword() for generating "AS" keyword as required by the RDBMS 850- return an error if a named placeholder name is used twice inside a single statement 851- add support for multi column PRIMARY KEYs in createTable() 852- added lower() and upper() to the function module 853- moved escaping tests to datatype tests 854- added summary at the end of a test run for each RDBMS 855- explicitly pass the php_type var in all internal loadModule() calls 856- added support for 'primary' option in createTable() 857- expanded NULL tests 858- fixed handling return values when disable_query is set in _doQuery() and _execute() 859- check if safe_mode is enabled in fileExists() to determine what algo to use (Bug #8296) 860- added a test case for updating LOBs 861- added rtrim test case for LOBs 862- if result types are specified only rtrim() type 'text' fields (otherwise 863 it will mean that for some drivers LOB's would get rtrimmed) 864- phpdoc fixes to the convertResult*() methods 865- added execParam() method and code tweaks for get*() methods in the Extended module 866- removed redundant assertions when testing if a given feature is unsupported 867- removed tests of portability off (users should just set the given portability 868 setting they want to test in their test_setup.php) 869 870open todo items: 871- handle autoincrement fields in alterTable() 872- add length handling to LOB reverse engineering 873- expand charset support in schema management and result set handling (Request #4666) 874- add EXPLAIN abstraction 875- add cursor support along the lines of PDO (Request #3660 etc.) 876- expand length/scale support for numeric types (Request #7170) 877- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 878- add support to export/import in CSV format 879- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.) 880- add support for database/table/row LOCKs 881- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints 882- generate STATUS file from test suite results and allow users to submit test results 883- add a package2.xml and explore use of install groups (pear install MDB2#mysql) 884- add support for full text index creation and querying 885- add tests to check if the RDBMS specific handling with portability options 886 disabled behaves as expected 887 </notes> 888 </release> 889 <release> 890 <version> 891 <release>2.2.0</release> 892 <api>2.2.0</api> 893 </version> 894 <stability> 895 <release>stable</release> 896 <api>stable</api> 897 </stability> 898 <date>2006-07-23</date> 899 <license uri="http://www.example.com">BSD License</license> 900 <notes> 901- added MDB2_AUTOQUERY_SELECT (Request #7817) 902- added nested transaction support (inspired by ADODB's smart transactions) but 903 expanded to optionally use SAVEPOINTs *EXPERIMENTAL* 904 beginNestedTransaction(), completeNestedTransaction(), 905 failNestedTransaction(), getNestedTransactionError() 906- inTransaction() will now return an integer with the nested transaction depth 907 if a nested transaction has been started 908- added setTransactionIsolation() 909- added savepoint support to beginTransaction(), commit() and rollback() 910- added Native base class for consistency 911- added missing colnum parameter to queryOne() [used by getOne()] 912- added new tests for get*() Extended module methods 913- fixed missing db variable from getValidTypes() 914- added testing of a prepared statement with no parameters 915- added handling of empty result sets to result set verification in the test suite 916- oci8 and ibase (and possibly other rdbms) do not like freeing the statement 917 before reading the result set (Bug #8068): 918 * moved statement freeing after reading the result set in get*() Extended methods 919 * bypass prepared statement API for queries without parameters in autoExecute() 920 (this means you cannot use parameters with SELECT statements in autoExecute() 921 on the above mentioned platforms) 922- use data type callback in getValidTypes() 923- fixed identifier quoting in buildManipSQL() for SELECT statements (thx Kailoran) 924- phpdoc and cosmetic fixes in limitQuery() 925- added matchPattern() and patternEscapeString(), escapePattern() *EXPERIMENTAL* 926- added ability to escape wildcard characters in escape() and quote() 927- added debug() call at the end of a query/prepare/execute calling (Request #7933) 928- added context array parameter to debug() and make use of it whereever sensible 929- added optional method name parameter to raiseError() and use whereever possible 930- added a new option "debug_expanded_output" which needs to be set to true to 931 get additional context information and to get "post" callback calls 932- added testPortabilityOptions() 933- set length of 8 and fixed for user_password in the test suite 934- reworked tableInfo() to use a common implementation based on getTableFieldDefinition() 935 when a table name is passed (Bug #8124) 936- disconnect after changing database/DSN (otherwise transactions may be left open) 937 938open todo items: 939- handle autoincrement fields in alterTable() 940- add length handling to LOB reverse engineering 941- expand charset support in schema management and result set handling (Request #4666) 942- add EXPLAIN abstraction 943- add cursor support along the lines of PDO (Request #3660 etc.) 944- expand length/scale support for numeric types (Request #7170) 945- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907) 946- add support to export/import in CSV format 947- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.) 948- add support to generating "AS" keyword if required 949- add support for database/table/row LOCKs 950- add ActiveRecord implementation (probably as a separate package) 951- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints 952- extended to support for case insensitive matching via ILIKE/collate in matchPattern() 953- generate STATUS file from test suite results and allow users to submit test results 954 </notes> 955 </release> 956 <release> 957 <version> 958 <release>2.1.0</release> 959 <api>2.1.0</api> 960 </version> 961 <stability> 962 <release>stable</release> 963 <api>stable</api> 964 </stability> 965 <date>2006-06-15</date> 966 <license uri="http://www.example.com">BSD License</license> 967 <notes> 968- removed bogus code from execute() 969- new test case for floats/decimals and locale 970- reworked fix for float/decimal handling 971- expanded scientific notation handling 972- fixed several minor issues with the datatype tests 973- removed use of "*" in all places in the test suite that are followed by a fetch 974- tweaked handling of free() for prepared statements 975- return error if a prepared statement is attempted to be free'ed or executed again 976- added result_wrap_class param to limitQuery() 977- added parameter to not quote return value of getBeforeId() 978- added setCharset() 979- enable transactions by default 980- added decimal reverse engineering test 981- fixed parameter order in assertions in reverse engineering fields tests 982- generalized quoteIdentifier() with a property 983- switched most array_key_exists() calls to !empty() to improve readability and performance 984- fixed a few edge cases and potential warnings 985- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback 986- added 'datatype_map' option (Request #7797) 987- added reverse parameter to getColumnNames() 988- added 'datatype_map_callback' option 989- added getValidTypes() method to handle additional types from the 'datatype_map' option 990- set last_query in _execute() to prepared statement (Bug #7856) 991- adding random function emulation to generate a float between 0 and 1 992- explicitly fetch row id = 1 in LOB tests 993- cosmetic fix to prepare() (Bug #7883) 994- bumped PHP dependency to 4.3.2 because of LOB stream support 995 996open todo items: 997- handle autoincrement fields in alterTable() 998- add support for ADODB style "smart transactions": 999 http://phplens.com/lens/adodb/docs-adodb.htm#ex11 1000- add length handling to LOB reverse engineering 1001 </notes> 1002 </release> 1003 <release> 1004 <version> 1005 <release>2.0.3</release> 1006 <api>2.0.3</api> 1007 </version> 1008 <stability> 1009 <release>stable</release> 1010 <api>stable</api> 1011 </stability> 1012 <date>2006-05-22</date> 1013 <license uri="http://www.example.com">BSD License</license> 1014 <notes> 1015- fix float/decimal handling (Request #3021) 1016- default to decimal for double (instead of float) 1017- serialize arrays when no type is explicitly given 1018- phpdoc fixes 1019- expanded FLOAT test 1020- added support for identifier quoting (Request #7671) 1021- added test class for the Extended module 1022- added support for DELETE in auto*() methods (Request #5345) 1023- added "emulate_prepared" option to force prepared statement emulation 1024 1025open todo items: 1026- handle autoincrement fields in alterTable() 1027- add support for ADODB style "smart transactions": 1028 http://phplens.com/lens/adodb/docs-adodb.htm#ex11 1029- add length handling to LOB reverse engineering 1030 </notes> 1031 </release> 1032 <release> 1033 <version> 1034 <release>2.0.2</release> 1035 <api>2.0.2</api> 1036 </version> 1037 <stability> 1038 <release>stable</release> 1039 <api>stable</api> 1040 </stability> 1041 <date>2006-05-14</date> 1042 <license uri="http://www.example.com">BSD License</license> 1043 <notes> 1044- phpdoc and folding mark fixes (thx Laurent and Stoyan) 1045- added getTriggerDefinition() in the Reverse module 1046- added listTableViews() in the Manager module 1047- explicitly set is_manip parameter to false for transaction debug calls 1048- various minor tweaks to error messages, phpdoc and adding stub methods to the 1049 common driver 1050- added row seeking support to fetchOne() 1051- added ability to hint that a constraint is a primary key in dropConstraint() 1052- since we no longer complain about primary keys not being called primary we can 1053 remove the necessary hacks in the test suite 1054- improved LOB tests in the test suite 1055- do not require Manager module for core API tests 1056- added support for fixed and variable types for 'text' in declarations, 1057 as well as in reverse engineering (Request #1523) 1058- updated MAINTAINERS to current status 1059- readded STATUS document, still needs to be filled with content 1060- tweaked handling of error objects inside raiseError() 1061- made _doQuery() return a reference 1062- added userinfo's to all raiseError calls that previously had none 1063- added bindValueArray() 1064- use bindValueArray() instead of bindParamArray() in all internal calls 1065- removed the skeleton drivers, since its too much work to maintain them 1066 and there are plenty of sample drivers to look at 1067- fixed example due to API change in MDB2_Schema (Bug #7575) 1068- added 'prepared_statements' supported meta data setting 1069- do not retrieve lob in the stream constructor and streams_eof() 1070- strip of file:// prefix in writeLOBToFile() 1071- typo fix ressource/resource in LOB array 1072- removed lob property from the LOB streams wrapper (references are always 1073 shaky business in PHP so lets use them as little as possible) 1074- fixed _destroyLOB() API to match other private LOB methods 1075- fixed phpdoc comments of all private LOB methods 1076- typo fix in autoincrement test 1077- reworked index/constraint creation to not affected unnecessary reverse tests 1078 1079Note: Due to changes in generation of declaration statements you may need to 1080update your test databases (for example by rerunning the MDB2_Schema 1081installation using the CVS version or a release greater than 0.5.0) 1082 1083open todo items: 1084- handle autoincrement fields in alterTable() 1085- add support for ADODB style "smart transactions": 1086 http://phplens.com/lens/adodb/docs-adodb.htm#ex11 1087 </notes> 1088 </release> 1089 <release> 1090 <version> 1091 <release>2.0.1</release> 1092 <api>2.0.1</api> 1093 </version> 1094 <stability> 1095 <release>stable</release> 1096 <api>stable</api> 1097 </stability> 1098 <date>2006-04-16</date> 1099 <license uri="http://www.example.com">BSD License</license> 1100 <notes> 1101- added new comprehensive tests for the Reverse module 1102- fixed testcases to pass for mysql[i] (needs pk's to be called "primary") .. 1103 sqlite is probably severely broken for these tests 1104- added ability to specify port number when using unix sockets in 1105 MDB2::parseDSN() (bug #5982) 1106- added test for multi_query option 1107- typo fix in get constraint test 1108- use ugly fopen() hack in fileExists() 1109 http://marc.theaimsgroup.com/?l=pear-dev&m=114148949106207&w=2 1110- allow "." and "$" in sequence name (bug #7081) 1111- aligned _modifyQuery() signature and phpdoc 1112- added inTransaction() to determine if a transaction is currently open 1113- added support for tabe options in createTable() (bug ##7079) 1114- make it possible to overwrite the error code-message map 1115- added sample sqlite in memory dsn to php5 example 1116- added 'result_introspection' supported metadata support 1117- added bindValue() method 1118- use MDB2_PREPARE_MANIP where we previously were using false 1119- fixed default values for date and timestamp 1120- if MDB2_PORTABILITY_EMPTY_TO_NULL is set change '' to ' ' in _getDeclaration() 1121- refactored class loading into MDB2::loadClass() 1122- properly quote CURRENT_* for temporal types (bug #6416) 1123- added connected_server_info to cache server info in getServerInfo() 1124- reset all connection related properties in disconnect() 1125- separated result_buffering and prefetching by adding the new result_prefetching option 1126- set error code in all raiseError() calls 1127- added support for length in reverse engineering of integer fields 1128- improve test suite documentation 1129 1130open todo items: 1131- handle autoincremement fields in alterTable() 1132 </notes> 1133 </release> 1134 <release> 1135 <version> 1136 <release>2.0.0</release> 1137 <api>2.0.0</api> 1138 </version> 1139 <stability> 1140 <release>stable</release> 1141 <api>stable</api> 1142 </stability> 1143 <date>2006-02-09</date> 1144 <license uri="http://www.example.com">BSD License</license> 1145 <notes> 1146- handle null as resource when disable_query option is enabled in result object 1147 </notes> 1148 </release> 1149 <release> 1150 <version> 1151 <release>2.0.0RC5</release> 1152 <api>2.0.0RC5</api> 1153 </version> 1154 <stability> 1155 <release>beta</release> 1156 <api>beta</api> 1157 </stability> 1158 <date>2006-02-05</date> 1159 <license uri="http://www.example.com">BSD License</license> 1160 <notes> 1161- expanded testing of prepared queries (out of order binding, escape characters 1162 inside the string, lobs without named parameters that match the field name) 1163- removed ugly hack for quote parameter in quote() since it was insufficient 1164 (escaping also needs to be prevented) 1165- added support for out of order parameter binding in prepared queries 1166- expanded testing of prepared queries (out of order binding, escape characters 1167 inside the string, lobs without named parameters that match the field name) 1168- reset row_limit and row_offset after calling prepare() just like we do for query() and exec() 1169- cosmetic fix (removed "row_" prefix from "row_limit" and "row_offset") 1170- now using INT/TINYINT/SMALLINT by default instead of CHAR(1) for the boolean datatype 1171 (BC BREAK!) 1172- added MDB2_datatype_testcase to test suite 1173- support an arbitrary number of arguments in concat() 1174- add property phpdoc comments to LOB.php 1175 </notes> 1176 </release> 1177 <release> 1178 <version> 1179 <release>2.0.0RC4</release> 1180 <api>2.0.0RC4</api> 1181 </version> 1182 <stability> 1183 <release>beta</release> 1184 <api>beta</api> 1185 </stability> 1186 <date>2006-01-13</date> 1187 <license uri="http://www.example.com">BSD License</license> 1188 <notes> 1189- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226) 1190- some cleanups in loadModule() 1191- eliminate possible warnings in execute() and _assignBindColumns() 1192- do not silence includes when debug option is enabled 1193- fixed serious bug in autoincrement test 1194- added dbsyntax to getDSN() string output (feature request #6463) 1195- fixed signature of executeStoredProc() 1196- nextResult() returns false if there are no more result sets to read 1197- renamed _isIndexName() to _fixIndexName() 1198- _fixIndexName() now just attempts to remove possible formatting 1199- renamed _isSequenceName() to _fixSequenceName() 1200- _fixSequenceName() now just attempts to remove possible formatting, and only 1201 returns a boolean if no formatting was applied when the new "check" parameter is set to true 1202 </notes> 1203 </release> 1204 <release> 1205 <version> 1206 <release>2.0.0RC3</release> 1207 <api>2.0.0RC3</api> 1208 </version> 1209 <stability> 1210 <release>beta</release> 1211 <api>beta</api> 1212 </stability> 1213 <date>2005-12-30</date> 1214 <license uri="http://www.example.com">BSD License</license> 1215 <notes> 1216- added error handling when result set introspection is not supported in _wrapResult() 1217- fixed example 1218- removed peardb wrapper (its broken, unmaintained and probably unused) 1219- added new example using php5 only features 1220- MDB2_OK is now a boolean true, instead of integer 1 1221- types can now always be keyed by name or by order 1222- renamed setResultTypes() in the datatype module to checkResultTypes() 1223 and modified the signature accordingly 1224- removed no longer used MDB2::isManip() 1225 </notes> 1226 </release> 1227 <release> 1228 <version> 1229 <release>2.0.0RC2</release> 1230 <api>2.0.0RC2</api> 1231 </version> 1232 <stability> 1233 <release>beta</release> 1234 <api>beta</api> 1235 </stability> 1236 <date>2005-12-28</date> 1237 <license uri="http://www.example.com">BSD License</license> 1238 <notes> 1239- fixed testNow() to use the datatype abstraction 1240- fixed testGetTableFieldDefinition() to use a blob column instead of a clob 1241 since we default to blob when we cannot differntiate between blob and clob 1242- split up alterTable() testing into two separate test methods 1243- removed errorNative() was never implemented, use errorInfo() instead 1244- fixed major bug in _fixResultArrayValues() that would lead to performance or 1245 incorrect application of portability features 1246- phpdoc fixes in LOB.php, Iterator.php, Date.php and Extended.php 1247- removed not required prev() and hasPrev() from the SeekableIterator implementation 1248 </notes> 1249 </release> 1250 <release> 1251 <version> 1252 <release>2.0.0RC1</release> 1253 <api>2.0.0RC1</api> 1254 </version> 1255 <stability> 1256 <release>beta</release> 1257 <api>beta</api> 1258 </stability> 1259 <date>2005-12-21</date> 1260 <license uri="http://www.example.com">BSD License</license> 1261 <notes> 1262- added numerous testcases in the manager and reverse module 1263- unified case fixing in the list*() methods 1264- case-insensitive comparison in _isSequenceName() 1265- added getConnection() to fetch a native connection resource 1266- split index and constraint handling 1267- quote identifiers where possible inside the manager methods depending on 1268 the new 'quote_identifier' option (defaults to off) 1269- refactored get*Declaration() methods to use getTypeDeclaration() 1270- setting in_transaction to false on disconnect 1271- store if type has changed in compareDefinition() 1272- added new Function modules to handle difference in SQL functions 1273- added verious new test cases 1274- refactored test cases to use an MDB2_testcase base class 1275- allow empty field parameter in get*ID() methods (bug #5791) 1276- tweaked error messages for file loads 1277- split off manipulation queries into exec() method from the query() method *BC BREAK* 1278- only if result_types is set to false in prepare() method the query will be 1279 handled as a DML statement *BC BREAK* 1280- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930) 1281- added getServerVersion() 1282- renamed defaultOutput() to getDefaultOutput() *BC BREAK* 1283- use tableInfo() to automatically determine the result types if type is set to true 1284- reworked file loading to work around issues in safe_mode with MDB2::fileExists() (bug #6226) 1285- no need to return by reference in getConnection() (it even seems to work for 1286 mysqli that has objects and not resource connections) 1287- added "idxname_format" as option similar to "seqname_format" 1288- fixed bug in API calls inside autoExecute() (bug #6286) 1289 </notes> 1290 </release> 1291 <release> 1292 <version> 1293 <release>2.0.0beta6</release> 1294 <api>2.0.0beta6</api> 1295 </version> 1296 <stability> 1297 <release>beta</release> 1298 <api>beta</api> 1299 </stability> 1300 <date>2005-10-16</date> 1301 <license uri="http://www.example.com">BSD License</license> 1302 <notes> 1303Warning: this release features numerous BC breaks! 1304 1305There have been considerable improvements to the datatype, manager and reverse 1306modules. Furthermore preliminary support for auto increment and primary keys 1307has been added. Please note that making a field auto increment implies a single 1308column primary key on this field. 1309 1310- increased php dependency to 4.3.0 due to the usage of the streams API since beta5 1311- moved logic from MDB2::connect() to MDB2::factory(), the only difference is 1312 that MDB2::connect will immediatly try to connect to the database 1313- MDB2::singleton now uses MDB2::factory() 1314- added support for auto increment and primary key in schema. (mysql[i]) 1315- alterTable now needs the full definition to work (use getTableFieldDefinition 1316 from Reverse module if you do not have a definition at hand) this eliminates the need 1317 of the declaration part in the alterTable array. 1318- nicer test chooser. Added some js magic to [un]select all the tests in a group 1319- fixed typo in _getTextDeclaration() 1320- fix PHP4.4 breakage 1321- ensure that types and result_types property in the statement class is an array (bug #4695) 1322- added support for fetchmode in the iterator class and for any other result wrapper class (bug #4685) 1323- moved getInsertID() into core as lastInsertID() 1324- moved getBeforeID() and getAfterID() from core into the extended module 1325- added base class for all modules (which provides getDBInstance()) 1326- added free() method to remove an instance from the global instance array 1327- removed schema manager related error codes from MDB2::errorMessage() 1328- dont set the include path in test suite (people can do that in test_setup.php) 1329- added missing default numRows() method 1330- added hack into stream_eof() to handle the BC break in 5.0.x 1331- removed uncessary duplicate quoting in quote() in the peardb wrapper (bug #5195) 1332- warning fix in BC hack of connect() in the peardb wrapper 1333- tweaked error message in setResultTypes() 1334- removed PDO compatibility code in bindParam and bindCol, now using 0-index numeric keys again 1335- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray() 1336- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362) 1337- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons 1338- added new portability fetch mode MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES (to remove database/table qualifiers from assoc indexes) 1339- 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) 1340- ensure that fetchAll always returns an array() even if the result set was empty 1341- use array_key_exists() instead of isset() where possible 1342- changed structure of field add/remove/change in alterTable() to match MDB2_Schema 1343- added default values for supported property 1344- reworked supports() to return the given value and also return errors for non existant support feature 1345- reworked subSelect() to use the 'emulated' supports() return value 1346- removed implementation of createIndex() (now every driver needs to implement it themselves) 1347- sync fileExists with the LiveUser one, explode instead of split and is_readable instead of file_exists. 1348- tweaked compare method family to better deal with optional properties 1349 1350open todo items: 1351- add test cases for the various module methods 1352- add getServerVersion() 1353 </notes> 1354 </release> 1355 <release> 1356 <version> 1357 <release>2.0.0beta5</release> 1358 <api>2.0.0beta5</api> 1359 </version> 1360 <stability> 1361 <release>beta</release> 1362 <api>beta</api> 1363 </stability> 1364 <date>2005-06-08</date> 1365 <license uri="http://www.example.com">BSD License</license> 1366 <notes> 1367Warning: this release features numerous BC breaks to make the MDB2 API be as 1368similar as possible as the ext/pdo API! The next release is likely to also break 1369BC for the same reason. Check php.net/pdo for information on the pdo API. 1370 1371- refactored LOB support (BC breaks) 1372- moved all drivers into separate packages MDB2_Driver_* (BC break) 1373- bindParam() and bindColumn() are now 1-indexed (BC break) 1374- removed special handling for day light saving time (bug #4341) (BC break) 1375- ensure SQL injection protection in all _quote() methods 1376 (was missing in some decimal, float, time, date and timestamp implementations) 1377- renamed getRowCount() to rowCount() for PDO compliance (BC break) 1378 (doesnt take into account the offset anymore) 1379- added new quote() parameter to remove quotes (ugly hack will get cleaned up) 1380- renamed execute() to _execute() since common provides some common functionality via execute() 1381- fixed some issues regarding limit/offset in prepared statements 1382- fixed bug in _assignBindColumns() when using associative fetches 1383- support numeric and string keys in types array for prepared queries 1384- call trigger error if __call() is unable to find a method in any of the modules 1385- work around php5 bugs in the test suite 1386 </notes> 1387 </release> 1388 <release> 1389 <version> 1390 <release>2.0.0beta4</release> 1391 <api>2.0.0beta4</api> 1392 </version> 1393 <stability> 1394 <release>beta</release> 1395 <api>beta</api> 1396 </stability> 1397 <date>2005-04-29</date> 1398 <license uri="http://www.example.com">BSD License</license> 1399 <notes> 1400Warning: this release features numerous BC breaks to make the MDB2 API be as 1401similar as possible as the ext/pdo API! The next release is likely to also break 1402BC for the same reason. Check php.net/pdo for information on the pdo API. 1403 1404- fixed bugs in MDB2_Extended::buildManipSQL() introduced in latest tweaks (bug #3725) 1405- mysqli has connection objects instead of resources 1406- fix mssql tableInfo() so flags are returned (bug #3691) 1407- fixed bug in handling of force_array when 2 or less columns are fetched in fetchAll() 1408- added map error message for sqlite multi-column unique constraints. 1409- added listUsers(), listViews(), listFunctions() to oracle manager 1410- added listFunctions() to pgsql manager 1411- updated listViews() in pgsql manager 1412- added __call() support for module handling 1413- mysql driver now uses mysqli implementations where feasible 1414- ensure that internal calls to query dont wrap the result 1415- for some reason mysqli didnt like SELECT LAST_INSERT_ID() 1416- fixed bug in table alteration when only an index was added 1417- updated pgsql API calls to 4.2.0 recommended names (bug #3904) 1418- moved logic to compareDefinitions from the Manager into the Datatype module 1419 to increase flexibility 1420- extended MDB2::isError() to be able to handle an array or codes 1421- added error handling into autoPrepare() and autoExecute() 1422- migrade all MDB2::isError calls that dont check for specific errors codes to PEAR::isError 1423- don't pass new_link to mysql_pconnect() (bug #3993) 1424- use MDB2::raiseError() instead of MDB2_Driver_Common::raiseError() 1425- do not disable result wrapping when doing internal calls to query() (bug #3997) 1426- _wrapResult() now ensures that the result class is an instance of MDB2_Result_Common 1427- unbundled the MDB2_Tools_Manager into a separate package PEAR::MDB2_Schema 1428- improved getTableFieldDefinition() and moved native type mapping to the 1429 datatype module mapNativeDatatype() method (mysql, sqlite, pgsql and ibase drivers) 1430- fixes for listTables() in sqlite and pgsql driver 1431- ensure that mysql drivers use the dummy_primary_key property 1432- severely reworked how data is fetched and buffered and freed in the iterator 1433- added mapNativeDatatype() to ibase driver 1434- getTypeDeclaration() => _getTypeDeclaration() in ibase driver 1435- cosmetic fixes and tweaks (replace(). fetchOne() ..) 1436- renamed 'seqname_col_name' option to 'seqcol_name' 1437- moved schema documentation, xml_reverse_engineering.php, MDB.dtd 1438 and MDB.xls to MDB_Schema package 1439- Mysqli: implicit sequence is named as table by default 1440- Mysqli: text types now map to clob first 1441- ensure that types are numerically keyed in setResultTypes() 1442- added caching to getColumnNames() 1443- added bindColumn() support 1444- use MDB2_Schema::factory() 1445- phpdoc fixes in regards to flipped fetchmode 1446- remove renegate mysql code in sqlite driver 1447 </notes> 1448 </release> 1449 <release> 1450 <version> 1451 <release>2.0.0beta3</release> 1452 <api>2.0.0beta3</api> 1453 </version> 1454 <stability> 1455 <release>beta</release> 1456 <api>beta</api> 1457 </stability> 1458 <date>2005-03-06</date> 1459 <license uri="http://www.example.com">BSD License</license> 1460 <notes> 1461Warning: this release features numerous BC breaks to make the MDB2 API be as 1462similar as possible as the ext/pdo API! The next release is likely to also break 1463BC for the same reason. Check php.net/pdo for information on the pdo API. 1464 1465Oracle NULL in LOB fields is broken. 1466The fbsql and mssql drivers are likely to be broken as they are largely untested. 1467 1468MDB2 static class: 1469- "xxx" out password on connect error in MDB2::connect() 1470- MDB2::isError now also optionally accepts and error code to check for 1471- added LOAD DATA (port from DB) and SET to MDB2::isManip() 1472 1473All drivers: 1474- use __construct() (PHP4 BC hacks are provided) 1475- allow null values to be set for options 1476- ensure we are returning a reference in all relevant places 1477 1478- allow errorInfo() to be called when no connection has been established yet 1479- use MDB2_ERROR_UNSUPPORTED instead of MDB2_ERROR_NOT_CAPABLE in common implementations 1480- readded MDB2_Error as the baseclass for all MDB2 error objects 1481- updated error mappings from DB 1482 1483- added MDB2_Driver_Common::getDatabase(); 1484- reworked dsn default handling 1485- added ability to "xxx" out password in getDSN() 1486 1487- use _close() method in several places where they previously were not used 1488- removed redundant code in _close() that dealt with transaction closing already 1489 done in disconnect() 1490- if the dbsyntax is set in the dsn it will be set in the dbsyntax property 1491- only disconnect persistant connections if disconnect() has been explicitly 1492 called by the user 1493- instead of having a generic implemention of disconnect() we will rename 1494 _close() to disconnect() to overwrite the generic implementation 1495- added support for 'new_link' dsn option for all supported drivers (mysql, oci8, pgsql) 1496 1497- transaction API moved over to PDO: removed autoCommit(), added beginTransaction() 1498 and refactored commit() (it doesn't start a new transaction automatically anymore) 1499- reworked handling of uncommited transaction for persistant connections when 1500 a given connection is no longer in use 1501 1502- added 'disable_query' option to be able to disable the execution of all queries 1503 (this might be useful in conjuntion with a custom debug handler to be able to 1504 dump all queries into a file instead of executing them) 1505- removed affectedRows() method in favor of returning affectedRows() on query if relevant 1506- added generic implementation of query() and moved driver specific code into _doQuery() 1507- added _modifyQuery() to any driver that did not yet have it yet 1508- standaloneQuery() now also supports SELECT querys 1509- remove redundant call to commit() since setting autoCommit() already commits in MDB2::replace() 1510- refactored standaloneQuery(), query(), _doQuery(), _wrapResult(); the most important change are: 1511 result are only wrapped if it is explicitly requested 1512 standaloneQuery() now works just as query() does but with its own connection 1513- allowing limits of 0 in setLimit() 1514 1515- explicitly specify colum name in sequence emulation queries 1516- added getBeforeId() and getAfterId() 1517- added new supported feature 'auto_increment' 1518 1519- added default implementation for quoteCLOB() and quoteBLOB() 1520- reworked quote handling: moved all implementation details into the extension, 1521 made all quote methods private except for quote() itself, honor portability 1522 MDB2_PORTABILITY_EMPTY_TO_NULL in quote(), removed MDB2_TYPE_* constants 1523- reworked get*Declaration handling: moved all implementation details into the extension, 1524 made all quote methods private except for quote() itself 1525- placed convert methods after the portability conversions to ensure that the 1526 proper type is maintained after the conversion methods 1527- dont convert fetched null values in the Datatype module 1528 1529- removed executeParams() and moved executeMultiple() from extended module 1530 1531- updated tableInfo() code from DB 1532 1533- made LIMIT handling more robust by taking some code from DB 1534 1535All drivers result: 1536- performance tweak in fetchCol() 1537- added MDB2_FETCHMODE_OBJECT 1538- added MDB2_Driver_Result_Common::getRowCounter() 1539- added rownum handling to fetchRow() 1540- removed fetch() and resultIsNull() 1541 1542All drivers prepared statements 1543- moved prepare/execute API towards PDO 1544- setParamsArray() can now handle non ordered arrays 1545- removed requirement for LOB inserts to pass the parameters as an array 1546- placeholders are now numbered starting from 0 (BC break in setParam() !) 1547- queries inside the prepared_queries property now start counting at 1 (performance tweak) 1548- refactored handling of filename LOB values (prefix with 'file://') 1549- removed _executePrepared(), drivers need to overwrite execute() for now on 1550- add support for oracle style named parameters and modified test suite accordingly 1551 1552MySQL driver: 1553- improved handling of MDB2_PORTABILITY_LOWERCASE in all the reverse 1554 methods inside the mysql driver to work coherently 1555- fixed several issues in the listTablefields() method of manager drivers 1556 1557MSSQL driver: 1558- added code in MDB2_Driver_mssql::connect() to better handle date values 1559 independant of ini and locale settings inside the server 1560- use comma, rather than colon, to delimit port in MDB2_driver_mssql::connect(). 1561 Bug 2140. (danielc) 1562- unified mssql standalone query with sqlite, mysql and others (not tested on 1563 mssql yet, but since mssql automatically reuses connections per dsn the old 1564 way could gurantee anything different from happening) 1565 1566PgSQL driver: 1567- use track_errors to capture error messages in MDB2_driver_pgsql::connect(). 1568 Bug 2011. (danielc) 1569- add port to connect string when protocol is unix in MDB2_driver_pgsql::connect(). 1570 Bug 1919. (danielc) 1571- accommodate changes made to PostgreSQL so "no such field" errors get properly 1572 indicated rather than being mislabeled as "no such table." (danielc) 1573- added "permission denied" to error regex in pgsql driver. 1574 Bug 2417. (stewart_linux-org-au) 1575 1576OCI8 driver: 1577- fixed typo in MDB2_Driver_Manager_oci8::listTables() (fix for bug #2434) 1578- added emulate_database option (default true) to the Oracle driver that handles 1579 if the database_name should be used for connections of the username 1580- oci8 driver now uses native bind support for all types in prepare()/execute() 1581 1582Interbase driver: 1583- completely revised ibase driver, now passing all tests under php5 1584 1585Frontbase driver: 1586- fbsql: use correct error codes. Was using MySQL's codes by mistake. 1587 1588MySQLi driver: 1589- added mysqli driver (passes all tests, but doesnt use native prepare yet) 1590 1591DB wrapper 1592- fixed a large number of compatibility issues in the PEAR::DB wrapper 1593 1594Iterator 1595- fixed several bugs and updated the interface to match the final php5 iterator API 1596- buffered result sets now implements seekable 1597- removed unnecessary returns 1598- throw pear error on rewind in unbuffered result set 1599- renamed size() to count() to match the upcoming Countable interface 1600 1601Extended module: 1602- modified the signature of the auto*() methods to be compatible with DB (bug #3720) 1603- tweaked buildManipSQL() to not use loops (bug #3721) 1604 1605MDB_Tools_Manager 1606- updated raiseError method in the Manager to be compatible with 1607 XML_Parser 1.1.x and return useful error message (fix bug #2055) 1608- major refactoring of MDB2_Manager resulting in several new methods being available 1609- fixed error in MDB2_Manager::_escapeSpecialCharacter() that would lead to 1610 incorrect handling of integer values (this needs to be explored in more detail) 1611- several typo fixes and minor logic errors (among others a fix for bug #2057) 1612- moved xml dumping in MDB2_Tools_Manager into separate Writer class 1613- fixed bugs in start value handling in create sequence (bug #3077) 1614 </notes> 1615 </release> 1616 <release> 1617 <version> 1618 <release>2.0.0beta2</release> 1619 <api>2.0.0beta2</api> 1620 </version> 1621 <stability> 1622 <release>beta</release> 1623 <api>beta</api> 1624 </stability> 1625 <date>2004-04-25</date> 1626 <license uri="http://www.example.com">BSD License</license> 1627 <notes> 1628The core of MDB2 is now fairly stable API-wise. The modules, especially the 1629manager and reverse module, might see some API refinement before the first 1630stable release. 1631- added listTables() and listTableFields() methods to MDB2_Driver_Manager_mssql 1632 and MDB2_Driver_Manager_oci8 1633- reversed parameter order of getValue(), type parameter is now optional and 1634 will then be autodetected (BC break!) 1635- renamed get*Value() to quote*() (BC break!) 1636- fixed LOB management in MDB2_Driver_ibase 1637- moved getOne, getRow, getCol, getAll back into the exteneded module (most 1638 users should be able to move to the queryOne, queryRow, queryCol and queryAll 1639 equivalent) (BC break!) 1640- added getAssoc to the extended module 1641- fixed bug in MDB2_Driver_Datatype_Common::implodeArray() 1642- added sequence_col_name option to make the column name inside sequence 1643 emulation tables configurable 1644- fixed a bug in the MDB2_Driver_oci8 and MDB2_Driver_ibase buffering emulation 1645 when using limit queries 1646- removed MDB2_PORTABILITY_NULL_TO_EMPTY in favor of MDB2_PORTABILITY_EMPTY_TO_NULL 1647 this means that DB and MDB2 work exactly the opposite now, but it seems more 1648 efficient to do things the way Oracle does since this is the RDBMS which 1649 creates the original issue to begin with (BC break!) 1650- fixed a typos in getAll, getAssoc and getCol 1651- test suite: moved set_time_limit() call to the setup script to be easier to customize 1652- renamed hasMore() to valid() due to changes in the PHP5 iterator API (BC break!) 1653- renamed toString() to __toString() in order to take advantage of new PHP5 1654 goodness and made it public 1655- MDB2_Driver_Datatype_Common::setResultTypes() can now handle missing elements 1656 inside type arrays: array(2 => 'boolean', 4 => 'timestamp') 1657- fixed potential warning due to manipulation query detection in the query*() 1658 and the get*() query+fetch methods 1659- added tests for fetchAll() and fetchCol() 1660- performance tweaks for fetchAll() and fetchCol() 1661- fixed MDB2_Driver_Manager_mysql::listTableIndexes() 1662- fixed MDB2_Driver_Common::debug() 1663- renamed MDB2::isResult() to MDB2::isResultCommon() 1664- added base result class MDB2_Result from which all result sets should be 1665 inherited and added MDB2::isResult() which checks if a given object extends from it 1666- added 'result_wrap_class' option and optional parameter to query() to enable 1667 wrapping of result classes into an arbitrary class 1668- added $result_class param to all drivers where it was missing from the 1669 query() and _executePrepared() methods 1670- applied several fixes to the PEAR::DB wrapper 1671- fixed a typo in MDB2_Driver_Reverse_pgsql::tableInfo() 1672 </notes> 1673 </release> 1674 <release> 1675 <version> 1676 <release>2.0.0beta1</release> 1677 <api>2.0.0beta1</api> 1678 </version> 1679 <stability> 1680 <release>alpha</release> 1681 <api>alpha</api> 1682 </stability> 1683 <date>2004-03-12</date> 1684 <license uri="http://www.example.com">BSD License</license> 1685 <notes> 1686- fixed bug in MDB2::singleton 1687- fixed minor bugs in prepare/execute 1688- added PEAR::DB wrapper (not working yet) 1689- fixed several bugs in the ibase driver 1690- fixed several PHP5 related issues 1691- fixed bug in sequence creation on MySQL 1692- fixed issues with nextid() ondemand handling in conjunction with currId() 1693- added native currId() implementation for the Oracle driver 1694- fixed sqlite driver (passes all but the REPLACE test due to a conformance issue in sqlite itself) 1695- removed decimal_factor property to allow changing of decimal_places option 1696- using native escape string methods in sqlite and mysql driver 1697- fixed minor conformance issues in tableInfo() in the oci8 and mysql driver 1698- removed optimize option and added portability option instead (ported from DB) 1699- added quoteIdentifier() method (ported from DB) 1700- added STATUS document to make the status of the drivers more transparent 1701- fixed a few bugs in querysim driver 1702- fixed issue in mysql reverse engineering: ensuring the correct case is used when 1703 doing assoc fetches based on portability flag setting 1704- updated reverse engineering script to the new MDB2 API 1705- removed broken implementations of currId() in the mssql and fbsql driver 1706- fixed a few instances of MDB_Common to the new class name of MDB_Driver_Common 1707 </notes> 1708 </release> 1709 <release> 1710 <version> 1711 <release>2.0.0alpha1</release> 1712 <api>2.0.0alpha1</api> 1713 </version> 1714 <stability> 1715 <release>alpha</release> 1716 <api>alpha</api> 1717 </stability> 1718 <date>2004-01-05</date> 1719 <license uri="http://www.example.com">BSD License</license> 1720 <notes> 1721This is the first alpha release of MDB2 2.0. 1722 1723MDB2 2.x breaks backwards compatibility in many ways in order to simplify 1724the API for both users and drivers developers. 1725 1726Please note that currently only the MySQL, the PostGreSQL and the Oracle driver 1727have been tested to pass the test suite. 1728 1729Here follows a short list of the most important changes: 1730- all code that is not necessary for basic operation is now separateed 1731 into separate modules which can be loaded with the loadModule() method 1732- all datatype related methods have been moved to a dataype module with 1733 the notable exception of getValue() and the newly introduced getDeclaration() 1734- added extended module for highlevel methods 1735- all manager method are no longer available in the core class and or 1736 now only available in the manager module 1737- all reverse engineering methods have been taken from the manager class 1738 and are now available through the reverse module 1739- a new module has been added to allow the addition of methods with 1740 RDBMS specific functionality (like getting the last autoincrement ID) 1741- LOB handling has been greatly simplified 1742- several methods names have been shortend 1743- the fetch.+() methods do not free the result set anymore 1744- the Manager and the reverse_engineer_xml_schema have been moved into 1745 a Tools directory 1746- all parameters are now lowercased with underscores as separators 1747- all drivers now support all of the dsn options that PEAR DB supports 1748- several methods have been removed because they offered redundant functionality 1749- changed prepare API type is now passed to prepare and not to setParam*() 1750- results are now wrapped inside objects and all methods which operate 1751 on resultsets have been moved into respecitive classes 1752- there are two types of result object: buffered (default) and unbuffered 1753- totally rewrote buffering and limit emulation 1754 </notes> 1755 </release> 1756 </changelog> 1757</package> 1758