<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
    <channel rdf:about="http://pear.php.net/">
    <link>http://pear.php.net/</link>
    <dc:creator>pear-webmaster@lists.php.net</dc:creator>
    <dc:publisher>pear-webmaster@lists.php.net</dc:publisher>
    <dc:language>en-us</dc:language><items>
<rdf:Seq><rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.5.2/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.5.1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.5.0/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.5.0RC3/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.5.0RC2/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.5.0RC1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.4.0/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.3.2/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.3.1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/DB_Table/download/1.3.0/"/>
</rdf:Seq>
</items>

<title>Latest releases</title>
<description>The latest releases for the package db_table</description>
</channel>

<item rdf:about="http://pear.php.net/package/DB_Table/download/1.5.2/">
 <title>DB_Table 1.5.2</title>
 <link>http://pear.php.net/package/DB_Table/download/1.5.2/</link>
 <content:encoded>- Bug #13701: Undefined variable $db in Generator.php&lt;br /&gt;
  (thanks to Youichi Okada)&lt;br /&gt;
- Bug #13728: generator produced invalid variable names (e.g. containing a dot)&lt;br /&gt;
  (thanks to Peter Pawluczuk)
 </content:encoded>
 <dc:date>2008-05-14T14:38:43-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.5.1/">
 <title>DB_Table 1.5.1</title>
 <link>http://pear.php.net/package/DB_Table/download/1.5.1/</link>
 <content:encoded>- this package is now licensed under the New BSD license&lt;br /&gt;
- Request #12136: support for 'qf_type' == 'link' is now available, providing&lt;br /&gt;
  access to the &quot;link&quot; element of HTML_QuickForm; the link href needs to be&lt;br /&gt;
  specified in the 'qf_href' key, the link text needs to be specified in the&lt;br /&gt;
  'qf_setvalue' key&lt;br /&gt;
  (thanks to Diederick Huijbers)&lt;br /&gt;
- Bug #12190: missing error return in DB_Table_Manager::create() &lt;br /&gt;
  (thanks to Carsten Wiedmann for the patch)&lt;br /&gt;
- Bug #12208: wrong verification of clob fields with mysql(i) backend&lt;br /&gt;
  (thanks to Carsten Wiedmann)&lt;br /&gt;
- Bug #12247: 'require' attribute is name 'required' in Generator&lt;br /&gt;
  (thanks to Gregor Gramlich)&lt;br /&gt;
- Bug #12497: Generator works only with DB, but not with MDB2&lt;br /&gt;
  (thanks to Carsten Wiedmann for the patch)&lt;br /&gt;
- Request #12510: various optimizations (mostly coding standards) and&lt;br /&gt;
  corrections (missing error return call, change MDB2's portability mode only&lt;br /&gt;
  temporarily) &lt;br /&gt;
  (thanks to Carsten Wiedmann for the patch)&lt;br /&gt;
- Request #13267: constructor's $table parameter is now optional; this change&lt;br /&gt;
  allows to set a fixed table name via the $table property in the DB_Table&lt;br /&gt;
  subclass
 </content:encoded>
 <dc:date>2008-03-28T15:20:56-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.5.0/">
 <title>DB_Table 1.5.0</title>
 <link>http://pear.php.net/package/DB_Table/download/1.5.0/</link>
 <content:encoded>This is the first stable release that contains some signficant enhancements to DB_Table. The main changes since release 1.4.0 are:&lt;br /&gt;
- A new DB_Table_Database class, which contains a model of relationships between tables. The class contains methods to simplify the construction of joins, check foreign key validity, and emulate referentially triggered ON DELETE and ON UPDATE actions. &lt;br /&gt;
- A new DB_Table_Generator class, which generates PHP code necessary for an existing database.  Generates a skeleton DB_Table subclass definition for each table in the database.  &lt;br /&gt;
- A new DB_Table_Base class, as an abstract parent class for DB_Table and DB_Table_Database.&lt;br /&gt;
- Added auto-increment column declarations to DB_Table&lt;br /&gt;
- Select*() methods can now process query arrays passed as arguments (as well as stored queries).&lt;br /&gt;
- XML support, using the MDB2 XML schema. XML Serialization and unserialization of the database model.&lt;br /&gt;
- Full unit tests for DB_Table_Database.&lt;br /&gt;
- Full documentation added to the PEAR manual. &lt;br /&gt;
&lt;br /&gt;
The only changes since release 1.5.0RC3 are changes to the organization of the DB_Table_Database unit tests, and inclusion of a simple form of regression testing. See tests/database/README.
 </content:encoded>
 <dc:date>2007-06-27T18:27:30-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.5.0RC3/">
 <title>DB_Table 1.5.0RC3</title>
 <link>http://pear.php.net/package/DB_Table/download/1.5.0RC3/</link>
 <content:encoded>- Added complete documentation in the PEAR manual.&lt;br /&gt;
- new DB_Table_Base class added. This is a parent class for DB_Table and DB_Table_Database that contains methods and properties common to both classes. &lt;br /&gt;
- The DB_Table::select*() and DB_Table::buildSQL() methods, which are now inherited from the DB_Table_Base class, now accept either a query array or (as before) a key of the $sql property array as a first argument.&lt;br /&gt;
- Added DB_Table_Database::onDeleteAction() and DB_Table_Database::onUpdateAction() methods, which implement referentially triggered actions (e.g., cascading deletes). This code had previously been part of the DB_Table_Database insert() and update() methods.&lt;br /&gt;
- Changed behavior of DB_Table::insert() and DB_Table::update() method for a DB_Table object that is part of a DB_Table_Database instance: If a parent DB_Table_Database object exists, these methods can now validate foreign keys and implement ON DELETE and ON UPDATE actions, if these behaviors are enabled in the parent DB_Table_Database object. The behaviors of the DB_Table and DB_Table_Database insert and update methods are now identical. (This is a BC break with 1.5.0RC1 and 1.5.0RC2 beta releases, but not with earlier stable releases.)&lt;br /&gt;
- Disable automatic foreign key validation by default (BC break with releases 1.5.0RC1 and 1.5.0RC2).&lt;br /&gt;
- Added buildFilter() method to the DB_Table_Base class. This a simplified version of the DB_Table_Database::buildFilter() method of previous 1.5.0RC* releases. (BC break with 1.5.0RC1 and 1.5.0RC2)&lt;br /&gt;
- Added a private DB_Table_Database::_buildForeignKeyFilter() for more specialized uses of the old buildFilter() method, which are used internally to construct queries.&lt;br /&gt;
- Changed return value of DB_Table_Database::validForeignKey on failure from boolean false to PEAR_Error. Changed related error codes.&lt;br /&gt;
- Changed &lt;autoinc&gt; element of XML output to &lt;autoincrement&gt; for consistency with MDB2 XML schema. &lt;br /&gt;
- Simplified unit tests for DB_Table_Database by adding a parent DatabaseTest unit test class.
 </content:encoded>
 <dc:date>2007-06-14T15:12:03-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.5.0RC2/">
 <title>DB_Table 1.5.0RC2</title>
 <link>http://pear.php.net/package/DB_Table/download/1.5.0RC2/</link>
 <content:encoded>- new DB_Table_Generator class added. This class generates code required as an interface to an existing database by reverse engineering the databcase. It generates a DB_Table subclass definition for each table, and a script that instantiates one instance of each DB_Table subclass, and a parent DB_Table_Database object. See the documentation block for the new class for usage instructions, and the tests/generator/tests.php script for an example.
 </content:encoded>
 <dc:date>2007-03-24T23:37:20-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.5.0RC1/">
 <title>DB_Table 1.5.0RC1</title>
 <link>http://pear.php.net/package/DB_Table/download/1.5.0RC1/</link>
 <content:encoded>- New DB_Table_Database class added to package. The new class provides a model &lt;br /&gt;
  of foreign key relationships between tables in a database, and features that &lt;br /&gt;
  depend on knowledge of these relationships. User documentation for this &lt;br /&gt;
  class is provided in docs/database/manual.html. &lt;br /&gt;
- Added auto-increment feature to DB_Table insert() method. The value of a new&lt;br /&gt;
  $auto_inc_col property is the name of an auto-increment column (if any) or &lt;br /&gt;
  null. &lt;br /&gt;
- added toXML() method to DB_Table, which emits the table schema in the MDB2 &lt;br /&gt;
  XML DTD, with an extension to describe foreign key references. This method &lt;br /&gt;
  is called by the toXML() method of DB_Table_Database, which emits an XML &lt;br /&gt;
  schema string for an entire database.
 </content:encoded>
 <dc:date>2007-02-06T01:32:31-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.4.0/">
 <title>DB_Table 1.4.0</title>
 <link>http://pear.php.net/package/DB_Table/download/1.4.0/</link>
 <content:encoded>- Static form elements like 'header', 'static', 'submit' or 'reset' can now&lt;br /&gt;
  easily be added: define an array called $frm in your class, create a form&lt;br /&gt;
  object (e.g. yourself, via $obj-&gt;getForm(), ...) and then call&lt;br /&gt;
  $obj-&gt;addStaticFormElements($form);&lt;br /&gt;
  The $frm array has a very similar format like the column definition format. The&lt;br /&gt;
  key is the field name and the value is an array with details about the element.&lt;br /&gt;
  There is a special key called 'before' in the details array. If it is not&lt;br /&gt;
  given, or is empty (or null) the element will be appended at the end. If it is&lt;br /&gt;
  given, the element is added before the element specified via 'before'.&lt;br /&gt;
  Example:&lt;br /&gt;
  var $frm = array('headline' =&gt; array('before'        =&gt; 'name',&lt;br /&gt;
                                          'qf_type'       =&gt; 'header',&lt;br /&gt;
                                          'qf_setvalue'   =&gt; 'Headline'&lt;br /&gt;
                                         ),&lt;br /&gt;
                   'submit'   =&gt; array('before'        =&gt; null,&lt;br /&gt;
                                          'qf_type'       =&gt; 'submit',&lt;br /&gt;
                                          'qf_setvalue'   =&gt; 'Save data'&lt;br /&gt;
                                         ));&lt;br /&gt;
  This example assumes that there is an element called 'name' in the form. The&lt;br /&gt;
  header element will be placed before this 'name' element, and the submit button&lt;br /&gt;
  will be placed at the end of the form.&lt;br /&gt;
- added support for 'hierselect' and 'jscalendar' QuickForm elements as&lt;br /&gt;
  'qf_type' values in the column definition arrays&lt;br /&gt;
  (thanks to Arne Bippes and QDog for the patches)&lt;br /&gt;
- fixes / optimizations for columns with 'qf_type' == 'file':&lt;br /&gt;
  * if the column is marked as required, the 'uploadedfile' QF rule is now set&lt;br /&gt;
    instead of the 'required' QF rule&lt;br /&gt;
  * the 'numeric' and 'maxlength' QF rules are not set anymore (the corresponding&lt;br /&gt;
    checks will still be done before inserting/updating data into the database)&lt;br /&gt;
- fixed wrong handling of errors in the constructor
 </content:encoded>
 <dc:date>2006-11-09T15:57:28-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.3.2/">
 <title>DB_Table 1.3.2</title>
 <link>http://pear.php.net/package/DB_Table/download/1.3.2/</link>
 <content:encoded>- Bug #8249: &amp;nbsp; occured wrongly between grouped radio buttons&lt;br /&gt;
  (thanks to Arne Bippes, arne dot bippes at brandao dot de)&lt;br /&gt;
- Renamed the key 'qf_radiosep' for the separator of grouped QuickForm elements&lt;br /&gt;
  into 'qf_groupsep', as it is not only used for radio buttons
 </content:encoded>
 <dc:date>2006-07-25T06:25:46-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.3.1/">
 <title>DB_Table 1.3.1</title>
 <link>http://pear.php.net/package/DB_Table/download/1.3.1/</link>
 <content:encoded>- updated the allowed data types for 'alter' and 'verify' modes according to&lt;br /&gt;
the latest MDB2 changes
 </content:encoded>
 <dc:date>2006-07-19T05:33:43-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/DB_Table/download/1.3.0/">
 <title>DB_Table 1.3.0</title>
 <link>http://pear.php.net/package/DB_Table/download/1.3.0/</link>
 <content:encoded>Short summary:&lt;br /&gt;
* New table creation modes 'verify' and 'alter'&lt;br /&gt;
* Primary keys are now supported&lt;br /&gt;
* MDB2 is now supported as database backend&lt;br /&gt;
* Firebird DBMS is now supported (but Interbase isn't)&lt;br /&gt;
* Auto-creation of QuickForm rules can be disabled now&lt;br /&gt;
* Usage of QuickForm and custom QuickForm elements is now more flexible&lt;br /&gt;
* Internationalizing/customizing of error messages now easier&lt;br /&gt;
&lt;br /&gt;
Minor changes in detail:&lt;br /&gt;
* Improvement related to bug report #5679: many arrays (in the&lt;br /&gt;
  table definition and as function parameters) may now be null&lt;br /&gt;
  (of course, an empty array is still allowed).&lt;br /&gt;
* The column definition array $col may not be empty because it&lt;br /&gt;
  isn't possible to create empty database tables and because&lt;br /&gt;
  the work with DB_Table makes only sense with at least one&lt;br /&gt;
  column.&lt;br /&gt;
* Fixed several return by reference problems (that caused&lt;br /&gt;
  notices in PHP 4.4.x and 5.x).&lt;br /&gt;
* Fixed several &quot;undefined index&quot; problems (causing notices).&lt;br /&gt;
* Bugfix: select() and selectResult() didn't return error&lt;br /&gt;
  objects caused due to problems in $sql array.&lt;br /&gt;
* Bugfix: static usage of DB_Table_QuickForm::createForm()&lt;br /&gt;
  resulted in fatal error when 'formName' wasn't specified&lt;br /&gt;
  in the $args parameter.&lt;br /&gt;
* Request #5965: Turn off automatic setting of default QF rules&lt;br /&gt;
  like 'numeric' or 'required' (can be done by setting&lt;br /&gt;
  $cols[...]['qf_set_default_rules'] = false).&lt;br /&gt;
  (thanks to Arne Bippes)&lt;br /&gt;
* Bug #6025: DB_Table no longer tries to create a table if a&lt;br /&gt;
  table with the same name but with different use of lower and&lt;br /&gt;
  upper letters.&lt;br /&gt;
* Request #6036: new qf_type 'callback' which allows to add&lt;br /&gt;
  custom QF elements that need more than the standard&lt;br /&gt;
  parameters. You need to specify a key named 'qf_callback',&lt;br /&gt;
  filled with either the name of a class (this class needs to&lt;br /&gt;
  have a method 'createElement') or the name of a method.&lt;br /&gt;
  Both method types must return true if the element was created&lt;br /&gt;
  successfully. (thanks to Arne Bippes)&lt;br /&gt;
* The dependency on the Date package was removed.&lt;br /&gt;
* In addition to the option to internationalize some error messages&lt;br /&gt;
  via $GLOBALS['_DB_TABLE']['error'], you can now use&lt;br /&gt;
  setErrorMessage() like this (assuming $obj is your DB_Table instance):&lt;br /&gt;
    $obj-&gt;setErrorMessage(DB_TABLE_ERR_PHPTYPE, 'localized message');&lt;br /&gt;
  or to set more than one message:&lt;br /&gt;
    $obj-&gt;setErrorMessage(array(DB_TABLE_ERR_PHPTYPE =&gt; 'message 1',&lt;br /&gt;
                                DB_TABLE_ERR_NOT_DB_OBJECT =&gt; 'message 2'));&lt;br /&gt;
  Static calls (DB_Table::setErrorMessage(...)) are also valid.&lt;br /&gt;
  Setting the error messages via a static call or $GLOBALS is&lt;br /&gt;
  especially needed for errors that can occur with-in the&lt;br /&gt;
  constructor call (i.e. e.g. creating or altering the database table).&lt;br /&gt;
* Fixed handling of QuickForm rules: If there was a server-side-only&lt;br /&gt;
  rule (like 'uploadedfile'), client-side validation was disabled&lt;br /&gt;
  for all rules. Now it is disabled only for server-side-only rules.&lt;br /&gt;
* You can now use an extended HTML_QuickForm object by specifying&lt;br /&gt;
  the class name in $_DB_TABLE['qf_class_name']. (Attention: You&lt;br /&gt;
  have to include the extended class file yourself.)&lt;br /&gt;
&lt;br /&gt;
Major changes / enhancements in detail:&lt;br /&gt;
* Request #5478: Verification/check, whether the table exists,&lt;br /&gt;
  whether all the columns exist, whether the columns have the&lt;br /&gt;
  right type, and whether the indexes exists. This can be used&lt;br /&gt;
  by setting $create in the constructor of your extended class&lt;br /&gt;
  to 'verify' instead of false/'safe'/'drop'. In case of an&lt;br /&gt;
  error in the schema, you will find the PEAR_Error object in&lt;br /&gt;
  $obj-&gt;error (assuming $obj is your DB_Table instance).&lt;br /&gt;
  - This is not available for 'fbsql' and 'mssql' phptypes.&lt;br /&gt;
    ('fbsql' is likely to be not supported in the future, while&lt;br /&gt;
    'mssql' will be added when MDB2 has support for index and&lt;br /&gt;
    constraint information for this DBMS.)&lt;br /&gt;
* New creation mode 'alter': If the table does not exist, it will&lt;br /&gt;
  be created. Otherwise, table fields' existance and types will be&lt;br /&gt;
  checked and, if needed, the field(s) will be added or changed. The&lt;br /&gt;
  same applies for indexes' and constraints' existance and types.&lt;br /&gt;
  Columns/indexes/constraints that don't exist anymore in the table&lt;br /&gt;
  definition class, will NOT be removed.              &lt;br /&gt;
  - This is a new and powerful feature, use it with caution -- changing&lt;br /&gt;
    a string datatype into a numeric datatype in your table definition&lt;br /&gt;
    class may lead to data loss.&lt;br /&gt;
  - Using &quot; $_DB_TABLE['debug'] = true; &quot; in your scripts will&lt;br /&gt;
    output what will be changed. If something unexpected is changed,&lt;br /&gt;
    please report it via PEAR's bug tracker (please include the&lt;br /&gt;
    debug message and the column and/or index definition from your&lt;br /&gt;
    table definition class, thanks).&lt;br /&gt;
  - This is not available for 'fbsql' and 'mssql' phptypes.&lt;br /&gt;
    ('fbsql' is likely to be not supported in the future, while&lt;br /&gt;
    'mssql' will be added when MDB2 has support for index and&lt;br /&gt;
    constraint information for this DBMS.)&lt;br /&gt;
  (thanks to Arne Bippes for the initial idea)&lt;br /&gt;
* Support for primary keys: In the $idx array one index can be&lt;br /&gt;
  marked as 'primary' and will be created as the primary key of&lt;br /&gt;
  the chosen table.&lt;br /&gt;
  - This not available for 'sqlite' phptype, as SQLite does not&lt;br /&gt;
    support primary keys.&lt;br /&gt;
* Request #6384: DB_Table now supports also MDB2 as the database&lt;br /&gt;
  backend. Just pass an MDB2 instance instead of a DB instance to&lt;br /&gt;
  the constructor. (thanks to Lukas Smith for the initial patch)&lt;br /&gt;
* DB_Table now supports the Firebird DBMS (version &gt;= 1.5&lt;br /&gt;
  required). Because of the limited features of Interbase&lt;br /&gt;
  (its ancestor), only Firebird is supported. Therefore,&lt;br /&gt;
  'dbsyntax' must be set to 'firebird' in your DSN. Please note&lt;br /&gt;
  that the ibase extension is very buggy in PHP 4, while it works&lt;br /&gt;
  good with PHP 5.&lt;br /&gt;
&lt;br /&gt;
Only relevant if you are using localized error messages:&lt;br /&gt;
* Please note that there are eleven new error messages and that the&lt;br /&gt;
  messages for DB_TABLE_ERR_NOT_DB_OBJECT and DB_TABLE_ERR_PHPTYPE&lt;br /&gt;
  slightly differ from the old messages.
 </content:encoded>
 <dc:date>2006-04-26T11:56:35-05:00</dc:date>
</item>

</rdf:RDF>