diff options
author | Daniel <darthdaniel85@gmail.com> | 2013-12-09 02:04:04 -0500 |
---|---|---|
committer | Fabio Bas <ctrlaltca@gmail.com> | 2014-08-26 13:14:33 +0200 |
commit | 93792e60746f8d34fa675ba834ca36552f6016df (patch) | |
tree | 01052bbff4b2aafb8483e95bb8d8974dd7d1c164 /framework/Data/Common/Pgsql/TPgsqlMetaData.php | |
parent | 6d4278bcaf8951e748ee08edd8db412588244217 (diff) |
Support for all PRADO DB drivers!
Diffstat (limited to 'framework/Data/Common/Pgsql/TPgsqlMetaData.php')
-rw-r--r-- | framework/Data/Common/Pgsql/TPgsqlMetaData.php | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/framework/Data/Common/Pgsql/TPgsqlMetaData.php b/framework/Data/Common/Pgsql/TPgsqlMetaData.php index 9b4067a6..595f46e8 100644 --- a/framework/Data/Common/Pgsql/TPgsqlMetaData.php +++ b/framework/Data/Common/Pgsql/TPgsqlMetaData.php @@ -416,5 +416,33 @@ EOD; } return false; } + + /** + * Returns all table names in the database. + * @param string $schema the schema of the tables. Defaults to empty string, meaning the current or default schema. + * If not empty, the returned table names will be prefixed with the schema name. + * @return array all table names in the database. + */ + public function findTableNames($schema='public') + { + if($schema==='') + $schema=self::DEFAULT_SCHEMA; + $sql=<<<EOD +SELECT table_name, table_schema FROM information_schema.tables +WHERE table_schema=:schema AND table_type='BASE TABLE' +EOD; + $command=$this->getDbConnection()->createCommand($sql); + $command->bindParam(':schema',$schema); + $rows=$command->queryAll(); + $names=array(); + foreach($rows as $row) + { + if($schema===self::DEFAULT_SCHEMA) + $names[]=$row['table_name']; + else + $names[]=$row['table_schema'].'.'.$row['table_name']; + } + return $names; + } } |