pkrenn: tableList() has been added, three different queries necessary (merged from branches/gsoc)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@41709 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2007-09-14 01:37:48 +00:00
parent 3946432304
commit 9a516662d0

View File

@ -494,14 +494,29 @@ class PDODatabase extends Database {
} }
/** /**
* Returns a list of all the tables in the column. * Returns a list of all the tables in the database.
* Table names will all be in lowercase. * Table names will all be in lowercase.
* Returns a map of a table. * Returns a map of a table.
*/ */
public function tableList() { public function tableList() {
switch ($parameters['type']) {
// to be done - SHOW is used extensively but very MySQL specific case "mysql":
$sql = "SHOW TABLES";
break;
case "postgresql":
$sql = "SELECT tablename FROM pg_tables WHERE tablename NOT ILIKE 'pg_%' AND tablename NOT ILIKE 'sql_%'";
break;
case "mssql":
$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME NOT LIKE 'sysdiagrams%'";
break;
default:
$this->databaseError("This database server is not available");
}
foreach($dbConn->query($sql) as $record) {
$table = strtolower(reset($record));
$tables[$table] = $table;
}
return isset($tables) ? $tables : null;
} }
/** /**