Home » Database » MDB2_Driver_pgsql » Bug #9081
MDB2 pgsql dropDatabase issue
Details
| Submitted | 2006-10-18 15:01 UTC |
|---|---|
| From | ale dot pas at tiscali dot it |
| Assigned | quipo |
| Status | Closed |
| Package | MDB2_Driver_pgsql |
| PHP Version | 5.1.4 |
| OS | linux |
| Roadmaps | (Not assigned) |
Comments
[2006-10-18 15:01 UTC] ale dot pas at tiscali dot it
Description:
------------
A call to dropDatabase() returns MDB2_Ok but the database is not dropped.
Test script:
---------------
$mdb2->loadModule('Manager');
$this->assertFalse(PEAR::isError($mdb2));
$this->assertTrue(in_array($new_db_name, $mdb2->listDatabases()));
// Drop DB
$this->assertTrue(MDB2_OK == $mdb2->dropDatabase($new_db_name));
$this->assertFalse(in_array($new_db_name, $mdb2->listDatabases()));
Expected result:
----------------
The last instruction should return false but returns true (the DB is still in the list reported by listDatabases().
DB user permission are Ok and the DB is really still there.
[2006-10-19 09:00 UTC] ale dot pas at tiscali dot it
This code fails at random (once every 2-5 run)
---------------------------------
require_once 'MDB2.php';
$mdb2 =&
MDB2::connect('pgsql://***:***@localhost:5432/template1');
$mdb2->loadModule('Manager');
var_dump($mdb2->listDatabases());
$mdb2->dropDatabase('test_geodb');
var_dump($mdb2->listDatabases());
var_dump($mdb2->createDatabase('test_geodb'));
--------------------------------------
This code always works:
--------------------------------------
$dbconn = pg_connect("host=localhost dbname=template1
user=*** password=***")
or die('Could not connect: ' . pg_last_error());
$query = 'select datname from pg_database';
$result = pg_query($query) or die('Query failed: ' .
pg_last_error());
while($row = pg_fetch_row($result)){
$dblist[] = $row[0];
}
var_dump(db_list());
if(in_array('test_geodb', db_list())){
$query = 'DROP DATABASE test_geodb';
$result = pg_query($query) or die('Query failed: ' .
pg_last_error());
}
var_dump(db_list());
$query = 'CREATE DATABASE test_geodb';
$result = pg_query($query) or die('Query failed: ' .
pg_last_error());
pg_close($dbconn);
function db_list(){
$query = 'select datname from pg_database';
$result = pg_query($query) or die('Query failed: ' .
pg_last_error());
while($row = pg_fetch_row($result)){
$dblist[] = $row[0];
}
return $dblist;
}