]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-14957 get_columns() improvements - mostly docs; definition moved to new file
authorskodak <skodak>
Sun, 25 May 2008 22:21:01 +0000 (22:21 +0000)
committerskodak <skodak>
Sun, 25 May 2008 22:21:01 +0000 (22:21 +0000)
lib/dml/database_column_info.php [new file with mode: 0644]
lib/dml/moodle_database.php
lib/dmllib.php

diff --git a/lib/dml/database_column_info.php b/lib/dml/database_column_info.php
new file mode 100644 (file)
index 0000000..dec7195
--- /dev/null
@@ -0,0 +1,112 @@
+<?php  //$Id$
+
+/**
+ * Detail database field information.
+ * Based on ADOFieldObject.
+ * @package dml
+ */
+class database_column_info {
+    /**
+     * Name of column - lowercase
+     */
+    public $name;
+
+    /**
+     * Driver dependent native data type
+     * Not standardised - used to find meta_type
+     */
+    public $type;
+
+    /**
+     * Max length:
+     *  character type - number of characters
+     *  blob - number of bytes
+     *  integer - number of digits
+     *  float - digits left from floating point
+     *  boolean - 1
+     *  enums - null
+     */
+    public $max_length;
+
+    /**
+     * Scale
+     * float - decimal points
+     * other - null
+     */
+    public $scale;
+
+    /**
+     * Enumerated filed options,
+     * null if not enum type
+     */
+    public $enums;
+
+    /**
+     * True if not null, false otherwise
+     */
+    public $not_null;
+
+    /**
+     * True if column is primary key.
+     * (usually 'id').
+     */
+    public $primary_key;
+
+    /**
+     * True if filed autoincrementing
+     * (usually 'id' only)
+     */
+    public $auto_increment;
+
+    /**
+     * True if binary
+     */
+    public $binary;
+
+    /**
+     * True if integer unsigned, false if signed.
+     * Null for other types
+     */
+    public $unsigned;
+
+    /**
+     * True if default value defined
+     */
+    public $has_default;
+
+    /**
+     * Default value if defined
+     */
+    public $default_value;
+
+    /**
+     * True if field values unique
+     */
+    public $unique;
+
+    /**
+     * Standardised one cahracter column type, uppercase
+     * R - counter (integer primary key)
+     * I - integers
+     * N - numbers (floats)
+     * C - characters and strings
+     * X - texts
+     * B - binary blobs
+     * L - boolean (1 bit)
+     * T - timestamp - unsupported
+     * D - date - unsupported
+     */
+    public $meta_type;
+
+    /**
+     * Contructor
+     * @param $data mixed object or array with properties
+     */
+    public function __construct($data) {
+        foreach ($data as $key=>$value) {
+            if (array_key_exists($key, $this)) {
+                $this->$key = $value;
+            }
+        }
+    }
+}
index 6dcbcc2a4f223f8c3bf40e30c913e94b5af4e7be..5d08d93a3e56581bab08d2ae312be45f590af539 100644 (file)
@@ -1,5 +1,7 @@
 <?php  //$Id$
 
+require_once($CFG->libdir.'/dml/database_column_info.php');
+
 /**
  * Abstract class representing moodle database interface.
  * @package dmlib
index e2875451ab37406b9b992c49a4d28fc073f4f306..f646c56e343bd5abc99aaef9fd8b8da883cf9e05 100644 (file)
@@ -138,40 +138,6 @@ function setup_DB() {
     return true;
 }
 
-/**
- * Detail database field information.
- * Based on ADOFieldObject.
- */
-class database_column_info {
-    public $name;
-    public $type;         // raw db field type
-    public $max_length;
-    public $scale;
-    public $enums;
-    public $not_null;
-    public $primary_key;
-    public $auto_increment;
-    public $binary;
-    public $unsigned;
-    public $zerofill;
-    public $has_default;
-    public $default_value;
-    public $unique;
-
-    public $meta_type; // type as one character
-
-    /**
-     * Contructor
-     * @param $data mixed object or array with properties
-     */
-    public function database_column_info($data) {
-        foreach ($data as $key=>$value) {
-            if (array_key_exists($key, $this)) {
-                $this->$key = $value;
-            }
-        }
-    }
-}