- user interface abstraction, making a Gtk installer should only be
a matter of implementing PEAR_CommandUI_Gtk plus a "pear-gtk" executable
- separated code into command classes, able to specify one or more
commands
- no more "pear-get" :-)
* fixed use of PEAR_Config::singleton to avoid object copying
-
- if a user with unsufficient permissions trys to select a database
- PEAR::DB previously threw a "no database selected" error instead
- of a more proper "insufficient permissions". This is fixed now.
-
- if a user selects a nonexistant database PEAR::DB threw a
- "no database selected" error instead of "no such database".
- This is fixed as well.
-
- I added two new constants to DB.php and a simple case construct to
- DB/mysql.php which can be easily extended to achive the above. I
- hope this is ok.
- Thanks to Till Gerken for mentioning this.
* better handling of $rownum param in fetchInto()
* changed property numrows[] to num_rows[]
DB.php
* $rowmun in fetch* now defaults to NULL
mysql.php
* added default $fetchmode to ordered
* removed extra checks in connect()
* fetchrow() now uses fetchInto()
* added the "fetch absolute row numbers" feature to fetchInto()
(not tested)
ifx.php
* better handling of $rownum param in fetchInto()
* connect() always use pg_connect string instead of the deprecated params
mode
* removed duplicated functions prepare() and execute() (now in common.php)
* pgsqlRaiseError() always fills native error param on DB_error objs
* added third param $rownum to fetchInto() so users can fetch also absolute
row numbers
* changed fetchRow() to use fetchInto() (can not erase, still used in get*()
from common.php
DB.php
* added third param $rownum to fetchInto()/fetchRow() so users can fetch
also absolute row numbers
* changed fetchRow() to use fetchInto()
errorNative() pass now (but that may be a bug in the test :-)
* implemented numRows() emulation in DB_oci8 that is available
in "optimize portability" mode only
use DB::isError(), since some of the db drivers return nulls from various
functions (like fetchRow()), and others don't... We should probably make all
of them just return errors. I did this for the mysql driver, as a start.
* renamed DB_common::execute_emulate_query to DB_common::executeEmulateQuery
* moved "query" DB method to DB_common, there was duplicated logic in query
and simpleQuery in all backends.
* added DB::isManip so we have _one_ place for testing whether something
is a data manipulation query
* when passed a string as its first constructor arg, DB_Error now uses
the error code DB_ERROR rather than just 0
* implemented auto-commit for ibase (not yet fully tested)
* fixed persistent connections in odbc