summaryrefslogtreecommitdiff
path: root/framework/Data/ActiveRecord/Vendor/TMysqlMetaDataInspector.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Data/ActiveRecord/Vendor/TMysqlMetaDataInspector.php')
-rw-r--r--framework/Data/ActiveRecord/Vendor/TMysqlMetaDataInspector.php84
1 files changed, 0 insertions, 84 deletions
diff --git a/framework/Data/ActiveRecord/Vendor/TMysqlMetaDataInspector.php b/framework/Data/ActiveRecord/Vendor/TMysqlMetaDataInspector.php
deleted file mode 100644
index 23c483d1..00000000
--- a/framework/Data/ActiveRecord/Vendor/TMysqlMetaDataInspector.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * TMysqlMetaDataInspector class file.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @link http://www.pradosoft.com/
- * @copyright Copyright &copy; 2005-2007 PradoSoft
- * @license http://www.pradosoft.com/license/
- * @version $Id$
- * @package System.Data.ActiveRecord.Vendor
- */
-
-Prado::using('System.Data.ActiveRecord.Vendor.TDbMetaDataInspector');
-Prado::using('System.Data.ActiveRecord.Vendor.TMysqlColumnMetaData');
-Prado::using('System.Data.ActiveRecord.Vendor.TMysqlMetaData');
-
-/**
- * TMysqlMetaDataInspector class.
- *
- * Gathers table column properties for Mysql database.
- *
- * @author Wei Zhuo <weizho[at]gmail[dot]com>
- * @version $Id$
- * @package System.Data.ActiveRecord.Vendor
- * @since 3.1
- */
-class TMysqlMetaDataInspector extends TDbMetaDataInspector
-{
- /**
- * Get the column definitions for given table.
- * @param string table name.
- * @return array column name value pairs of column meta data.
- */
- protected function getColumnDefinitions($table)
- {
- $sql="SHOW FULL FIELDS FROM {$table}";
- $conn = $this->getDbConnection();
- $conn->setActive(true);
- $command = $conn->createCommand($sql);
- $command->prepare();
- foreach($command->query() as $col)
- $cols[strtolower($col['Field'])] = $this->getColumnMetaData($col);
- return $cols;
- }
-
- protected function getColumnMetaData($col)
- {
- $name = '`'.$col['Field'].'`'; //quote the column names!
- $type = $col['Type'];
- $notNull = $col['Null']==='NO';
- $autoIncrement=is_int(strpos(strtolower($col['Extra']), 'auto_increment'));
- $default = $col['Default'];
- $primaryKey = $col['Key']==='PRI';
- return new TMysqlColumnMetaData(strtolower($col['Field']),$name,$type,
- $notNull,$autoIncrement,$default,$primaryKey);
- }
-
- /**
- * Not implemented, Mysql does not always have foreign key constraints.
- */
- protected function getConstraintKeys($table)
- {
- return array('primary'=>array(), 'foreign'=>array());
- }
-
- /**
- * Create a new instance of meta data.
- * @param string table name
- * @param array column meta data
- * @param array primary key meta data
- * @param array foreign key meta data.
- * @return TDbMetaData table meta data.
- */
- protected function createMetaData($table, $columns, $primary, $foreign)
- {
- $pks = array();
- foreach($columns as $name=>$column)
- if($column->getIsPrimaryKey())
- $pks[] = $name;
- return new TMysqlMetaData($table,$columns,$pks);
- }
-}
-
-?> \ No newline at end of file