From a8b3ebe8f62c3888b216d827c1c5dcba8a47d4e1 Mon Sep 17 00:00:00 2001 From: wei <> Date: Sun, 26 Nov 2006 22:15:58 +0000 Subject: Adding active record implementation. --- .../ActiveRecord/Vendor/TPgsqlColumnMetaData.php | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php (limited to 'framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php') diff --git a/framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php b/framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php new file mode 100644 index 00000000..2b801b09 --- /dev/null +++ b/framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php @@ -0,0 +1,121 @@ + + * @version $Id$ + * @package System.Data.ActiveRecord.Vendor + */ + +/** + * Column meta data for Postgre 7.3 or later. + * + * @author Wei Zhuo + * @version $Id$ + * @package System.Data.ActiveRecord.Vendor + * @since 3.1 + */ +class TPgsqlColumnMetaData extends TComponent +{ + private $_name; + private $_type; + private $_sequenceName; + private $_default; + private $_length; + private $_notNull=true; + + private $_isPrimary=null; + + /** + * Initialize column meta data. + * + * @param string column name. + * @param string column data type. + * @param string column data length. + * @param boolean column can not be null. + * @param string serial name. + * @param string default value. + */ + public function __construct($name,$type,$length,$notNull,$serial,$default) + { + $this->_name=$name; + $this->_type=$type; + $this->_length=$length; + $this->_notNull=$notNull; + $this->_sequenceName=$serial; + $this->_default=$default; + } + + /** + * @return string quoted column name. + */ + public function getName() + { + return $this->_name; + } + + /** + * @return boolean true if column is a sequence, false otherwise. + */ + public function hasSequence() + { + return $this->_sequenceName != null; + } + + /** + * @return string sequence name, only applicable if column is a sequence. + */ + public function getSequenceName() + { + return $this->_sequenceName; + } + + /** + * Set the column as primary key + */ + public function setIsPrimaryKey($value) + { + if($this->_isPrimary===null) + $this->_isPrimary=$value; + else + throw new TActiveRecordException('ar_column_meta_data_read_only'); + } + + /** + * @return boolean true if the column is a primary key, or part of a composite primary key. + */ + public function getIsPrimaryKey() + { + return $this->_isPrimary===null? false : $this->_isPrimary; + } + + public function getType() + { + return $this->_type; + } + + public function getLength() + { + return $this->_length; + } + + public function getNotNull() + { + return $this->_notNull; + } + + /** + * @return boolean true if column has default value, false otherwise. + */ + public function hasDefault() + { + return $this->_default !== null; + } + + public function getDefaultValue() + { + return $this->_default; + } +} + +?> \ No newline at end of file -- cgit v1.2.3