PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » MDB2_Schema » Bug #5977

Error in updateDatabase()/verifyAlterDatabase()

Details

Submitted2005-11-16 03:24 UTC
Fromrichtl at arscognita dot com
Assignedlsmith
StatusClosed
PackageMDB2_Schema
PHP Version5.1.0
OSlinux
Roadmaps(Not assigned)

Comments

[2005-11-16 03:24 UTC] richtl at arscognita dot com

Description:
------------
Updating a database from one schema to another generates an error with both the mysql and mysqli drivers. I am using MySQL 5.0.

Test script:
---------------
My test script drops any existing DB, deletes the xml.old file, creates schema1.xml successfully, and then throws an error when calling updateDatabase() on the schema2.xml.

schema1.xml is:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<database>
<name><variable>database_name</variable></name>
<create><variable>create_db</variable></create>
<table><name>table1</name>
<declaration>
<field><name>field1</name>
<type>integer</type>
</field>
<index><name>table1_field1</name>
<field><name>field1</name></field>
</index>
</declaration>
</table>
</database>

schema2.xml is:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<database>
<name><variable>database_name</variable></name>
<create><variable>create_db</variable></create>
<table><name>table1</name>
<declaration>
<field><name>field1</name>
<type>integer</type>
</field>
<field><name>field2</name>
<type>integer</type>
</field>
<index><name>table1_field1</name>
<field><name>field1</name></field>
</index>
</declaration>
</table>
</database>

Expected result:
----------------
Clean upgrade.

Actual result:
--------------
Warning: array_key_exists(): The second argument should be either an array or an object in /usr/share/pear/MDB2/Schema.php on line 1360

Call Stack:
0.0010 48512 1. {main}() /home/richtl/workspace/libmindmeld/install/makedb.php:0
0.4116 2522728 2. MDB2_Schema->updateDatabase() /home/richtl/workspace/libmindmeld/install/makedb.php:13
0.4646 2535104 3. MDB2_Schema->alterDatabase() /usr/share/pear/MDB2/Schema.php:1910
0.4673 2546200 4. MDB2_Schema->alterDatabaseTables() /usr/share/pear/MDB2/Schema.php:1478
0.4674 2546200 5. array_key_exists() /usr/share/pear/MDB2/Schema.php:1360