Translation update done using Pootle.
[phpmyadmin.git] / libraries / data_drizzle.inc.php
blob7b06ee075a405c5cffd3ba0e69b9aff731687dea
1 <?php
2 /**
3 * Column types and functions supported by MySQL
5 * @package PhpMyAdmin
6 */
8 // VARCHAR, TINYINT, TEXT and DATE are listed first, based on estimated popularity
9 $cfg['ColumnTypes'] = !empty($cfg['ColumnTypes']) ? $cfg['ColumnTypes'] : array(
10 // most used
11 'INTEGER',
12 'VARCHAR',
13 'TEXT',
14 'DATE',
16 // numeric
17 'NUMERIC' => array(
18 'INTEGER',
19 'BIGINT',
20 '-',
21 'DECIMAL',
22 'DOUBLE',
23 '-',
24 'BOOLEAN',
25 'SERIAL',
26 'UUID',
30 // Date/Time
31 'DATE and TIME' => array(
32 'DATE',
33 'DATETIME',
34 'TIMESTAMP',
35 'TIME',
38 // Text
39 'STRING' => array(
40 'VARCHAR',
41 'TEXT',
42 'VARBINARY',
43 'BLOB',
44 'ENUM',
48 $cfg['AttributeTypes'] = !empty($cfg['AttributeTypes']) ? $cfg['AttributeTypes'] : array(
49 '',
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',
72 'ENUM' => '',
75 $restrict_functions = array(
76 'FUNC_CHAR' => array(
77 'BIN',
78 'CHAR',
79 'CURRENT_USER',
80 'COMPRESS',
81 'DATABASE',
82 'DAYNAME',
83 'HEX',
84 'LOAD_FILE',
85 'LOWER',
86 'LTRIM',
87 'MD5',
88 'MONTHNAME',
89 'QUOTE',
90 'REVERSE',
91 'RTRIM',
92 'SPACE',
93 'TRIM',
94 'UNCOMPRESS',
95 'UNHEX',
96 'UPPER',
97 'USER',
98 'UUID',
99 'VERSION',
102 'FUNC_UUID' => array(
103 'UUID',
106 'FUNC_DATE' => array(
107 'CURRENT_DATE',
108 'CURRENT_TIME',
109 'DATE',
110 'FROM_DAYS',
111 'FROM_UNIXTIME',
112 'LAST_DAY',
113 'NOW',
114 'SYSDATE',
115 //'TIME', // https://bugs.launchpad.net/drizzle/+bug/804571
116 'TIMESTAMP',
117 'UTC_DATE',
118 'UTC_TIME',
119 'UTC_TIMESTAMP',
120 'YEAR',
123 'FUNC_NUMBER' => array(
124 'ABS',
125 'ACOS',
126 'ASCII',
127 'ASIN',
128 'ATAN',
129 'BIT_COUNT',
130 'CEILING',
131 'CHAR_LENGTH',
132 'CONNECTION_ID',
133 'COS',
134 'COT',
135 'CRC32',
136 'DAYOFMONTH',
137 'DAYOFWEEK',
138 'DAYOFYEAR',
139 'DEGREES',
140 'EXP',
141 'FLOOR',
142 'HOUR',
143 'LENGTH',
144 'LN',
145 'LOG',
146 'LOG2',
147 'LOG10',
148 'MICROSECOND',
149 'MINUTE',
150 'MONTH',
151 'OCT',
152 'ORD',
153 'PI',
154 'QUARTER',
155 'RADIANS',
156 'RAND',
157 'ROUND',
158 'SECOND',
159 'SIGN',
160 'SIN',
161 'SQRT',
162 'TAN',
163 'TO_DAYS',
164 'TIME_TO_SEC',
165 'UNCOMPRESSED_LENGTH',
166 'UNIX_TIMESTAMP',
167 //'WEEK', // same as TIME
168 'WEEKDAY',
169 'WEEKOFYEAR',
170 'YEARWEEK',
173 'FUNC_SPATIAL' => array(
174 'GeomFromText',
175 'GeomFromWKB',
177 'GeomCollFromText',
178 'LineFromText',
179 'MLineFromText',
180 'PointFromText',
181 'MPointFromText',
182 'PolyFromText',
183 'MPolyFromText',
185 'GeomCollFromWKB',
186 'LineFromWKB',
187 'MLineFromWKB',
188 'PointFromWKB',
189 'MPointFromWKB',
190 'PolyFromWKB',
191 'MPolyFromWKB',
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
207 $functions = array(
208 'MYSQL_PASSWORD' => 'FUNC_CHAR',
209 'ROT13' => 'FUNC_CHAR',
211 // add new functions
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'
216 AND is_active";
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) {
225 sort($v);
227 unset($v);
230 sort($cfg['Functions']);
232 unset($restrict_functions);
233 } // end if