From 79cbc455101bda48e64eb0c03633c9d3344f64f0 Mon Sep 17 00:00:00 2001 From: zYne Date: Mon, 25 Sep 2006 21:39:52 +0000 Subject: [PATCH] Added Oracle datadict driver, fixes #117 Ticket: 117 --- Doctrine/DataDict/Mssql.php | 4 - Doctrine/DataDict/Oracle.php | 148 +++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+), 4 deletions(-) create mode 100644 Doctrine/DataDict/Oracle.php diff --git a/Doctrine/DataDict/Mssql.php b/Doctrine/DataDict/Mssql.php index 328d9feb5..22a635f19 100644 --- a/Doctrine/DataDict/Mssql.php +++ b/Doctrine/DataDict/Mssql.php @@ -78,8 +78,6 @@ class Doctrine_DataDict_Mssql extends Doctrine_DataDict { * @return array */ public function listTableColumns($table) { - - $result = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); $sql = "exec sp_columns @table_name = " . $this->quoteIdentifier($table); $result = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); $columns = array(); @@ -93,8 +91,6 @@ class Doctrine_DataDict_Mssql extends Doctrine_DataDict { } if ($type == 'varchar') { - // need to add length to the type so we are compatible with - // Zend_Db_Adapter_Pdo_Mysql! $type .= '('.$val['length'].')'; } diff --git a/Doctrine/DataDict/Oracle.php b/Doctrine/DataDict/Oracle.php new file mode 100644 index 000000000..02f011657 --- /dev/null +++ b/Doctrine/DataDict/Oracle.php @@ -0,0 +1,148 @@ +. + */ + +/** + * @package Doctrine + * @url http://www.phpdoctrine.com + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @author Konsta Vesterinen + * @version $Id$ + */ + +class Doctrine_DataDict_Mssql extends Doctrine_DataDict { + /** + * lists all databases + * + * @return array + */ + public function listDatabases() { + + } + /** + * lists all availible database functions + * + * @return array + */ + public function listFunctions() { + + } + /** + * lists all database triggers + * + * @param string|null $database + * @return array + */ + public function listTriggers($database = null) { + + } + /** + * lists all database sequences + * + * @param string|null $database + * @return array + */ + public function listSequences($database = null) { + + } + /** + * lists table constraints + * + * @param string $table database table name + * @return array + */ + public function listTableConstraints($table) { + + } + /** + * lists table constraints + * + * @param string $table database table name + * @return array + */ + public function listTableColumns($table) { + $sql = "DESCRIBE $table"; + $result = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); + $columns = array(); + foreach ($result as $key => $val) { + $description = array( + 'name' => $val['Field'], + 'notnull' => (bool) ($val['Null'] === ''), + 'type' => $val['Type'], + ); + $columns[$val['Field']] = new Doctrine_Schema_Column($description); + } + + return $columns; + } + /** + * lists table constraints + * + * @param string $table database table name + * @return array + */ + public function listTableIndexes($table) { + + } + /** + * lists tables + * + * @param string|null $database + * @return array + */ + public function listTables($database = null) { + return $this->dbh->fetchCol('SELECT table_name FROM all_tables ORDER BY table_name'); + } + /** + * lists table triggers + * + * @param string $table database table name + * @return array + */ + public function listTableTriggers($table) { + + } + /** + * lists table views + * + * @param string $table database table name + * @return array + */ + public function listTableViews($table) { + + } + /** + * lists database users + * + * @return array + */ + public function listUsers() { + + } + /** + * lists database views + * + * @param string|null $database + * @return array + */ + public function listViews($database = null) { + + } +}