summaryrefslogtreecommitdiff
path: root/framework/Data/Common/Pgsql/TPgsqlMetaData.php
diff options
context:
space:
mode:
authorDaniel <darthdaniel85@gmail.com>2013-12-09 02:04:04 -0500
committerFabio Bas <ctrlaltca@gmail.com>2014-08-26 13:14:33 +0200
commit93792e60746f8d34fa675ba834ca36552f6016df (patch)
tree01052bbff4b2aafb8483e95bb8d8974dd7d1c164 /framework/Data/Common/Pgsql/TPgsqlMetaData.php
parent6d4278bcaf8951e748ee08edd8db412588244217 (diff)
Support for all PRADO DB drivers!
Diffstat (limited to 'framework/Data/Common/Pgsql/TPgsqlMetaData.php')
-rw-r--r--framework/Data/Common/Pgsql/TPgsqlMetaData.php28
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;
+ }
}