summaryrefslogtreecommitdiff
path: root/framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php
diff options
context:
space:
mode:
authorwei <>2006-11-26 22:15:58 +0000
committerwei <>2006-11-26 22:15:58 +0000
commita8b3ebe8f62c3888b216d827c1c5dcba8a47d4e1 (patch)
tree5eef79dbc5e2f506047fa463cb427a40a7bd8441 /framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php
parent6773dfe453682d2b39a26fbabef8e706bf6bb412 (diff)
Adding active record implementation.
Diffstat (limited to 'framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php')
-rw-r--r--framework/Data/ActiveRecord/Vendor/TPgsqlColumnMetaData.php121
1 files changed, 121 insertions, 0 deletions
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 @@
+<?php
+/**
+ * TPgsqlColumnMetaData class file.
+ *
+ * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
+ * @version $Id$
+ * @package System.Data.ActiveRecord.Vendor
+ */
+
+/**
+ * Column meta data for Postgre 7.3 or later.
+ *
+ * @author Wei Zhuo <weizho[at]gmail[dot]com>
+ * @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