3 * Column types and functions supported by MySQL
8 // VARCHAR, TINYINT, TEXT and DATE are listed first, based on estimated popularity
9 $cfg['ColumnTypes'] = !empty($cfg['ColumnTypes']) ?
$cfg['ColumnTypes'] : array(
31 'DATE and TIME' => array(
48 $cfg['AttributeTypes'] = !empty($cfg['AttributeTypes']) ?
$cfg['AttributeTypes'] : array(
50 'on update CURRENT_TIMESTAMP',
53 if ($cfg['ShowFunctionFields']) {
54 $cfg['RestrictColumnTypes'] = !empty($cfg['RestrictColumnTypes']) ?
$cfg['RestrictColumnTypes'] : array(
55 'INTEGER' => 'FUNC_NUMBER',
56 'BIGINT' => 'FUNC_NUMBER',
57 'DECIMAL' => 'FUNC_NUMBER',
58 'DOUBLE' => 'FUNC_NUMBER',
59 'BOOLEAN' => 'FUNC_NUMBER',
60 'SERIAL' => 'FUNC_NUMBER',
62 'DATE' => 'FUNC_DATE',
63 'DATETIME' => 'FUNC_DATE',
64 'TIMESTAMP' => 'FUNC_DATE',
65 'TIME' => 'FUNC_DATE',
67 'VARCHAR' => 'FUNC_CHAR',
68 'TEXT' => 'FUNC_CHAR',
69 'VARBINARY' => 'FUNC_CHAR',
70 'BLOB' => 'FUNC_CHAR',
71 'UUID' => 'FUNC_UUID',
75 $restrict_functions = array(
102 'FUNC_UUID' => array(
106 'FUNC_DATE' => array(
115 //'TIME', // https://bugs.launchpad.net/drizzle/+bug/804571
123 'FUNC_NUMBER' => array(
165 'UNCOMPRESSED_LENGTH',
167 //'WEEK', // same as TIME
173 'FUNC_SPATIAL' => array(
194 $cfg_default_restrict_funcs = empty($cfg['RestrictFunctions']);
195 if ($cfg_default_restrict_funcs) {
196 $cfg['RestrictFunctions'] = $restrict_functions;
199 if (empty($cfg['Functions'])) {
200 // build a list of functions based on $restrict_functions
201 $cfg['Functions'] = array();
202 foreach ($restrict_functions as $cat => $functions) {
203 $cfg['Functions'] = array_merge($cfg['Functions'], $functions);
206 // check for some functions known to be in modules
208 'MYSQL_PASSWORD' => 'FUNC_CHAR',
209 'ROT13' => 'FUNC_CHAR',
212 $sql = "SELECT upper(plugin_name) f
213 FROM data_dictionary.plugins
214 WHERE plugin_name IN ('" . implode("','", array_keys($functions)) . "')
215 AND plugin_type = 'Function'
217 $drizzle_functions = PMA_DBI_fetch_result($sql, 'f', 'f');
218 $cfg['Functions'] = array_merge($cfg['Functions'], $drizzle_functions);
219 if ($cfg_default_restrict_funcs) {
220 foreach ($drizzle_functions as $function) {
221 $category = $functions[$function];
222 $cfg['RestrictFunctions'][$category][] = $function;
224 foreach ($cfg['RestrictFunctions'] as &$v) {
230 sort($cfg['Functions']);
232 unset($restrict_functions);