2 /* vim: set expandtab sw=4 ts=4 sts=4: */
4 * SQL Parser Matching Data
6 * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
7 * http://www.orbis-terrarum.net/?l=people.robbat2
9 * This data is used by the SQL Parser to recognize keywords
11 * It has been extracted from the lex.h file in the MySQL BK tree
12 * (around 4.0.2) as well as the MySQL documentation.
14 * It's easier to use only uppercase for proper sorting. In case of
15 * doubt, use the test case to verify.
19 if (! defined('PHPMYADMIN')) {
23 if (! isset($GLOBALS['sql_delimiter'])) {
24 $GLOBALS['sql_delimiter'] = ';';
28 * @global array MySQL function names
30 $PMA_SQPdata_function_name = array (
37 'AREA', // Area() polygon-property-functions.html
38 'ASBINARY', // AsBinary()
45 'BDMPOLYFROMTEXT', // BdMPolyFromText()
46 'BDMPOLYFROMWKB', // BdMPolyFromWKB()
47 'BDPOLYFROMTEXT', // BdPolyFromText()
48 'BDPOLYFROMWKB', // BdPolyFromWKB()
55 'BIT_XOR', // group-by-functions.html
56 'BOUNDARY', // Boundary() general-geometry-property-functions.html
61 'CENTROID', // Centroid() multipolygon-property-functions.html
62 'CHAR', // string-functions.html
64 'CHARSET', // information-functions.html
67 'COERCIBILITY', // information-functions.html
68 'COLLATION', // information-functions.html
69 'COMPRESS', // string-functions.html
73 'CONTAINS', // Contains()
77 'CONVEXHULL', // ConvexHull()
81 'CRC32', // mathematical-functions.html
82 'CROSSES', // Crosses()
90 'DATE', // date-and-time-functions.html
91 'DATEDIFF', // date-and-time-functions.html
102 'DEFAULT', // miscellaneous-functions.html
106 'DIFFERENCE', // Difference()
107 'DIMENSION', // Dimension() general-geometry-property-functions.html
108 'DISJOINT', // Disjoint()
109 'DISTANCE', // Distance()
113 'ENDPOINT', // EndPoint() linestring-property-functions.html
114 'ENVELOPE', // Envelope() general-geometry-property-functions.html
115 'EQUALS', // Equals()
118 'EXTERIORRING', // ExteriorRing() polygon-property-functions.html
120 'EXTRACTVALUE', // ExtractValue() xml-functions.html
128 'GEOMCOLLFROMTEXT', // GeomCollFromText()
129 'GEOMCOLLFROMWKB', // GeomCollFromWKB()
130 'GEOMETRYCOLLECTION', // GeometryCollection()
131 'GEOMETRYCOLLECTIONFROMTEXT', // GeometryCollectionFromText()
132 'GEOMETRYCOLLECTIONFROMWKB', // GeometryCollectionFromWKB()
133 'GEOMETRYFROMTEXT', // GeometryFromText()
134 'GEOMETRYFROMWKB', // GeometryFromWKB()
135 'GEOMETRYN', // GeometryN() geometrycollection-property-functions.html
136 'GEOMETRYTYPE', // GeometryType() general-geometry-property-functions.html
137 'GEOMFROMTEXT', // GeomFromText()
138 'GEOMFROMWKB', // GeomFromWKB()
141 'GLENGTH', // GLength() linestring-property-functions.html
144 'GROUP_UNIQUE_USERS',
147 'IF', //control-flow-functions.html
151 'INSERT', // string-functions.html
153 'INTERIORRINGN', // InteriorRingN() polygon-property-functions.html
154 'INTERSECTION', // Intersection()
155 'INTERSECTS', // Intersects()
157 'ISCLOSED', // IsClosed() multilinestring-property-functions.html
158 'ISEMPTY', // IsEmpty() general-geometry-property-functions.html
160 'ISRING', // IsRing() linestring-property-functions.html
161 'ISSIMPLE', // IsSimple() general-geometry-property-functions.html
163 'IS_USED_LOCK', // miscellaneous-functions.html
170 'LINEFROMTEXT', // LineFromText()
171 'LINEFROMWKB', // LineFromWKB()
172 'LINESTRING', // LineString()
173 'LINESTRINGFROMTEXT', // LineStringFromText()
174 'LINESTRINGFROMWKB', // LineStringFromWKB()
191 'MBRCONTAINS', // MBRContains()
192 'MBRDISJOINT', // MBRDisjoint()
193 'MBREQUAL', // MBREqual()
194 'MBRINTERSECTS', // MBRIntersects()
195 'MBROVERLAPS', // MBROverlaps()
196 'MBRTOUCHES', // MBRTouches()
197 'MBRWITHIN', // MBRWithin()
203 'MLINEFROMTEXT', // MLineFromText()
204 'MLINEFROMWKB', // MLineFromWKB()
208 'MPOINTFROMTEXT', // MPointFromText()
209 'MPOINTFROMWKB', // MPointFromWKB()
210 'MPOLYFROMTEXT', // MPolyFromText()
211 'MPOLYFROMWKB', // MPolyFromWKB()
212 'MULTILINESTRING', // MultiLineString()
213 'MULTILINESTRINGFROMTEXT', // MultiLineStringFromText()
214 'MULTILINESTRINGFROMWKB', // MultiLineStringFromWKB()
215 'MULTIPOINT', // MultiPoint()
216 'MULTIPOINTFROMTEXT', // MultiPointFromText()
217 'MULTIPOINTFROMWKB', // MultiPointFromWKB()
218 'MULTIPOLYGON', // MultiPolygon()
219 'MULTIPOLYGONFROMTEXT', // MultiPolygonFromText()
220 'MULTIPOLYGONFROMWKB', // MultiPolygonFromWKB()
221 'NAME_CONST', // NAME_CONST()
224 'NUMGEOMETRIES', // NumGeometries() geometrycollection-property-functions.html
225 'NUMINTERIORRINGS', // NumInteriorRings() polygon-property-functions.html
226 'NUMPOINTS', // NumPoints() linestring-property-functions.html
231 'OVERLAPS', // Overlaps()
237 'POINTFROMTEXT', // PointFromText()
238 'POINTFROMWKB', // PointFromWKB()
239 'POINTN', // PointN() inestring-property-functions.html
240 'POINTONSURFACE', // PointOnSurface() multipolygon-property-functions.html
241 'POLYFROMTEXT', // PolyFromText()
242 'POLYFROMWKB', // PolyFromWKB()
243 'POLYGON', // Polygon()
244 'POLYGONFROMTEXT', // PolygonFromText()
245 'POLYGONFROMWKB', // PolygonFromWKB()
253 'RELATED', // Related()
256 'REPLACE', // string-functions.html
260 'ROW_COUNT', // information-functions.html
263 'SCHEMA', // information-functions.html
271 'SLEEP', // miscellaneous-functions.html
275 'SRID', // general-geometry-property-functions.html
276 'STARTPOINT', // StartPoint() linestring-property-functions.html
279 'STDDEV_POP', // group-by-functions.html
280 'STDDEV_SAMP', // group-by-functions.html
289 'SYMDIFFERENCE', // SymDifference()
300 'TOUCHES', // Touches()
303 'TRUNCATE', // mathematical-functions.html
305 'UNCOMPRESS', // string-functions.html
306 'UNCOMPRESSED_LENGTH', // string-functions.html
307 'UNHEX', // string-functions.html
310 'UPDATEXML', // UpdateXML() xml-functions.html
316 'UUID', // miscellaneous-functions.html
317 'VARIANCE', // group-by-functions.html
318 'VAR_POP', // group-by-functions.html
319 'VAR_SAMP', // group-by-functions.html
324 'WITHIN', // Within()
325 'X', // point-property-functions.html
326 'Y', // point-property-functions.html
332 * @global array MySQL attributes
334 $PMA_SQPdata_column_attrib = array (
339 'BERKELEYDB', // Engine alias BDB
341 'BLACKHOLE', // Engine
345 'FEDERATED', // Engine
347 'INNOBASE', // Engine alias InnoDB
348 'INNODB', // Engine InnoDB
351 'MEMORY', // Engine alias HEAP, but preferred
353 'MRG_ISAM', // Engine
354 'MRG_MYISAM', // Engine alias MERGE
355 'MYISAM', // Engine MyISAM
357 'NDB', // Engine alias NDBCLUSTER
358 'NDBCLUSTER', // Engine
368 * words that are reserved by MySQL and may not be used as identifiers without quotes
370 * @see http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
372 * @global array MySQL reserved words
374 $PMA_SQPdata_reserved_word = array (
468 'GEMINI_SPIN_RETRIES',
514 'MASTER_CONNECT_RETRY',
522 'MAX_CONNECTIONS_PER_HOUR',
523 'MAX_QUERIES_PER_HOUR',
525 'MAX_UPDATES_PER_HOUR',
526 'MAX_USER_CONNECTIONS',
539 // 'NO' is not allowed in SQL-99 but is allowed in MySQL
554 'PAGE', // 5.1-maria ?
555 'PAGE_CHECKSUM', // 5.1
606 'SOUNDS', // string-functions.html
614 'SQL_CALC_FOUND_ROWS',
618 'SQL_LOW_PRIORITY_UPDATES',
621 'SQL_QUOTE_SHOW_CREATE',
624 'SQL_SLAVE_SKIP_COUNTER',
643 'TRANSACTIONAL', // 5.1 ?
668 * words forbidden to be used as column or table name wihtout quotes
669 * as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
671 * @global array MySQL forbidden words
673 $PMA_SQPdata_forbidden_word = array (
826 'GEOMETRYCOLLECTION',
902 'MASTER_CONNECT_RETRY',
917 'MAX_CONNECTIONS_PER_HOUR',
918 'MAX_QUERIES_PER_HOUR',
920 'MAX_UPDATES_PER_HOUR',
921 'MAX_USER_CONNECTIONS',
931 'MINUTE_MICROSECOND',
955 'NO_WRITE_TO_BINLOG',
1036 'SECOND_MICROSECOND',
1063 'SQL_BUFFER_RESULT',
1065 'SQL_CALC_FOUND_ROWS',
1070 'SQL_TSI_FRAC_SECOND',
1159 * the MySQL column/data types
1161 * @see http://dev.mysql.com/doc/refman/5.1/en/data-types.html
1162 * @see http://dev.mysql.com/doc/refman/5.1/en/mysql-spatial-datatypes.html
1164 * @global array MySQL column types
1166 $PMA_SQPdata_column_type = array (
1172 'BOOLEAN', // numeric-type-overview.html
1184 'GEOMETRY', // spatial
1185 'GEOMETRYCOLLECTION', // spatial
1193 'LINESTRING', // spatial
1201 'MULTILINESTRING', // spatial
1202 'MULTIPOINT', // spatial
1203 'MULTIPOLYGON', // spatial
1207 'POLYGON', // spatial
1209 'SERIAL', // alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
1224 * Documentation links for operators.
1226 $PMA_SQPdata_operators_docs = array(
1227 '!=' => array('link' => 'comparison-operators','anchor' => 'operator_not-equal'),
1228 '<>' => array('link' => 'comparison-operators','anchor' => 'operator_not-equal'),
1229 '!' => array('link' => 'logical-operators','anchor' => 'operator_not'),
1230 '||' => array('link' => 'logical-operators','anchor' => 'operator_or'),
1231 '+' => array('link' => 'arithmetic-functions','anchor' => 'operator_plus'),
1232 '>>' => array('link' => 'bit-functions','anchor' => 'operator_right-shift'),
1233 '-' => array('link' => 'arithmetic-functions','anchor' => 'operator_minus'),
1234 '*' => array('link' => 'arithmetic-functions','anchor' => 'operator_times'),
1235 '&&' => array('link' => 'logical-operators','anchor' => 'operator_and'),
1236 '&' => array('link' => 'bit-functions','anchor' => 'operator_bitwise-and'),
1237 '~' => array('link' => 'bit-functions','anchor' => 'operator_bitwise-invert'),
1238 '|' => array('link' => 'bit-functions','anchor' => 'operator_bitwise-or'),
1239 '^' => array('link' => 'bit-functions','anchor' => 'operator_bitwise-xor'),
1240 '=' => array('link' => 'assignment-operators','anchor' => 'operator_assign-equal'),
1241 ':=' => array('link' => 'assignment-operators','anchor' => 'operator_assign-value'),
1242 '/' => array('link' => 'arithmetic-functions','anchor' => 'operator_divide'),
1243 '<=>' => array('link' => 'comparison-operators','anchor' => 'operator_equal-to'),
1244 '=' => array('link' => 'comparison-operators','anchor' => 'operator_equal'),
1245 '>=' => array('link' => 'comparison-operators','anchor' => 'operator_greater-than-or-equal'),
1246 '>' => array('link' => 'comparison-operators','anchor' => 'operator_greater-than'),
1247 '<<' => array('link' => 'bit-functions','anchor' => 'operator_left-shift'),
1248 '<=' => array('link' => 'comparison-operators','anchor' => 'operator_less-than-or-equal'),
1249 '<' => array('link' => 'comparison-operators','anchor' => 'operator_less-than'),
1250 '%' => array('link' => 'arithmetic-functions','anchor' => 'operator_mod')
1254 * Documentation links for functions.
1256 $PMA_SQPdata_functions_docs = array(
1257 'ABS' => array('link' => 'mathematical-functions','anchor' => 'function_abs'),
1258 'ACOS' => array('link' => 'mathematical-functions','anchor' => 'function_acos'),
1259 'ADDDATE' => array('link' => 'date-and-time-functions','anchor' => 'function_adddate'),
1260 'ADDTIME' => array('link' => 'date-and-time-functions','anchor' => 'function_addtime'),
1261 'AES_DECRYPT' => array('link' => 'encryption-functions','anchor' => 'function_aes_decrypt'),
1262 'AES_ENCRYPT' => array('link' => 'encryption-functions','anchor' => 'function_aes_encrypt'),
1263 'AND' => array('link' => 'logical-operators','anchor' => 'operator_and'),
1264 'ASCII' => array('link' => 'string-functions','anchor' => 'function_ascii'),
1265 'ASIN' => array('link' => 'mathematical-functions','anchor' => 'function_asin'),
1266 'ATAN2' => array('link' => 'mathematical-functions','anchor' => 'function_atan2'),
1267 'ATAN' => array('link' => 'mathematical-functions','anchor' => 'function_atan2'),
1268 'ATAN' => array('link' => 'mathematical-functions','anchor' => 'function_atan'),
1269 'AVG' => array('link' => 'group-by-functions','anchor' => 'function_avg'),
1270 'BENCHMARK' => array('link' => 'information-functions','anchor' => 'function_benchmark'),
1271 'BIN' => array('link' => 'string-functions','anchor' => 'function_bin'),
1272 'BINARY' => array('link' => 'cast-functions','anchor' => 'operator_binary'),
1273 'BIT_AND' => array('link' => 'group-by-functions','anchor' => 'function_bit_and'),
1274 'BIT_COUNT' => array('link' => 'bit-functions','anchor' => 'function_bit_count'),
1275 'BIT_LENGTH' => array('link' => 'string-functions','anchor' => 'function_bit_length'),
1276 'BIT_OR' => array('link' => 'group-by-functions','anchor' => 'function_bit_or'),
1277 'BIT_XOR' => array('link' => 'group-by-functions','anchor' => 'function_bit_xor'),
1278 'CASE' => array('link' => 'control-flow-functions','anchor' => 'operator_case'),
1279 'CAST' => array('link' => 'cast-functions','anchor' => 'function_cast'),
1280 'CEIL' => array('link' => 'mathematical-functions','anchor' => 'function_ceil'),
1281 'CEILING' => array('link' => 'mathematical-functions','anchor' => 'function_ceiling'),
1282 'CHAR_LENGTH' => array('link' => 'string-functions','anchor' => 'function_char_length'),
1283 'CHAR' => array('link' => 'string-functions','anchor' => 'function_char'),
1284 'CHARACTER_LENGTH' => array('link' => 'string-functions','anchor' => 'function_character_length'),
1285 'CHARSET' => array('link' => 'information-functions','anchor' => 'function_charset'),
1286 'COALESCE' => array('link' => 'comparison-operators','anchor' => 'function_coalesce'),
1287 'COERCIBILITY' => array('link' => 'information-functions','anchor' => 'function_coercibility'),
1288 'COLLATION' => array('link' => 'information-functions','anchor' => 'function_collation'),
1289 'COMPRESS' => array('link' => 'encryption-functions','anchor' => 'function_compress'),
1290 'CONCAT_WS' => array('link' => 'string-functions','anchor' => 'function_concat_ws'),
1291 'CONCAT' => array('link' => 'string-functions','anchor' => 'function_concat'),
1292 'CONNECTION_ID' => array('link' => 'information-functions','anchor' => 'function_connection_id'),
1293 'CONV' => array('link' => 'mathematical-functions','anchor' => 'function_conv'),
1294 'CONVERT_TZ' => array('link' => 'date-and-time-functions','anchor' => 'function_convert_tz'),
1295 'Convert' => array('link' => 'cast-functions','anchor' => 'function_convert'),
1296 'COS' => array('link' => 'mathematical-functions','anchor' => 'function_cos'),
1297 'COT' => array('link' => 'mathematical-functions','anchor' => 'function_cot'),
1298 'COUNT' => array('link' => 'group-by-functions','anchor' => 'function_count'),
1299 'CRC32' => array('link' => 'mathematical-functions','anchor' => 'function_crc32'),
1300 'CURDATE' => array('link' => 'date-and-time-functions','anchor' => 'function_curdate'),
1301 'CURRENT_DATE' => array('link' => 'date-and-time-functions','anchor' => 'function_current_date'),
1302 'CURRENT_TIME' => array('link' => 'date-and-time-functions','anchor' => 'function_current_time'),
1303 'CURRENT_TIMESTAMP' => array('link' => 'date-and-time-functions','anchor' => 'function_current_timestamp'),
1304 'CURRENT_USER' => array('link' => 'information-functions','anchor' => 'function_current_user'),
1305 'CURTIME' => array('link' => 'date-and-time-functions','anchor' => 'function_curtime'),
1306 'DATABASE' => array('link' => 'information-functions','anchor' => 'function_database'),
1307 'DATE_ADD' => array('link' => 'date-and-time-functions','anchor' => 'function_date_add'),
1308 'DATE_FORMAT' => array('link' => 'date-and-time-functions','anchor' => 'function_date_format'),
1309 'DATE_SUB' => array('link' => 'date-and-time-functions','anchor' => 'function_date_sub'),
1310 'DATE' => array('link' => 'date-and-time-functions','anchor' => 'function_date'),
1311 'DATEDIFF' => array('link' => 'date-and-time-functions','anchor' => 'function_datediff'),
1312 'DAY' => array('link' => 'date-and-time-functions','anchor' => 'function_day'),
1313 'DAYNAME' => array('link' => 'date-and-time-functions','anchor' => 'function_dayname'),
1314 'DAYOFMONTH' => array('link' => 'date-and-time-functions','anchor' => 'function_dayofmonth'),
1315 'DAYOFWEEK' => array('link' => 'date-and-time-functions','anchor' => 'function_dayofweek'),
1316 'DAYOFYEAR' => array('link' => 'date-and-time-functions','anchor' => 'function_dayofyear'),
1317 'DECLARE' => array('link' => 'declare', 'anchor' => 'declare'),
1318 'DECODE' => array('link' => 'encryption-functions','anchor' => 'function_decode'),
1319 'DEFAULT' => array('link' => 'miscellaneous-functions','anchor' => 'function_default'),
1320 'DEGREES' => array('link' => 'mathematical-functions','anchor' => 'function_degrees'),
1321 'DES_DECRYPT' => array('link' => 'encryption-functions','anchor' => 'function_des_decrypt'),
1322 'DES_ENCRYPT' => array('link' => 'encryption-functions','anchor' => 'function_des_encrypt'),
1323 'DIV' => array('link' => 'arithmetic-functions','anchor' => 'operator_div'),
1324 'ELT' => array('link' => 'string-functions','anchor' => 'function_elt'),
1325 'ENCODE' => array('link' => 'encryption-functions','anchor' => 'function_encode'),
1326 'ENCRYPT' => array('link' => 'encryption-functions','anchor' => 'function_encrypt'),
1327 'EXP' => array('link' => 'mathematical-functions','anchor' => 'function_exp'),
1328 'EXPORT_SET' => array('link' => 'string-functions','anchor' => 'function_export_set'),
1329 'EXTRACT' => array('link' => 'date-and-time-functions','anchor' => 'function_extract'),
1330 'ExtractValue' => array('link' => 'xml-functions','anchor' => 'function_extractvalue'),
1331 'FIELD' => array('link' => 'string-functions','anchor' => 'function_field'),
1332 'FIND_IN_SET' => array('link' => 'string-functions','anchor' => 'function_find_in_set'),
1333 'FLOOR' => array('link' => 'mathematical-functions','anchor' => 'function_floor'),
1334 'FORMAT' => array('link' => 'string-functions','anchor' => 'function_format'),
1335 'FOUND_ROWS' => array('link' => 'information-functions','anchor' => 'function_found_rows'),
1336 'FROM_DAYS' => array('link' => 'date-and-time-functions','anchor' => 'function_from_days'),
1337 'FROM_UNIXTIME' => array('link' => 'date-and-time-functions','anchor' => 'function_from_unixtime'),
1338 'GET_FORMAT' => array('link' => 'date-and-time-functions','anchor' => 'function_get_format'),
1339 'GET_LOCK' => array('link' => 'miscellaneous-functions','anchor' => 'function_get_lock'),
1340 'GREATEST' => array('link' => 'comparison-operators','anchor' => 'function_greatest'),
1341 'GROUP_CONCAT' => array('link' => 'group-by-functions','anchor' => 'function_group_concat'),
1342 'HEX' => array('link' => 'string-functions','anchor' => 'function_hex'),
1343 'HOUR' => array('link' => 'date-and-time-functions','anchor' => 'function_hour'),
1344 'IF' => array('link' => 'control-flow-functions','anchor' => 'function_if'),
1345 'IFNULL' => array('link' => 'control-flow-functions','anchor' => 'function_ifnull'),
1346 'IN' => array('link' => 'comparison-operators','anchor' => 'function_in'),
1347 'INET_ATON' => array('link' => 'miscellaneous-functions','anchor' => 'function_inet_aton'),
1348 'INET_NTOA' => array('link' => 'miscellaneous-functions','anchor' => 'function_inet_ntoa'),
1349 'INSERT' => array('link' => 'string-functions','anchor' => 'function_insert'),
1350 'INSTR' => array('link' => 'string-functions','anchor' => 'function_instr'),
1351 'INTERVAL' => array('link' => 'comparison-operators','anchor' => 'function_interval'),
1352 'IS_FREE_LOCK' => array('link' => 'miscellaneous-functions','anchor' => 'function_is_free_lock'),
1353 'IS_USED_LOCK' => array('link' => 'miscellaneous-functions','anchor' => 'function_is_used_lock'),
1354 'IS' => array('link' => 'comparison-operators','anchor' => 'operator_is'),
1355 'ISNULL' => array('link' => 'comparison-operators','anchor' => 'function_isnull'),
1356 'LAST_DAY' => array('link' => 'date-and-time-functions','anchor' => 'function_last_day'),
1357 'LAST_INSERT_ID' => array('link' => 'information-functions','anchor' => 'function_last_insert_id'),
1358 'LCASE' => array('link' => 'string-functions','anchor' => 'function_lcase'),
1359 'LEAST' => array('link' => 'comparison-operators','anchor' => 'function_least'),
1360 'LEFT' => array('link' => 'string-functions','anchor' => 'function_left'),
1361 'LENGTH' => array('link' => 'string-functions','anchor' => 'function_length'),
1362 'LIKE' => array('link' => 'string-comparison-functions','anchor' => 'operator_like'),
1363 'LN' => array('link' => 'mathematical-functions','anchor' => 'function_ln'),
1364 'LOAD_FILE' => array('link' => 'string-functions','anchor' => 'function_load_file'),
1365 'LOCALTIME' => array('link' => 'date-and-time-functions','anchor' => 'function_localtime'),
1366 'LOCALTIMESTAMP' => array('link' => 'date-and-time-functions','anchor' => 'function_localtimestamp'),
1367 'LOCATE' => array('link' => 'string-functions','anchor' => 'function_locate'),
1368 'LOG10' => array('link' => 'mathematical-functions','anchor' => 'function_log10'),
1369 'LOG2' => array('link' => 'mathematical-functions','anchor' => 'function_log2'),
1370 'LOG' => array('link' => 'mathematical-functions','anchor' => 'function_log'),
1371 'LOWER' => array('link' => 'string-functions','anchor' => 'function_lower'),
1372 'LPAD' => array('link' => 'string-functions','anchor' => 'function_lpad'),
1373 'LTRIM' => array('link' => 'string-functions','anchor' => 'function_ltrim'),
1374 'MAKE_SET' => array('link' => 'string-functions','anchor' => 'function_make_set'),
1375 'MAKEDATE' => array('link' => 'date-and-time-functions','anchor' => 'function_makedate'),
1376 'MAKETIME' => array('link' => 'date-and-time-functions','anchor' => 'function_maketime'),
1377 'MASTER_POS_WAIT' => array('link' => 'miscellaneous-functions','anchor' => 'function_master_pos_wait'),
1378 'MATCH' => array('link' => 'fulltext-search','anchor' => 'function_match'),
1379 'MAX' => array('link' => 'group-by-functions','anchor' => 'function_max'),
1380 'MD5' => array('link' => 'encryption-functions','anchor' => 'function_md5'),
1381 'MICROSECOND' => array('link' => 'date-and-time-functions','anchor' => 'function_microsecond'),
1382 'MID' => array('link' => 'string-functions','anchor' => 'function_mid'),
1383 'MIN' => array('link' => 'group-by-functions','anchor' => 'function_min'),
1384 'MINUTE' => array('link' => 'date-and-time-functions','anchor' => 'function_minute'),
1385 'MOD' => array('link' => 'mathematical-functions','anchor' => 'function_mod'),
1386 'MONTH' => array('link' => 'date-and-time-functions','anchor' => 'function_month'),
1387 'MONTHNAME' => array('link' => 'date-and-time-functions','anchor' => 'function_monthname'),
1388 'NAME_CONST' => array('link' => 'miscellaneous-functions','anchor' => 'function_name_const'),
1389 'NOT' => array('link' => 'logical-operators','anchor' => 'operator_not'),
1390 'NOW' => array('link' => 'date-and-time-functions','anchor' => 'function_now'),
1391 'NULLIF' => array('link' => 'control-flow-functions','anchor' => 'function_nullif'),
1392 'OCT' => array('link' => 'mathematical-functions','anchor' => 'function_oct'),
1393 'OCTET_LENGTH' => array('link' => 'string-functions','anchor' => 'function_octet_length'),
1394 'OLD_PASSWORD' => array('link' => 'encryption-functions','anchor' => 'function_old_password'),
1395 'OR' => array('link' => 'logical-operators','anchor' => 'operator_or'),
1396 'ORD' => array('link' => 'string-functions','anchor' => 'function_ord'),
1397 'PASSWORD' => array('link' => 'encryption-functions','anchor' => 'function_password'),
1398 'PERIOD_ADD' => array('link' => 'date-and-time-functions','anchor' => 'function_period_add'),
1399 'PERIOD_DIFF' => array('link' => 'date-and-time-functions','anchor' => 'function_period_diff'),
1400 'PI' => array('link' => 'mathematical-functions','anchor' => 'function_pi'),
1401 'POSITION' => array('link' => 'string-functions','anchor' => 'function_position'),
1402 'POW' => array('link' => 'mathematical-functions','anchor' => 'function_pow'),
1403 'POWER' => array('link' => 'mathematical-functions','anchor' => 'function_power'),
1404 'QUARTER' => array('link' => 'date-and-time-functions','anchor' => 'function_quarter'),
1405 'QUOTE' => array('link' => 'string-functions','anchor' => 'function_quote'),
1406 'RADIANS' => array('link' => 'mathematical-functions','anchor' => 'function_radians'),
1407 'RAND' => array('link' => 'mathematical-functions','anchor' => 'function_rand'),
1408 'REGEXP' => array('link' => 'regexp','anchor' => 'operator_regexp'),
1409 'RELEASE_LOCK' => array('link' => 'miscellaneous-functions','anchor' => 'function_release_lock'),
1410 'REPEAT' => array('link' => 'string-functions','anchor' => 'function_repeat'),
1411 'REPLACE' => array('link' => 'string-functions','anchor' => 'function_replace'),
1412 'REVERSE' => array('link' => 'string-functions','anchor' => 'function_reverse'),
1413 'RIGHT' => array('link' => 'string-functions','anchor' => 'function_right'),
1414 'RLIKE' => array('link' => 'regexp','anchor' => 'operator_rlike'),
1415 'ROUND' => array('link' => 'mathematical-functions','anchor' => 'function_round'),
1416 'ROW_COUNT' => array('link' => 'information-functions','anchor' => 'function_row_count'),
1417 'RPAD' => array('link' => 'string-functions','anchor' => 'function_rpad'),
1418 'RTRIM' => array('link' => 'string-functions','anchor' => 'function_rtrim'),
1419 'SCHEMA' => array('link' => 'information-functions','anchor' => 'function_schema'),
1420 'SEC_TO_TIME' => array('link' => 'date-and-time-functions','anchor' => 'function_sec_to_time'),
1421 'SECOND' => array('link' => 'date-and-time-functions','anchor' => 'function_second'),
1422 'SESSION_USER' => array('link' => 'information-functions','anchor' => 'function_session_user'),
1423 'SHA' => array('link' => 'encryption-functions','anchor' => 'function_sha1'),
1424 'SHA1' => array('link' => 'encryption-functions','anchor' => 'function_sha1'),
1425 'SIGN' => array('link' => 'mathematical-functions','anchor' => 'function_sign'),
1426 'SIN' => array('link' => 'mathematical-functions','anchor' => 'function_sin'),
1427 'SLEEP' => array('link' => 'miscellaneous-functions','anchor' => 'function_sleep'),
1428 'SOUNDEX' => array('link' => 'string-functions','anchor' => 'function_soundex'),
1429 'SPACE' => array('link' => 'string-functions','anchor' => 'function_space'),
1430 'SQRT' => array('link' => 'mathematical-functions','anchor' => 'function_sqrt'),
1431 'STD' => array('link' => 'group-by-functions','anchor' => 'function_std'),
1432 'STDDEV_POP' => array('link' => 'group-by-functions','anchor' => 'function_stddev_pop'),
1433 'STDDEV_SAMP' => array('link' => 'group-by-functions','anchor' => 'function_stddev_samp'),
1434 'STDDEV' => array('link' => 'group-by-functions','anchor' => 'function_stddev'),
1435 'STR_TO_DATE' => array('link' => 'date-and-time-functions','anchor' => 'function_str_to_date'),
1436 'STRCMP' => array('link' => 'string-comparison-functions','anchor' => 'function_strcmp'),
1437 'SUBDATE' => array('link' => 'date-and-time-functions','anchor' => 'function_subdate'),
1438 'SUBSTR' => array('link' => 'string-functions','anchor' => 'function_substr'),
1439 'SUBSTRING_INDEX' => array('link' => 'string-functions','anchor' => 'function_substring_index'),
1440 'SUBSTRING' => array('link' => 'string-functions','anchor' => 'function_substring'),
1441 'SUBTIME' => array('link' => 'date-and-time-functions','anchor' => 'function_subtime'),
1442 'SUM' => array('link' => 'group-by-functions','anchor' => 'function_sum'),
1443 'SYSDATE' => array('link' => 'date-and-time-functions','anchor' => 'function_sysdate'),
1444 'SYSTEM_USER' => array('link' => 'information-functions','anchor' => 'function_system_user'),
1445 'TAN' => array('link' => 'mathematical-functions','anchor' => 'function_tan'),
1446 'TIME_FORMAT' => array('link' => 'date-and-time-functions','anchor' => 'function_time_format'),
1447 'TIME_TO_SEC' => array('link' => 'date-and-time-functions','anchor' => 'function_time_to_sec'),
1448 'TIME' => array('link' => 'date-and-time-functions','anchor' => 'function_time'),
1449 'TIMEDIFF' => array('link' => 'date-and-time-functions','anchor' => 'function_timediff'),
1450 'TIMESTAMP' => array('link' => 'date-and-time-functions','anchor' => 'function_timestamp'),
1451 'TIMESTAMPADD' => array('link' => 'date-and-time-functions','anchor' => 'function_timestampadd'),
1452 'TIMESTAMPDIFF' => array('link' => 'date-and-time-functions','anchor' => 'function_timestampdiff'),
1453 'TO_DAYS' => array('link' => 'date-and-time-functions','anchor' => 'function_to_days'),
1454 'TRIM' => array('link' => 'string-functions','anchor' => 'function_trim'),
1455 'TRUNCATE' => array('link' => 'mathematical-functions','anchor' => 'function_truncate'),
1456 'UCASE' => array('link' => 'string-functions','anchor' => 'function_ucase'),
1457 'UNCOMPRESS' => array('link' => 'encryption-functions','anchor' => 'function_uncompress'),
1458 'UNCOMPRESSED_LENGTH' => array('link' => 'encryption-functions','anchor' => 'function_uncompressed_length'),
1459 'UNHEX' => array('link' => 'string-functions','anchor' => 'function_unhex'),
1460 'UNIX_TIMESTAMP' => array('link' => 'date-and-time-functions','anchor' => 'function_unix_timestamp'),
1461 'UpdateXML' => array('link' => 'xml-functions','anchor' => 'function_updatexml'),
1462 'UPPER' => array('link' => 'string-functions','anchor' => 'function_upper'),
1463 'USER' => array('link' => 'information-functions','anchor' => 'function_user'),
1464 'UTC_DATE' => array('link' => 'date-and-time-functions','anchor' => 'function_utc_date'),
1465 'UTC_TIME' => array('link' => 'date-and-time-functions','anchor' => 'function_utc_time'),
1466 'UTC_TIMESTAMP' => array('link' => 'date-and-time-functions','anchor' => 'function_utc_timestamp'),
1467 'UUID_SHORT' => array('link' => 'miscellaneous-functions','anchor' => 'function_uuid_short'),
1468 'UUID' => array('link' => 'miscellaneous-functions','anchor' => 'function_uuid'),
1469 'VALUES' => array('link' => 'miscellaneous-functions','anchor' => 'function_values'),
1470 'VAR_POP' => array('link' => 'group-by-functions','anchor' => 'function_var_pop'),
1471 'VAR_SAMP' => array('link' => 'group-by-functions','anchor' => 'function_var_samp'),
1472 'VARIANCE' => array('link' => 'group-by-functions','anchor' => 'function_variance'),
1473 'VERSION' => array('link' => 'information-functions','anchor' => 'function_version'),
1474 'WEEK' => array('link' => 'date-and-time-functions','anchor' => 'function_week'),
1475 'WEEKDAY' => array('link' => 'date-and-time-functions','anchor' => 'function_weekday'),
1476 'WEEKOFYEAR' => array('link' => 'date-and-time-functions','anchor' => 'function_weekofyear'),
1477 'XOR' => array('link' => 'logical-operators','anchor' => 'operator_xor'),
1478 'YEAR' => array('link' => 'date-and-time-functions','anchor' => 'function_year'),
1479 'YEARWEEK' => array('link' => 'date-and-time-functions','anchor' => 'function_yearweek'),
1480 'SOUNDS_LIKE' => array('link' => 'string-functions','anchor' => 'operator_sounds-like'),
1481 'IS_NOT_NULL' => array('link' => 'comparison-operators','anchor' => 'operator_is-not-null'),
1482 'IS_NOT' => array('link' => 'comparison-operators','anchor' => 'operator_is-not'),
1483 'IS_NULL' => array('link' => 'comparison-operators','anchor' => 'operator_is-null'),
1484 'NOT_LIKE' => array('link' => 'string-comparison-functions','anchor' => 'operator_not-like'),
1485 'NOT_REGEXP' => array('link' => 'regexp','anchor' => 'operator_not-regexp'),
1486 'COUNT_DISTINCT' => array('link' => 'group-by-functions','anchor' => 'function_count-distinct'),
1487 'NOT_IN' => array('link' => 'comparison-operators','anchor' => 'function_not-in')