[ANNOUNCEMENT] DB-1.7.0RC1 (beta) Released.
| From: | PEAR Announce | Date: | Tue, 22 Feb 2005 15:54:45 +0000 |
| Subject: | [ANNOUNCEMENT] DB-1.7.0RC1 (beta) Released. | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-17621@lists.php.net to get a copy of this message | ||
The new PEAR package DB-1.7.0RC1 (beta) has been released at http://pear.php.net/.
Release notes
-------------
all:
* PEAR DB can now be used on more OS's due to
switching from DB::assertExtension() to
PEAR::loadExtension(). Request 1337.
* Resolve tableInfo() issue caused by PHP 5.0.3.
Bug 2988.
* Add __sleep() and __wakeup(). Request 928.
* Added __toString() and deprecated toString().
Request 1209.
* Added DB_result::getQuery() method for
determining what query created the present
result. Request 1677.
* If DSN contains "dbsyntax", always use that for
$this->dbsyntax. Used to only be done for odbc.
* When trying to DROP an index that doesn't exist,
use the DB_ERROR_NOT_FOUND error code.
* When the number of values in an INSERT query
doesn't match the number columns, use the
DB_ERROR_VALUE_COUNT_ON_ROW error code.
* Removed the unused DB_ERROR_CANNOT_DELETE constant.
* When using getOne() and getRow(), if the DBMS
supports LIMIT queries, limit the output to
one row. Request 1771.
* Consider SELECT INTO and COPY data manipulation
queries in isManip(). Bug 2883.
* Add $free_resource argument to freePrepared().
dbase:
* Provide tableInfo(). Request 2142.
* Add 'mode' option to DSN and connect.
* When connecting, if the database doesn't exist,
use the new 'fields' DSN option to create the
database.
* No longer use strip_tags() on $php_errormsg
when reporting connection errors.
fbsql:
* The FrontBase driver now works and passes all tests.
ibase:
* The InterBase driver now passes all tests (using PHP 5).
* Add getListOf() support.
* Add affectedRows() support.
* Add numRows() support (Note:
DB_PORTABILITY_NUMROWS must be enabled).
* Add items to errorcode_map:
-303 => DB_ERROR_INVALID
-413 => DB_ERROR_INVALID_NUMBER
-625 => DB_ERROR_CONSTRAINT_NOT_NULL
-904 => DB_ERROR_CONNECT_FAILED
* Refactor error handling to be like the other drivers:
Moved most code from ibaseRaiseError() into the new
errorNative() and errorCode() methods.
* In errorNative():
+ If PHP is >= 5.0.0, use ibase_errcode()
+ Otherwise use a refined error code extraction regex
to keep it from catching numbers other than error codes.
* Drop the bogus, non-standard $native_errmsg parameter
in ibaseRaiseError().
* Remove the bogus error code 88. It was a hack to catch
errors in nextID(). Now, when a generator does not exist,
"DB Error: syntax error" is produced instead of
"DB Error: no such table".
ifx:
* Add numRows() support (Note:
DB_PORTABILITY_NUMROWS must be enabled).
* Add $this->DB_common() call to the constructor,
just like is done in all the other drivers.
* Add items to error map:
+ -236: insert column count doesn't match value count
+ -316: create duplicate index
+ -319: drop non-existant index
+ -692: delete record with foreign key constraint
msql:
* The mSQL driver now works and passes most tests.
mssql:
* Use "," to delimit port only for Windows. Use ":"
for other OS's. This bug was introduced when
resolving Bug 2140. (Bug 2731)
* Add 1913 (duplicate index creation) to errorcode_map.
* Changed error code: When trying to DROP an index that
doesn't exist, use DB_ERROR_NOT_FOUND instead of
DB_ERROR_NOSUCHTABLE.
mysql & mysqli:
* Added the following items to the error map:
1061 => DB_ERROR_ALREADY_EXISTS
1044 => DB_ERROR_ACCESS_VIOLATION
1049 => DB_ERROR_NOSUCHDB
1142 => DB_ERROR_ACCESS_VIOLATION
* Remove $num_rows property. Wasn't used in all
drivers and numRows() can get the answer
directly from the DBMS' API.
mysql:
* Add new_link and client_flags support to connect().
Request 1905.
* If you want to use mysql_unbuffered_query() set
the "result_buffering" option to 0 using setOptions().
Request 2813.
oci8:
* Allow use of oci_new_connect() via the new_link DSN
option.
* Add ocisetprefetch() calls in query() and execute().
This determines how many rows of a result set get
buffered. To adjust the quantity, see the
"result_buffering" option in setOptions().
Request 3241.
* When running PHP5, use the new oci_connect() and
oci_close() functions instead of the old ones.
Works around crashes caused by PHP bug
http://bugs.php.net/bug.php?id=28924
(PEAR Bug #2622)
* The autoCommit property was renamed autocommit to be
in line with the other drivers.
* getListOf() now supports synonyms. Request 752.
odbc:
* Add tableInfo() support. Request 2669.
* Add getListOf() support. Request 2669.
* Add '23504' => DB_ERROR_CONSTRAINT to error map.
* Deal with MS Access' excessive use of the
S1000 ("General Error") code by trying to
pin down a more specific error.
* Changed error code: when the number values in an
INSERT statement doesn't match the number of columns,
use DB_ERROR_VALUE_COUNT_ON_ROW instead of
DB_ERROR_MISMATCH.
* Remove the $row property because it's not used.
* Rename the $manip_result property $affected because
it's more descriptive and is the name used in other
drivers.
* Raise error on problems in numRows().
pgsql:
* Add connect_timeout (Request 3228), new_link, sslmode,
and service support to connect().
* Allow multiple open parentheses in query strings
(due to regex in simpleQuery()). Bug 2586.
* Use pg_affected_rows() instead of the undocumented
pg_cmdtuples() in affectedRows().
* Make $num_rows property private.
* Add duplicate index creation to errorcode_map.
* When doing getListOf() for views (Bug 2085) or
functions, only show non-system items.
* getListOf() now supports listing the schema and table
by using the 'schema.tables' type. Request 682.
* Rename _modifyQuery() to modifyQuery() as it is in
the other drivers.
sqlite:
* Add tableInfo(). Request 1317.
* Capture $php_errormsg on connection errors to make
debugging easier.
* Add duplicate index creation to errorcode_map.
sybase:
* Provide debugging information to raiseError() when
connections fail so getUserInfo() and getDebugInfo()
provide useful information.
* Remove $num_rows property. Wasn't used in all
drivers and numRows() can get the answer
directly from the DBMS' API.
* Add items to error mapping:
+ insert column count doesn't match value count
+ create duplicate index
+ drop non-existant index
+ illegal float/int conversion
* Change identifier delimiting from [] to "".
Note: "SET QUOTED_IDENTIFIER ON" must be executed
sometime prior to using quoteIdentifier().
tests:
* setup.inc now uses an array for the DSN's
instead of defining constants.
* Added the multiconnect.php test.
* Added the 19getlistof.phpt test.
* Reworked 10errormap.phpt so it passes when all
expected conditions are met. Also tweaked it
to make it work under fbsql.
Package Info
-------------
DB is a database abstraction layer providing:
* an OO-style query API
* portability features that make programs written for one DBMS work with other DBMS's
* a DSN (data source name) format for specifying database servers
* prepare/execute (bind) emulation for databases that don't support it natively
* a result object for each query response
* portable error codes
* sequence emulation
* sequential and non-sequential row fetching as well as bulk fetching
* formats fetched rows as associative arrays, ordered arrays or objects
* row limit support
* transactions support
* table information interface
* DocBook and phpDocumentor API documentation
DB layers itself on top of PHP's existing
database extensions.
Drivers for the following extensions pass
the complete test suite and provide
interchangeability when all of DB's
portability options are enabled:
fbsql, ibase, informix, msql, mssql,
mysql, mysqli, oci8, odbc, pgsql,
sqlite and sybase.
There is also a driver for the dbase
extension, but it can't be used
interchangeably because dbase doesn't
support many standard DBMS features.
DB is compatible with both PHP 4 and PHP 5.
Related Links
-------------
Package home: http://pear.php.net/package/DB
Changelog: http://pear.php.net/package/DB/download/1.7.0RC1
Download: http://pear.php.net/get/DB-1.7.0RC1.tgz
Authors
-------------
Stig Bakken <stig@php.net> (developer)
Thomas V.V.Cox <cox@idecnet.com> (developer)
Daniel Convissor (lead)
Lukas Smith <smith@backendmedia.com> (helper)