From 4aaddb32e1bd1a7833478f1fd4194507dba2c924 Mon Sep 17 00:00:00 2001 From: thomascube Date: Thu, 18 May 2006 17:49:20 +0000 Subject: Removed MDB2 classes; install seperately --- program/lib/MDB2/Driver/Datatype/mysql.php | 543 ----------------------------- 1 file changed, 543 deletions(-) delete mode 100644 program/lib/MDB2/Driver/Datatype/mysql.php (limited to 'program/lib/MDB2/Driver/Datatype/mysql.php') diff --git a/program/lib/MDB2/Driver/Datatype/mysql.php b/program/lib/MDB2/Driver/Datatype/mysql.php deleted file mode 100644 index f57867025..000000000 --- a/program/lib/MDB2/Driver/Datatype/mysql.php +++ /dev/null @@ -1,543 +0,0 @@ - | -// +----------------------------------------------------------------------+ -// -// $Id$ -// - -require_once 'MDB2/Driver/Datatype/Common.php'; - -/** - * MDB2 MySQL driver - * - * @package MDB2 - * @category Database - * @author Lukas Smith - */ -class MDB2_Driver_Datatype_mysql extends MDB2_Driver_Datatype_Common -{ - // }}} - // {{{ _getIntegerDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an integer type - * field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field - * properties are as follows: - * - * unsigned - * Boolean flag that indicates whether the field - * should be declared as unsigned integer if - * possible. - * - * default - * Integer value to be used as default for this - * field. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getIntegerDeclaration($name, $field) - { - if (array_key_exists('autoincrement', $field) && $field['autoincrement']) { - $autoinc = ' AUTO_INCREMENT PRIMARY KEY'; - $default = ''; - } else { - $autoinc = ''; - $default = array_key_exists('default', $field) ? ' DEFAULT '. - $this->quote($field['default'], 'integer') : ''; - } - - $unsigned = (array_key_exists('unsigned', $field) && $field['unsigned']) ? ' UNSIGNED' : ''; - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' INT'.$unsigned.$default.$notnull.$autoinc; - } - - // }}} - // {{{ _getCLOBDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an character - * large object type field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the - * properties of the field being declared as array - * indexes. Currently, the types of supported field - * properties are as follows: - * - * length - * Integer value that determines the maximum length - * of the large object field. If this argument is - * missing the field should be declared to have the - * longest length allowed by the DBMS. - * - * notnull - * Boolean flag that indicates whether this field - * is constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getCLOBDeclaration($name, $field) - { - if (array_key_exists('length', $field)) { - $length = $field['length']; - if ($length <= 255) { - $type = 'TINYTEXT'; - } else { - if ($length <= 65535) { - $type = 'TEXT'; - } else { - if ($length <= 16777215) { - $type = 'MEDIUMTEXT'; - } else { - $type = 'LONGTEXT'; - } - } - } - } else { - $type = 'LONGTEXT'; - } - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' '.$type.$notnull; - } - - // }}} - // {{{ _getBLOBDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an binary large - * object type field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field - * properties are as follows: - * - * length - * Integer value that determines the maximum length - * of the large object field. If this argument is - * missing the field should be declared to have the - * longest length allowed by the DBMS. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getBLOBDeclaration($name, $field) - { - if (array_key_exists('length', $field)) { - $length = $field['length']; - if ($length <= 255) { - $type = 'TINYBLOB'; - } else { - if ($length <= 65535) { - $type = 'BLOB'; - } else { - if ($length <= 16777215) { - $type = 'MEDIUMBLOB'; - } else { - $type = 'LONGBLOB'; - } - } - } - } else { - $type = 'LONGBLOB'; - } - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' '.$type.$notnull; - } - - // }}} - // {{{ _getDateDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an date type - * field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field properties - * are as follows: - * - * default - * Date value to be used as default for this field. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getDateDeclaration($name, $field) - { - $default = array_key_exists('default', $field) ? ' DEFAULT '. - $this->quote($field['default'], 'date') : ''; - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' DATE'.$default.$notnull; - } - - // }}} - // {{{ _getTimestampDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an timestamp - * type field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field - * properties are as follows: - * - * default - * Time stamp value to be used as default for this - * field. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getTimestampDeclaration($name, $field) - { - $default = array_key_exists('default', $field) ? ' DEFAULT '. - $this->quote($field['default'], 'timestamp') : ''; - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' DATETIME'.$default.$notnull; - } - - // }}} - // {{{ _getTimeDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an time type - * field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field - * properties are as follows: - * - * default - * Time value to be used as default for this field. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getTimeDeclaration($name, $field) - { - $default = array_key_exists('default', $field) ? ' DEFAULT '. - $this->quote($field['default'], 'time') : ''; - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' TIME'.$default.$notnull; - } - - // }}} - // {{{ _getFloatDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an float type - * field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field - * properties are as follows: - * - * default - * Integer value to be used as default for this - * field. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getFloatDeclaration($name, $field) - { - $type = 'DOUBLE'; - $default = array_key_exists('default', $field) ? ' DEFAULT '. - $this->quote($field['default'], 'float') : ''; - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' '.$type.$default.$notnull; - } - - // }}} - // {{{ _getDecimalDeclaration() - - /** - * Obtain DBMS specific SQL code portion needed to declare an decimal type - * field to be used in statements like CREATE TABLE. - * - * @param string $name name the field to be declared. - * @param string $field associative array with the name of the properties - * of the field being declared as array indexes. - * Currently, the types of supported field - * properties are as follows: - * - * default - * Integer value to be used as default for this - * field. - * - * notnull - * Boolean flag that indicates whether this field is - * constrained to not be set to null. - * @return string DBMS specific SQL code portion that should be used to - * declare the specified field. - * @access protected - */ - function _getDecimalDeclaration($name, $field) - { - $db =& $this->getDBInstance(); - if (PEAR::isError($db)) { - return $db; - } - - $type = 'DECIMAL(18,'.$db->options['decimal_places'].')'; - $default = array_key_exists('default', $field) ? ' DEFAULT '. - $this->quote($field['default'], 'decimal') : ''; - $notnull = (array_key_exists('notnull', $field) && $field['notnull']) ? ' NOT NULL' : ''; - return $name.' '.$type.$default.$notnull; - } - - // }}} - // {{{ _quoteBLOB() - - /** - * Convert a text value into a DBMS specific format that is suitable to - * compose query statements. - * - * @param $value - * @return string text string that represents the given argument value in - * a DBMS specific format. - * @access protected - */ - function _quoteBLOB($value) - { - $value = $this->_readFile($value); - return "'".addslashes($value)."'"; - } - - // }}} - // {{{ _quoteFloat() - - /** - * Convert a text value into a DBMS specific format that is suitable to - * compose query statements. - * - * @param string $value text string value that is intended to be converted. - * @return string text string that represents the given argument value in - * a DBMS specific format. - * @access protected - */ - function _quoteFloat($value) - { - return (float)$value; - } - - // }}} - // {{{ _quoteDecimal() - - /** - * Convert a text value into a DBMS specific format that is suitable to - * compose query statements. - * - * @param string $value text string value that is intended to be converted. - * @return string text string that represents the given argument value in - * a DBMS specific format. - * @access protected - */ - function _quoteDecimal($value) - { - $db =& $this->getDBInstance(); - if (PEAR::isError($db)) { - return $db; - } - - return $db->escape($value); - } - - // }}} - // {{{ mapNativeDatatype() - - /** - * Maps a native array description of a field to a MDB2 datatype and length - * - * @param array $field native field description - * @return array containing the various possible types and the length - * @access public - */ - function mapNativeDatatype($field) - { - $db_type = strtolower($field['type']); - $db_type = strtok($db_type, '(), '); - if ($db_type == 'national') { - $db_type = strtok('(), '); - } - $length = strtok('(), '); - $decimal = strtok('(), '); - $type = array(); - switch ($db_type) { - case 'tinyint': - case 'smallint': - case 'mediumint': - case 'int': - case 'integer': - case 'bigint': - $type[] = 'integer'; - if ($length == '1') { - $type[] = 'boolean'; - if (preg_match('/^[is|has]/', $field['field'])) { - $type = array_reverse($type); - } - } - break; - case 'char': - case 'varchar': - $type[] = 'text'; - if ($length == '1') { - $type[] = 'boolean'; - if (preg_match('/[is|has]/', $field['field'])) { - $type = array_reverse($type); - } - } - break; - case 'enum': - preg_match_all('/\'.+\'/U', $field['type'], $matches); - $length = 0; - if (is_array($matches)) { - foreach ($matches[0] as $value) { - $length = max($length, strlen($value)-2); - } - } - case 'set': - $type[] = 'text'; - $type[] = 'integer'; - break; - case 'date': - $type[] = 'date'; - $length = null; - break; - case 'datetime': - case 'timestamp': - $type[] = 'timestamp'; - $length = null; - break; - case 'time': - $type[] = 'time'; - $length = null; - break; - case 'float': - case 'double': - case 'real': - $type[] = 'float'; - break; - case 'decimal': - case 'numeric': - $type[] = 'decimal'; - break; - case 'tinytext': - case 'mediumtext': - case 'longtext': - case 'text': - if ($decimal == 'binary') { - $type[] = 'blob'; - } - $type[] = 'clob'; - $type[] = 'text'; - break; - case 'tinyblob': - case 'mediumblob': - case 'longblob': - case 'blob': - $type[] = 'blob'; - $type[] = 'text'; - $length = null; - break; - case 'year': - $type[] = 'integer'; - $type[] = 'date'; - $length = null; - break; - default: - $db =& $this->getDBInstance(); - if (PEAR::isError($db)) { - return $db; - } - - return $db->raiseError(MDB2_ERROR, null, null, - 'getTableFieldDefinition: unknown database attribute type'); - } - - return array($type, $length); - } -} - -?> -- cgit v1.2.3