fetchResult($sql, 'f', 'f'); if (count($drizzle_functions) > 0) { $ret = array_merge($ret, $drizzle_functions); sort($ret); } return $ret; case 'UUID': return array( 'UUID', ); case 'DATE': return array( 'CURRENT_DATE', 'CURRENT_TIME', 'DATE', 'FROM_DAYS', 'FROM_UNIXTIME', 'LAST_DAY', 'NOW', 'SYSDATE', //'TIME', // https://bugs.launchpad.net/drizzle/+bug/804571 'TIMESTAMP', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', 'YEAR', ); case 'NUMBER': return array( 'ABS', 'ACOS', 'ASCII', 'ASIN', 'ATAN', 'BIT_COUNT', 'CEILING', 'CHAR_LENGTH', 'CONNECTION_ID', 'COS', 'COT', 'CRC32', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'DEGREES', 'EXP', 'FLOOR', 'HOUR', 'LENGTH', 'LN', 'LOG', 'LOG2', 'LOG10', 'MICROSECOND', 'MINUTE', 'MONTH', 'OCT', 'ORD', 'PI', 'QUARTER', 'RADIANS', 'RAND', 'ROUND', 'SECOND', 'SIGN', 'SIN', 'SQRT', 'TAN', 'TO_DAYS', 'TIME_TO_SEC', 'UNCOMPRESSED_LENGTH', 'UNIX_TIMESTAMP', //'WEEK', // same as TIME 'WEEKDAY', 'WEEKOFYEAR', 'YEARWEEK', ); } return array(); } /** * Returns array of all attributes available. * * @return string[] * */ public function getAttributes() { return array( '', 'on update CURRENT_TIMESTAMP', ); } /** * Returns array of all column types available. * * @return string[] * */ public function getColumns() { $types_num = array( 'INTEGER', 'BIGINT', '-', 'DECIMAL', 'DOUBLE', '-', 'BOOLEAN', 'SERIAL', 'UUID', ); $types_date = array( 'DATE', 'DATETIME', 'TIMESTAMP', 'TIME', ); $types_string = array( 'VARCHAR', 'TEXT', '-', 'VARBINARY', 'BLOB', '-', 'ENUM', ); if (PMA_MYSQL_INT_VERSION >= 70132) { $types_string[] = '-'; $types_string[] = 'IPV6'; } $ret = parent::getColumns(); // numeric $ret[_pgettext('numeric types', 'Numeric')] = $types_num; // Date/Time $ret[_pgettext('date and time types', 'Date and time')] = $types_date; // Text $ret[_pgettext('string types', 'String')] = $types_string; return $ret; } /** * Returns an array of integer types * * @return string[] integer types */ public function getIntegerTypes() { return array('integer', 'bigint'); } /** * Returns the min and max values of a given integer type * * @param string $type integer type * @param boolean $signed whether signed (ignored for Drizzle) * * @return string[] min and max values */ public function getIntegerRange($type, $signed = true) { static $min_max_data = array( 'integer' => array('-2147483648', '2147483647'), 'bigint' => array('-9223372036854775808', '9223372036854775807') ); return isset($min_max_data[$type]) ? $min_max_data[$type] : array('', ''); } }