~hexmode/+junk/main

« back to all changes in this revision

Viewing changes to install-files/apps/phpmyadmin2.10.1/libraries/sqlparser.data.php

  • Committer: Mark A. Hershberger
  • Date: 2008-01-05 19:38:56 UTC
  • Revision ID: hershberger@spawn-xp-20080105193856-6rnzgwa4nehue3qj
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/* $Id: sqlparser.data.php 10061 2007-03-04 14:07:42Z lem9 $ */
 
3
// vim: expandtab sw=4 ts=4 sts=4:
 
4
 
 
5
 
 
6
/** SQL Parser Matching Data
 
7
 *
 
8
 * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
 
9
 * http://www.orbis-terrarum.net/?l=people.robbat2
 
10
 *
 
11
 * This data is used by the SQL Parser to recognize keywords
 
12
 *
 
13
 * It has been extracted from the lex.h file in the MySQL BK tree
 
14
 * (around 4.0.2) as well as the MySQL documentation.
 
15
 *
 
16
 * Note: before adding a value in the arrays, ensure that you respect
 
17
 * proper sorting, especially with underscores. And don't forget to
 
18
 * update the _cnt variable at the end of each array. 
 
19
 * (It's slower to have PHP do the count).
 
20
 *
 
21
 * It's easier to use only uppercase for proper sorting. In case of
 
22
 * doubt, use the DEBUG code after this function's definition. 
 
23
 */
 
24
 
 
25
$PMA_SQPdata_function_name = array (
 
26
    'ABS',
 
27
    'ACOS',
 
28
    'ADDDATE',
 
29
    'ADDTIME',
 
30
    'AES_DECRYPT',
 
31
    'AES_ENCRYPT',
 
32
    'AREA',                     // Area() polygon-property-functions.html
 
33
    'ASBINARY',                 // AsBinary()
 
34
    'ASCII',
 
35
    'ASIN',
 
36
    'ASTEXT',                   // AsText()
 
37
    'ATAN',
 
38
    'ATAN2',
 
39
    'AVG',
 
40
    'BDMPOLYFROMTEXT',          // BdMPolyFromText()
 
41
    'BDMPOLYFROMWKB',           // BdMPolyFromWKB()
 
42
    'BDPOLYFROMTEXT',           // BdPolyFromText()
 
43
    'BDPOLYFROMWKB',            // BdPolyFromWKB()
 
44
    'BENCHMARK',
 
45
    'BIN',
 
46
    'BIT_AND',
 
47
    'BIT_COUNT',
 
48
    'BIT_LENGTH',
 
49
    'BIT_OR',
 
50
    'BIT_XOR',                  // group-by-functions.html
 
51
    'BOUNDARY',                 // Boundary() general-geometry-property-functions.html
 
52
    'BUFFER',                   // Buffer()
 
53
    'CAST',
 
54
    'CEIL',
 
55
    'CEILING',
 
56
    'CENTROID',                 // Centroid() multipolygon-property-functions.html
 
57
    'CHAR',                     // string-functions.html
 
58
    'CHARACTER_LENGTH',
 
59
    'CHARSET',                  // information-functions.html
 
60
    'CHAR_LENGTH',
 
61
    'COALESCE',
 
62
    'COERCIBILITY',             // information-functions.html
 
63
    'COLLATION',                // information-functions.html
 
64
    'COMPRESS',                 // string-functions.html
 
65
    'CONCAT',
 
66
    'CONCAT_WS',
 
67
    'CONNECTION_ID',
 
68
    'CONTAINS',                 // Contains()
 
69
    'CONV',
 
70
    'CONVERT',
 
71
    'CONVERT_TZ',
 
72
    'CONVEXHULL',               // ConvexHull()
 
73
    'COS',
 
74
    'COT',
 
75
    'COUNT',
 
76
    'CRC32',                    // mathematical-functions.html
 
77
    'CROSSES',                  // Crosses()
 
78
    'CURDATE',
 
79
    'CURRENT_DATE',
 
80
    'CURRENT_TIME',
 
81
    'CURRENT_TIMESTAMP',
 
82
    'CURRENT_USER',
 
83
    'CURTIME',
 
84
    'DATABASE',
 
85
    'DATE',                     // date-and-time-functions.html
 
86
    'DATEDIFF',                 // date-and-time-functions.html
 
87
    'DATE_ADD',
 
88
    'DATE_DIFF',
 
89
    'DATE_FORMAT',
 
90
    'DATE_SUB',
 
91
    'DAY',
 
92
    'DAYNAME',
 
93
    'DAYOFMONTH',
 
94
    'DAYOFWEEK',
 
95
    'DAYOFYEAR',
 
96
    'DECODE',
 
97
    'DEFAULT',                  // miscellaneous-functions.html
 
98
    'DEGREES',
 
99
    'DES_DECRYPT',
 
100
    'DES_ENCRYPT',
 
101
    'DIFFERENCE',               // Difference()
 
102
    'DIMENSION',                // Dimension() general-geometry-property-functions.html
 
103
    'DISJOINT',                 // Disjoint()
 
104
    'DISTANCE',                 // Distance()
 
105
    'ELT',
 
106
    'ENCODE',
 
107
    'ENCRYPT',
 
108
    'ENDPOINT',                 // EndPoint() linestring-property-functions.html
 
109
    'ENVELOPE',                 // Envelope() general-geometry-property-functions.html
 
110
    'EQUALS',                   // Equals()
 
111
    'EXP',
 
112
    'EXPORT_SET',
 
113
    'EXTERIORRING',             // ExteriorRing() polygon-property-functions.html
 
114
    'EXTRACT',
 
115
    'EXTRACTVALUE',             // ExtractValue() xml-functions.html
 
116
    'FIELD',
 
117
    'FIND_IN_SET',
 
118
    'FLOOR',
 
119
    'FORMAT',
 
120
    'FOUND_ROWS',
 
121
    'FROM_DAYS',
 
122
    'FROM_UNIXTIME',
 
123
    'GEOMCOLLFROMTEXT',         // GeomCollFromText()
 
124
    'GEOMCOLLFROMWKB',          // GeomCollFromWKB()
 
125
    'GEOMETRYCOLLECTION',       // GeometryCollection()
 
126
    'GEOMETRYCOLLECTIONFROMTEXT',   // GeometryCollectionFromText()
 
127
    'GEOMETRYCOLLECTIONFROMWKB',    // GeometryCollectionFromWKB()
 
128
    'GEOMETRYFROMTEXT',         // GeometryFromText()
 
129
    'GEOMETRYFROMWKB',          // GeometryFromWKB()
 
130
    'GEOMETRYN',                // GeometryN() geometrycollection-property-functions.html
 
131
    'GEOMETRYTYPE',             // GeometryType() general-geometry-property-functions.html
 
132
    'GEOMFROMTEXT',             // GeomFromText()
 
133
    'GEOMFROMWKB',              // GeomFromWKB()
 
134
    'GET_FORMAT',
 
135
    'GET_LOCK',
 
136
    'GLENGTH',                  // GLength() linestring-property-functions.html
 
137
    'GREATEST',
 
138
    'GROUP_CONCAT',
 
139
    'GROUP_UNIQUE_USERS',
 
140
    'HEX',
 
141
    'HOUR',
 
142
    'IF',                       //control-flow-functions.html
 
143
    'IFNULL',
 
144
    'INET_ATON',
 
145
    'INET_NTOA',
 
146
    'INSERT',                   // string-functions.html
 
147
    'INSTR',
 
148
    'INTERIORRINGN',            // InteriorRingN() polygon-property-functions.html
 
149
    'INTERSECTION',             // Intersection()
 
150
    'INTERSECTS',               // Intersects()
 
151
    'INTERVAL',
 
152
    'ISCLOSED',                 // IsClosed() multilinestring-property-functions.html
 
153
    'ISEMPTY',                  // IsEmpty() general-geometry-property-functions.html
 
154
    'ISNULL',
 
155
    'ISRING',                   // IsRing() linestring-property-functions.html
 
156
    'ISSIMPLE',                 // IsSimple() general-geometry-property-functions.html
 
157
    'IS_FREE_LOCK',
 
158
    'IS_USED_LOCK',             // miscellaneous-functions.html
 
159
    'LAST_DAY',
 
160
    'LAST_INSERT_ID',
 
161
    'LCASE',
 
162
    'LEAST',
 
163
    'LEFT',
 
164
    'LENGTH',
 
165
    'LINEFROMTEXT',             // LineFromText()
 
166
    'LINEFROMWKB',              // LineFromWKB()
 
167
    'LINESTRING',               // LineString()
 
168
    'LINESTRINGFROMTEXT',       // LineStringFromText()
 
169
    'LINESTRINGFROMWKB',        // LineStringFromWKB()
 
170
    'LN',
 
171
    'LOAD_FILE',
 
172
    'LOCALTIME',
 
173
    'LOCALTIMESTAMP',
 
174
    'LOCATE',
 
175
    'LOG',
 
176
    'LOG10',
 
177
    'LOG2',
 
178
    'LOWER',
 
179
    'LPAD',
 
180
    'LTRIM',
 
181
    'MAKEDATE',
 
182
    'MAKETIME',
 
183
    'MAKE_SET',
 
184
    'MASTER_POS_WAIT',
 
185
    'MAX',
 
186
    'MBRCONTAINS',              // MBRContains()
 
187
    'MBRDISJOINT',              // MBRDisjoint()
 
188
    'MBREQUAL',                 // MBREqual()
 
189
    'MBRINTERSECTS',            // MBRIntersects()
 
190
    'MBROVERLAPS',              // MBROverlaps()
 
191
    'MBRTOUCHES',               // MBRTouches()
 
192
    'MBRWITHIN',                // MBRWithin()
 
193
    'MD5',
 
194
    'MICROSECOND',
 
195
    'MID',
 
196
    'MIN',
 
197
    'MINUTE',
 
198
    'MLINEFROMTEXT',            // MLineFromText()
 
199
    'MLINEFROMWKB',             // MLineFromWKB()
 
200
    'MOD',
 
201
    'MONTH',
 
202
    'MONTHNAME',
 
203
    'NOW',
 
204
    'MPOINTFROMTEXT',           // MPointFromText()
 
205
    'MPOINTFROMWKB',            // MPointFromWKB()
 
206
    'MPOLYFROMTEXT',            // MPolyFromText()
 
207
    'MPOLYFROMWKB',             // MPolyFromWKB()
 
208
    'MULTILINESTRING',          // MultiLineString()
 
209
    'MULTILINESTRINGFROMTEXT',  // MultiLineStringFromText()
 
210
    'MULTILINESTRINGFROMWKB',   // MultiLineStringFromWKB()
 
211
    'MULTIPOINT',               // MultiPoint()
 
212
    'MULTIPOINTFROMTEXT',       // MultiPointFromText()
 
213
    'MULTIPOINTFROMWKB',        // MultiPointFromWKB()
 
214
    'MULTIPOLYGON',             // MultiPolygon()
 
215
    'MULTIPOLYGONFROMTEXT',     // MultiPolygonFromText()
 
216
    'MULTIPOLYGONFROMWKB',      // MultiPolygonFromWKB()
 
217
    'NAME_CONST',               // NAME_CONST()
 
218
    'NOW',                      // NOW()
 
219
    'NULLIF',
 
220
    'NUMGEOMETRIES',            // NumGeometries() geometrycollection-property-functions.html
 
221
    'NUMINTERIORRINGS',         // NumInteriorRings() polygon-property-functions.html
 
222
    'NUMPOINTS',                // NumPoints() linestring-property-functions.html
 
223
    'OCT',
 
224
    'OCTET_LENGTH',
 
225
    'OLD_PASSWORD',
 
226
    'ORD',
 
227
    'OVERLAPS',                 // Overlaps()
 
228
    'PASSWORD',
 
229
    'PERIOD_ADD',
 
230
    'PERIOD_DIFF',
 
231
    'PI',
 
232
    'POINT',                    // Point()
 
233
    'POINTFROMTEXT',            // PointFromText()
 
234
    'POINTFROMWKB',             // PointFromWKB()
 
235
    'POINTN',                   // PointN() inestring-property-functions.html
 
236
    'POINTONSURFACE',           // PointOnSurface() multipolygon-property-functions.html
 
237
    'POLYFROMTEXT',             // PolyFromText()
 
238
    'POLYFROMWKB',              // PolyFromWKB()
 
239
    'POLYGON',                  // Polygon()
 
240
    'POLYGONFROMTEXT',          // PolygonFromText()
 
241
    'POLYGONFROMWKB',           // PolygonFromWKB()
 
242
    'POSITION',
 
243
    'POW',
 
244
    'POWER',
 
245
    'QUARTER',
 
246
    'QUOTE',
 
247
    'RADIANS',
 
248
    'RAND',
 
249
    'RELATED',                  // Related()
 
250
    'RELEASE_LOCK',
 
251
    'REPEAT',
 
252
    'REPLACE',                  // string-functions.html
 
253
    'REVERSE',
 
254
    'RIGHT',
 
255
    'ROUND',
 
256
    'ROW_COUNT',                // information-functions.html
 
257
    'RPAD',
 
258
    'RTRIM',
 
259
    'SCHEMA',                   // information-functions.html
 
260
    'SECOND',
 
261
    'SEC_TO_TIME',
 
262
    'SESSION_USER',
 
263
    'SHA',
 
264
    'SHA1',
 
265
    'SIGN',
 
266
    'SIN',
 
267
    'SLEEP',                    // miscellaneous-functions.html
 
268
    'SOUNDEX',
 
269
    'SPACE',
 
270
    'SQRT',
 
271
    'SRID',                     // general-geometry-property-functions.html
 
272
    'STARTPOINT',               // StartPoint() linestring-property-functions.html
 
273
    'STD',
 
274
    'STDDEV',
 
275
    'STDDEV_POP',               // group-by-functions.html
 
276
    'STDDEV_SAMP',              // group-by-functions.html
 
277
    'STRCMP',
 
278
    'STR_TO_DATE',
 
279
    'SUBDATE',
 
280
    'SUBSTR',
 
281
    'SUBSTRING',
 
282
    'SUBSTRING_INDEX',
 
283
    'SUBTIME',
 
284
    'SUM',
 
285
    'SYMDIFFERENCE',            // SymDifference()
 
286
    'SYSDATE',
 
287
    'SYSTEM_USER',
 
288
    'TAN',
 
289
    'TIME',
 
290
    'TIMEDIFF',
 
291
    'TIMESTAMP',
 
292
    'TIMESTAMPADD',
 
293
    'TIMESTAMPDIFF',
 
294
    'TIME_FORMAT',
 
295
    'TIME_TO_SEC',
 
296
    'TOUCHES',                  // Touches()
 
297
    'TO_DAYS',
 
298
    'TRIM',
 
299
    'TRUNCATE',                 // mathematical-functions.html
 
300
    'UCASE',
 
301
    'UNCOMPRESS',               // string-functions.html
 
302
    'UNCOMPRESSED_LENGTH',      // string-functions.html
 
303
    'UNHEX',                    // string-functions.html
 
304
    'UNIQUE_USERS',
 
305
    'UNIX_TIMESTAMP',
 
306
    'UPDATEXML',                // UpdateXML() xml-functions.html
 
307
    'UPPER',
 
308
    'USER',
 
309
    'UTC_DATE',
 
310
    'UTC_TIME',
 
311
    'UTC_TIMESTAMP',
 
312
    'UUID',                     // miscellaneous-functions.html
 
313
    'VARIANCE',                 // group-by-functions.html
 
314
    'VAR_POP',                  // group-by-functions.html
 
315
    'VAR_SAMP',                 // group-by-functions.html
 
316
    'VERSION',
 
317
    'WEEK',
 
318
    'WEEKDAY',
 
319
    'WEEKOFYEAR',
 
320
    'WITHIN',                   // Within()
 
321
    'X',                        // point-property-functions.html
 
322
    'Y',                        // point-property-functions.html
 
323
    'YEAR',
 
324
    'YEARWEEK'
 
325
);
 
326
//$PMA_SQPdata_function_name_cnt = count($PMA_SQPdata_function_name);
 
327
$PMA_SQPdata_function_name_cnt = 299;
 
328
// DEBUG
 
329
//$test_PMA_SQPdata_function_name = $PMA_SQPdata_function_name;
 
330
//sort($PMA_SQPdata_function_name);
 
331
//if ($PMA_SQPdata_function_name != $test_PMA_SQPdata_function_name) {
 
332
//    echo 'sort properly like this<pre>';
 
333
//    print_r($PMA_SQPdata_function_name);
 
334
//    echo '</pre>';
 
335
//}
 
336
 
 
337
 
 
338
$PMA_SQPdata_column_attrib = array (
 
339
    'ARCHIVE',          // Engine
 
340
    'ASCII',
 
341
    'AUTO_INCREMENT',
 
342
    'BDB',              // Engine
 
343
    'BERKELEYDB',       // Engine alias BDB
 
344
    'BINARY',
 
345
    'BLACKHOLE',        // Engine
 
346
    'CSV',              // Engine
 
347
    'DEFAULT',
 
348
    'EXAMPLE',          // Engine
 
349
    'FEDERATED',        // Engine
 
350
    'HEAP',             // Engine
 
351
    'INNOBASE',         // Engine alias InnoDB
 
352
    'INNODB',           // Engine InnoDB
 
353
    'ISAM',             // Engine
 
354
    'MEMORY',           // Engine alias HEAP, but preferred
 
355
    'MERGE',            // Engine
 
356
    'MRG_ISAM',         // Engine
 
357
    'MRG_MYISAM',       // Engine alias MERGE
 
358
    'MYISAM',           // Engine MyISAM
 
359
    'NATIONAL',
 
360
    'NDB',              // Engine alias NDBCLUSTER
 
361
    'NDBCLUSTER',       // Engine
 
362
    'PRECISION',
 
363
    'UNDEFINED',
 
364
    'UNICODE',
 
365
    'UNSIGNED',
 
366
    'VARYING',
 
367
    'ZEROFILL'
 
368
);
 
369
//$PMA_SQPdata_column_attrib_cnt = count($PMA_SQPdata_column_attrib);
 
370
$PMA_SQPdata_column_attrib_cnt = 29;
 
371
 
 
372
$PMA_SQPdata_reserved_word = array (
 
373
    'ACCESSIBLE',       // 5.1
 
374
    'ACTION',
 
375
    'ADD',
 
376
    'AFTER',
 
377
    'AGAINST',
 
378
    'AGGREGATE',
 
379
    'ALGORITHM',
 
380
    'ALL',
 
381
    'ALTER',
 
382
    'ANALYSE',
 
383
    'ANALYZE',
 
384
    'AND',
 
385
    'AS',
 
386
    'ASC',
 
387
    'AUTOCOMMIT',
 
388
    'AUTO_INCREMENT',
 
389
    'AVG_ROW_LENGTH',
 
390
    'BACKUP',
 
391
    'BEGIN',
 
392
    'BETWEEN',
 
393
    'BINLOG',
 
394
    'BOTH',
 
395
    'BY',
 
396
    'CASCADE',
 
397
    'CASE',
 
398
    'CHANGE',
 
399
    'CHANGED',
 
400
    'CHARSET',
 
401
    'CHECK',
 
402
    'CHECKSUM',
 
403
    'COLLATE',
 
404
    'COLLATION',
 
405
    'COLUMN',
 
406
    'COLUMNS',
 
407
    'COMMENT',
 
408
    'COMMIT',
 
409
    'COMMITTED',
 
410
    'COMPRESSED',
 
411
    'CONCURRENT',
 
412
    'CONSTRAINT',
 
413
    'CONVERT',
 
414
    'CREATE',
 
415
    'CROSS',
 
416
    'CURRENT_TIMESTAMP',
 
417
    'DATA',
 
418
    'DATABASE',
 
419
    'DATABASES',
 
420
    'DAY',
 
421
    'DAY_HOUR',
 
422
    'DAY_MINUTE',
 
423
    'DAY_SECOND',
 
424
    'DEFINER',
 
425
    'DELAYED',
 
426
    'DELAY_KEY_WRITE',
 
427
    'DELETE',
 
428
    'DESC',
 
429
    'DESCRIBE',
 
430
    'DISTINCT',
 
431
    'DISTINCTROW',
 
432
    'DIV',
 
433
    'DO',
 
434
    'DROP',
 
435
    'DUMPFILE',
 
436
    'DUPLICATE',
 
437
    'DYNAMIC',
 
438
    'ELSE',
 
439
    'ENCLOSED',
 
440
    'END',
 
441
    'ENGINE',
 
442
    'ENGINES',
 
443
    'ESCAPE',
 
444
    'ESCAPED',
 
445
    'EVENTS',
 
446
    'EXECUTE',
 
447
    'EXISTS',
 
448
    'EXPLAIN',
 
449
    'EXTENDED',
 
450
    'FAST',
 
451
    'FIELDS',
 
452
    'FILE',
 
453
    'FIRST',
 
454
    'FIXED',
 
455
    'FLUSH',
 
456
    'FOR',
 
457
    'FORCE',
 
458
    'FOREIGN',
 
459
    'FROM',
 
460
    'FULL',
 
461
    'FULLTEXT',
 
462
    'FUNCTION',
 
463
    'GEMINI',
 
464
    'GEMINI_SPIN_RETRIES',
 
465
    'GLOBAL',
 
466
    'GRANT',
 
467
    'GRANTS',
 
468
    'GROUP',
 
469
    'HAVING',
 
470
    'HEAP',
 
471
    'HIGH_PRIORITY',
 
472
    'HOSTS',
 
473
    'HOUR',
 
474
    'HOUR_MINUTE',
 
475
    'HOUR_SECOND',
 
476
    'IDENTIFIED',
 
477
    'IF',
 
478
    'IGNORE',
 
479
    'IN',
 
480
    'INDEX',
 
481
    'INDEXES',
 
482
    'INFILE',
 
483
    'INNER',
 
484
    'INSERT',
 
485
    'INSERT_ID',
 
486
    'INSERT_METHOD',
 
487
    'INTERVAL',
 
488
    'INTO',
 
489
    'IS',
 
490
    'ISOLATION',
 
491
    'JOIN',
 
492
    'KEY',
 
493
    'KEYS',
 
494
    'KILL',
 
495
    'LAST_INSERT_ID',
 
496
    'LEADING',
 
497
    'LEFT',
 
498
    'LEVEL',
 
499
    'LIKE',
 
500
    'LIMIT',
 
501
    'LINEAR',               // 5.1
 
502
    'LINES',
 
503
    'LOAD',
 
504
    'LOCAL',
 
505
    'LOCK',
 
506
    'LOCKS',
 
507
    'LOGS',
 
508
    'LOW_PRIORITY',
 
509
    'MASTER',
 
510
    'MASTER_CONNECT_RETRY',
 
511
    'MASTER_HOST',
 
512
    'MASTER_LOG_FILE',
 
513
    'MASTER_LOG_POS',
 
514
    'MASTER_PASSWORD',
 
515
    'MASTER_PORT',
 
516
    'MASTER_USER',
 
517
    'MATCH',
 
518
    'MAX_CONNECTIONS_PER_HOUR',
 
519
    'MAX_QUERIES_PER_HOUR',
 
520
    'MAX_ROWS',
 
521
    'MAX_UPDATES_PER_HOUR',
 
522
    'MAX_USER_CONNECTIONS',
 
523
    'MEDIUM',
 
524
    'MERGE',
 
525
    'MIN_ROWS',
 
526
    'MINUTE',
 
527
    'MINUTE_SECOND',
 
528
    'MODE',
 
529
    'MODIFY',
 
530
    'MONTH',
 
531
    'MRG_MYISAM',
 
532
    'MYISAM',
 
533
    'NAMES',
 
534
    'NATURAL',
 
535
    // 'NO' is not allowed in SQL-99 but is allowed in MySQL
 
536
    //'NO',
 
537
    'NOT',
 
538
    'NULL',
 
539
    'OFFSET',
 
540
    'ON',
 
541
    'OPEN',
 
542
    'OPTIMIZE',
 
543
    'OPTION',
 
544
    'OPTIONALLY',
 
545
    'OR',
 
546
    'ORDER',
 
547
    'OUTER',
 
548
    'OUTFILE',
 
549
    'PACK_KEYS',
 
550
    'PARTIAL',
 
551
    'PASSWORD',
 
552
    'PRIMARY',
 
553
    'PRIVILEGES',
 
554
    'PROCEDURE',
 
555
    'PROCESS',
 
556
    'PROCESSLIST',
 
557
    'PURGE',
 
558
    'QUICK',
 
559
    'RAID0',
 
560
    'RAID_CHUNKS',
 
561
    'RAID_CHUNKSIZE',
 
562
    'RAID_TYPE',
 
563
    'RANGE',                // 5.1
 
564
    'READ',
 
565
    'READ_ONLY',            // 5.1
 
566
    'READ_WRITE',           // 5.1
 
567
    'REFERENCES',
 
568
    'REGEXP',
 
569
    'RELOAD',
 
570
    'RENAME',
 
571
    'REPAIR',
 
572
    'REPEATABLE',
 
573
    'REPLACE',
 
574
    'REPLICATION',
 
575
    'RESET',
 
576
    'RESTORE',
 
577
    'RESTRICT',
 
578
    'RETURN',
 
579
    'RETURNS',
 
580
    'REVOKE',
 
581
    'RIGHT',
 
582
    'RLIKE',
 
583
    'ROLLBACK',
 
584
    'ROW',
 
585
    'ROW_FORMAT',
 
586
    'ROWS',
 
587
    'SECOND',
 
588
    'SELECT',
 
589
    'SEPARATOR',
 
590
    'SERIALIZABLE',
 
591
    'SESSION',
 
592
    'SHARE',
 
593
    'SHOW',
 
594
    'SHUTDOWN',
 
595
    'SLAVE',
 
596
    'SONAME',
 
597
    'SOUNDS',                   // string-functions.html
 
598
    'SQL_AUTO_IS_NULL',
 
599
    'SQL_BIG_RESULT',
 
600
    'SQL_BIG_SELECTS',
 
601
    'SQL_BIG_TABLES',
 
602
    'SQL_BUFFER_RESULT',
 
603
    'SQL_CACHE',
 
604
    'SQL_CALC_FOUND_ROWS',
 
605
    'SQL_LOG_BIN',
 
606
    'SQL_LOG_OFF',
 
607
    'SQL_LOG_UPDATE',
 
608
    'SQL_LOW_PRIORITY_UPDATES',
 
609
    'SQL_MAX_JOIN_SIZE',
 
610
    'SQL_NO_CACHE',
 
611
    'SQL_QUOTE_SHOW_CREATE',
 
612
    'SQL_SAFE_UPDATES',
 
613
    'SQL_SELECT_LIMIT',
 
614
    'SQL_SLAVE_SKIP_COUNTER',
 
615
    'SQL_SMALL_RESULT',
 
616
    'SQL_WARNINGS',
 
617
    'START',
 
618
    'STARTING',
 
619
    'STATUS',
 
620
    'STOP',
 
621
    'STORAGE',
 
622
    'STRAIGHT_JOIN',
 
623
    'STRING',
 
624
    'STRIPED',
 
625
    'SUPER',
 
626
    'TABLE',
 
627
    'TABLES',
 
628
    'TEMPORARY',
 
629
    'TERMINATED',
 
630
    'THEN',
 
631
    'TO',
 
632
    'TRAILING',
 
633
    'TRUNCATE',
 
634
    'TYPE',
 
635
    'TYPES',
 
636
    'UNCOMMITTED',
 
637
    'UNION',
 
638
    'UNIQUE',
 
639
    'UNLOCK',
 
640
    'UPDATE',
 
641
    'USAGE',
 
642
    'USE',
 
643
    'USING',
 
644
    'VALUES',
 
645
    'VARIABLES',
 
646
    'VIEW',
 
647
    'WHEN',
 
648
    'WHERE',
 
649
    'WITH',
 
650
    'WORK',
 
651
    'WRITE',
 
652
    'XOR',
 
653
    'YEAR_MONTH'
 
654
);
 
655
//$PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
 
656
$PMA_SQPdata_reserved_word_cnt = 279;
 
657
 
 
658
// words forbidden to be used as column or table name,
 
659
// as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
 
660
$PMA_SQPdata_forbidden_word = array (
 
661
    'ACCESSIBLE',       // 5.1
 
662
    'ACTION',
 
663
    'ADD',
 
664
    'AFTER',
 
665
    'AGAINST',
 
666
    'AGGREGATE',
 
667
    'ALGORITHM',
 
668
    'ALL',
 
669
    'ALTER',
 
670
    'ANALYZE',
 
671
    'AND',
 
672
    'ANY',
 
673
    'AS',
 
674
    'ASC',
 
675
    'ASCII',
 
676
    'ASENSITIVE',
 
677
    'AUTO_INCREMENT',
 
678
    'AVG',
 
679
    'AVG_ROW_LENGTH',
 
680
    'BACKUP',
 
681
    'BDB',
 
682
    'BEFORE',
 
683
    'BEGIN',
 
684
    'BERKELEYDB',
 
685
    'BETWEEN',
 
686
    'BIGINT',
 
687
    'BINARY',
 
688
    'BINLOG',
 
689
    'BIT',
 
690
    'BLOB',
 
691
    'BOOL',
 
692
    'BOOLEAN',
 
693
    'BOTH',
 
694
    'BTREE',
 
695
    'BY',
 
696
    'BYTE',
 
697
    'CACHE',
 
698
    'CALL',
 
699
    'CASCADE',
 
700
    'CASCADED',
 
701
    'CASE',
 
702
    'CHAIN',
 
703
    'CHANGE',
 
704
    'CHANGED',
 
705
    'CHAR',
 
706
    'CHARACTER',
 
707
    'CHARSET',
 
708
    'CHECK',
 
709
    'CHECKSUM',
 
710
    'CIPHER',
 
711
    'CLOSE',
 
712
    'COLLATE',
 
713
    'COLLATION',
 
714
    'COLUMN',
 
715
    'COLUMNS',
 
716
    'COMMENT',
 
717
    'COMMIT',
 
718
    'COMMITTED',
 
719
    'COMPACT',
 
720
    'COMPRESSED',
 
721
    'CONCURRENT',
 
722
    'CONDITION',
 
723
    'CONNECTION',
 
724
    'CONSISTENT',
 
725
    'CONSTRAINT',
 
726
    'CONTAINS',
 
727
    'CONTINUE',
 
728
    'CONVERT',
 
729
    'CREATE',
 
730
    'CROSS',
 
731
    'CUBE',
 
732
    'CURRENT_DATE',
 
733
    'CURRENT_TIME',
 
734
    'CURRENT_TIMESTAMP',
 
735
    'CURRENT_USER',
 
736
    'CURSOR',
 
737
    'DATA',
 
738
    'DATABASE',
 
739
    'DATABASES',
 
740
    'DATE',
 
741
    'DATETIME',
 
742
    'DAY',
 
743
    'DAY_HOUR',
 
744
    'DAY_MICROSECOND',
 
745
    'DAY_MINUTE',
 
746
    'DAY_SECOND',
 
747
    'DEALLOCATE',
 
748
    'DEC',
 
749
    'DECIMAL',
 
750
    'DECLARE',
 
751
    'DEFAULT',
 
752
    'DEFINER',
 
753
    'DELAYED',
 
754
    'DELAY_KEY_WRITE',
 
755
    'DELETE',
 
756
    'DESC',
 
757
    'DESCRIBE',
 
758
    'DES_KEY_FILE',
 
759
    'DETERMINISTIC',
 
760
    'DIRECTORY',
 
761
    'DISABLE',
 
762
    'DISCARD',
 
763
    'DISTINCT',
 
764
    'DISTINCTROW',
 
765
    'DIV',
 
766
    'DO',
 
767
    'DOUBLE',
 
768
    'DROP',
 
769
    'DUAL',
 
770
    'DUMPFILE',
 
771
    'DUPLICATE',
 
772
    'DYNAMIC',
 
773
    'EACH',
 
774
    'ELSE',
 
775
    'ELSEIF',
 
776
    'ENABLE',
 
777
    'ENCLOSED',
 
778
    'END',
 
779
    'ENGINE',
 
780
    'ENGINES',
 
781
    'ENUM',
 
782
    'ERRORS',
 
783
    'ESCAPE',
 
784
    'ESCAPED',
 
785
    'EVENTS',
 
786
    'EXECUTE',
 
787
    'EXISTS',
 
788
    'EXIT',
 
789
    'EXPANSION',
 
790
    'EXPLAIN',
 
791
    'EXTENDED',
 
792
    'FALSE',
 
793
    'FAST',
 
794
    'FETCH',
 
795
    'FIELDS',
 
796
    'FILE',
 
797
    'FIRST',
 
798
    'FIXED',
 
799
    'FLOAT',
 
800
    'FLOAT4',
 
801
    'FLOAT8',
 
802
    'FLUSH',
 
803
    'FOR',
 
804
    'FORCE',
 
805
    'FOREIGN',
 
806
    'FOUND',
 
807
    'FRAC_SECOND',
 
808
    'FROM',
 
809
    'FULL',
 
810
    'FULLTEXT',
 
811
    'FUNCTION',
 
812
    'GEOMETRY',
 
813
    'GEOMETRYCOLLECTION',
 
814
    'GET_FORMAT',
 
815
    'GLOBAL',
 
816
    'GOTO',
 
817
    'GRANT',
 
818
    'GRANTS',
 
819
    'GROUP',
 
820
    'HANDLER',
 
821
    'HASH',
 
822
    'HAVING',
 
823
    'HELP',
 
824
    'HIGH_PRIORITY',
 
825
    'HOSTS',
 
826
    'HOUR',
 
827
    'HOUR_MICROSECOND',
 
828
    'HOUR_MINUTE',
 
829
    'HOUR_SECOND',
 
830
    'IDENTIFIED',
 
831
    'IF',
 
832
    'IGNORE',
 
833
    'IMPORT',
 
834
    'IN',
 
835
    'INDEX',
 
836
    'INDEXES',
 
837
    'INFILE',
 
838
    'INNER',
 
839
    'INNOBASE',
 
840
    'INNODB',
 
841
    'INOUT',
 
842
    'INSENSITIVE',
 
843
    'INSERT',
 
844
    'INSERT_METHOD',
 
845
    'INT',
 
846
    'INT1',
 
847
    'INT2',
 
848
    'INT3',
 
849
    'INT4',
 
850
    'INT8',
 
851
    'INTEGER',
 
852
    'INTERVAL',
 
853
    'INTO',
 
854
    'INVOKER',
 
855
    'IO_THREAD',
 
856
    'IS',
 
857
    'ISOLATION',
 
858
    'ISSUER',
 
859
    'ITERATE',
 
860
    'JOIN',
 
861
    'KEY',
 
862
    'KEYS',
 
863
    'KILL',
 
864
    'LABEL',
 
865
    'LANGUAGE',
 
866
    'LAST',
 
867
    'LEADING',
 
868
    'LEAVE',
 
869
    'LEAVES',
 
870
    'LEFT',
 
871
    'LEVEL',
 
872
    'LIKE',
 
873
    'LIMIT',
 
874
    'LINEAR',               // 5.1
 
875
    'LINES',
 
876
    'LINESTRING',
 
877
    'LOAD',
 
878
    'LOCAL',
 
879
    'LOCALTIME',
 
880
    'LOCALTIMESTAMP',
 
881
    'LOCK',
 
882
    'LOCKS',
 
883
    'LOGS',
 
884
    'LONG',
 
885
    'LONGBLOB',
 
886
    'LONGTEXT',
 
887
    'LOOP',
 
888
    'LOW_PRIORITY',
 
889
    'MASTER',
 
890
    'MASTER_CONNECT_RETRY',
 
891
    'MASTER_HOST',
 
892
    'MASTER_LOG_FILE',
 
893
    'MASTER_LOG_POS',
 
894
    'MASTER_PASSWORD',
 
895
    'MASTER_PORT',
 
896
    'MASTER_SERVER_ID',
 
897
    'MASTER_SSL',
 
898
    'MASTER_SSL_CA',
 
899
    'MASTER_SSL_CAPATH',
 
900
    'MASTER_SSL_CERT',
 
901
    'MASTER_SSL_CIPHER',
 
902
    'MASTER_SSL_KEY',
 
903
    'MASTER_USER',
 
904
    'MATCH',
 
905
    'MAX_CONNECTIONS_PER_HOUR',
 
906
    'MAX_QUERIES_PER_HOUR',
 
907
    'MAX_ROWS',
 
908
    'MAX_UPDATES_PER_HOUR',
 
909
    'MAX_USER_CONNECTIONS',
 
910
    'MEDIUM',
 
911
    'MEDIUMBLOB',
 
912
    'MEDIUMINT',
 
913
    'MEDIUMTEXT',
 
914
    'MERGE',
 
915
    'MICROSECOND',
 
916
    'MIDDLEINT',
 
917
    'MIGRATE',
 
918
    'MINUTE',
 
919
    'MINUTE_MICROSECOND',
 
920
    'MINUTE_SECOND',
 
921
    'MIN_ROWS',
 
922
    'MOD',
 
923
    'MODE',
 
924
    'MODIFIES',
 
925
    'MODIFY',
 
926
    'MONTH',
 
927
    'MULTILINESTRING',
 
928
    'MULTIPOINT',
 
929
    'MULTIPOLYGON',
 
930
    'MUTEX',
 
931
    'NAME',
 
932
    'NAMES',
 
933
    'NATIONAL',
 
934
    'NATURAL',
 
935
    'NCHAR',
 
936
    'NDB',
 
937
    'NDBCLUSTER',
 
938
    'NEW',
 
939
    'NEXT',
 
940
    'NO',
 
941
    'NONE',
 
942
    'NOT',
 
943
    'NO_WRITE_TO_BINLOG',
 
944
    'NULL',
 
945
    'NUMERIC',
 
946
    'NVARCHAR',
 
947
    'OFFSET',
 
948
    'OLD_PASSWORD',
 
949
    'ON',
 
950
    'ONE',
 
951
    'ONE_SHOT',
 
952
    'OPEN',
 
953
    'OPTIMIZE',
 
954
    'OPTION',
 
955
    'OPTIONALLY',
 
956
    'OR',
 
957
    'ORDER',
 
958
    'OUT',
 
959
    'OUTER',
 
960
    'OUTFILE',
 
961
    'PACK_KEYS',
 
962
    'PARTIAL',
 
963
    'PASSWORD',
 
964
    'PHASE',
 
965
    'POINT',
 
966
    'POLYGON',
 
967
    'PRECISION',
 
968
    'PREPARE',
 
969
    'PREV',
 
970
    'PRIMARY',
 
971
    'PRIVILEGES',
 
972
    'PROCEDURE',
 
973
    'PROCESSLIST',
 
974
    'PURGE',
 
975
    'QUARTER',
 
976
    'QUERY',
 
977
    'QUICK',
 
978
    'RAID0',
 
979
    'RAID_CHUNKS',
 
980
    'RAID_CHUNKSIZE',
 
981
    'RAID_TYPE',
 
982
    'RANGE',                // 5.1
 
983
    'READ',
 
984
    'READ_ONLY',            // 5.1
 
985
    'READ_WRITE',           // 5.1
 
986
    'READS',
 
987
    'REAL',
 
988
    'RECOVER',
 
989
    'REDUNDANT',
 
990
    'REFERENCES',
 
991
    'REGEXP',
 
992
    'RELAY_LOG_FILE',
 
993
    'RELAY_LOG_POS',
 
994
    'RELAY_THREAD',
 
995
    'RELEASE',
 
996
    'RELOAD',
 
997
    'RENAME',
 
998
    'REPAIR',
 
999
    'REPEAT',
 
1000
    'REPEATABLE',
 
1001
    'REPLACE',
 
1002
    'REPLICATION',
 
1003
    'REQUIRE',
 
1004
    'RESET',
 
1005
    'RESTORE',
 
1006
    'RESTRICT',
 
1007
    'RESUME',
 
1008
    'RETURN',
 
1009
    'RETURNS',
 
1010
    'REVOKE',
 
1011
    'RIGHT',
 
1012
    'RLIKE',
 
1013
    'ROLLBACK',
 
1014
    'ROLLUP',
 
1015
    'ROUTINE',
 
1016
    'ROW',
 
1017
    'ROWS',
 
1018
    'ROW_FORMAT',
 
1019
    'RTREE',
 
1020
    'SAVEPOINT',
 
1021
    'SCHEMA',
 
1022
    'SCHEMAS',
 
1023
    'SECOND',
 
1024
    'SECOND_MICROSECOND',
 
1025
    'SECURITY',
 
1026
    'SELECT',
 
1027
    'SENSITIVE',
 
1028
    'SEPARATOR',
 
1029
    'SERIAL',
 
1030
    'SERIALIZABLE',
 
1031
    'SESSION',
 
1032
    'SET',
 
1033
    'SHARE',
 
1034
    'SHOW',
 
1035
    'SHUTDOWN',
 
1036
    'SIGNED',
 
1037
    'SIMPLE',
 
1038
    'SLAVE',
 
1039
    'SMALLINT',
 
1040
    'SNAPSHOT',
 
1041
    'SOME',
 
1042
    'SONAME',
 
1043
    'SOUNDS',
 
1044
    'SPATIAL',
 
1045
    'SPECIFIC',
 
1046
    'SQL',
 
1047
    'SQLEXCEPTION',
 
1048
    'SQLSTATE',
 
1049
    'SQLWARNING',
 
1050
    'SQL_BIG_RESULT',
 
1051
    'SQL_BUFFER_RESULT',
 
1052
    'SQL_CACHE',
 
1053
    'SQL_CALC_FOUND_ROWS',
 
1054
    'SQL_NO_CACHE',
 
1055
    'SQL_SMALL_RESULT',
 
1056
    'SQL_THREAD',
 
1057
    'SQL_TSI_DAY',
 
1058
    'SQL_TSI_FRAC_SECOND',
 
1059
    'SQL_TSI_HOUR',
 
1060
    'SQL_TSI_MINUTE',
 
1061
    'SQL_TSI_MONTH',
 
1062
    'SQL_TSI_QUARTER',
 
1063
    'SQL_TSI_SECOND',
 
1064
    'SQL_TSI_WEEK',
 
1065
    'SQL_TSI_YEAR',
 
1066
    'SSL',
 
1067
    'START',
 
1068
    'STARTING',
 
1069
    'STATUS',
 
1070
    'STOP',
 
1071
    'STORAGE',
 
1072
    'STRAIGHT_JOIN',
 
1073
    'STRING',
 
1074
    'STRIPED',
 
1075
    'SUBJECT',
 
1076
    'SUPER',
 
1077
    'SUSPEND',
 
1078
    'TABLE',
 
1079
    'TABLES',
 
1080
    'TABLESPACE',
 
1081
    'TEMPORARY',
 
1082
    'TEMPTABLE',
 
1083
    'TERMINATED',
 
1084
    'TEXT',
 
1085
    'THEN',
 
1086
    'TIME',
 
1087
    'TIMESTAMP',
 
1088
    'TIMESTAMPADD',
 
1089
    'TIMESTAMPDIFF',
 
1090
    'TINYBLOB',
 
1091
    'TINYINT',
 
1092
    'TINYTEXT',
 
1093
    'TO',
 
1094
    'TRAILING',
 
1095
    'TRANSACTION',
 
1096
    'TRIGGER',
 
1097
    'TRIGGERS',
 
1098
    'TRUE',
 
1099
    'TRUNCATE',
 
1100
    'TYPE',
 
1101
    'TYPES',
 
1102
    'UNCOMMITTED',
 
1103
    'UNDEFINED',
 
1104
    'UNDO',
 
1105
    'UNICODE',
 
1106
    'UNION',
 
1107
    'UNIQUE',
 
1108
    'UNKNOWN',
 
1109
    'UNLOCK',
 
1110
    'UNSIGNED',
 
1111
    'UNTIL',
 
1112
    'UPDATE',
 
1113
    'USAGE',
 
1114
    'USE',
 
1115
    'USER',
 
1116
    'USER_RESOURCES',
 
1117
    'USE_FRM',
 
1118
    'USING',
 
1119
    'UTC_DATE',
 
1120
    'UTC_TIME',
 
1121
    'UTC_TIMESTAMP',
 
1122
    'VALUE',
 
1123
    'VALUES',
 
1124
    'VARBINARY',
 
1125
    'VARCHAR',
 
1126
    'VARCHARACTER',
 
1127
    'VARIABLES',
 
1128
    'VARYING',
 
1129
    'VIEW',
 
1130
    'WARNINGS',
 
1131
    'WEEK',
 
1132
    'WHEN',
 
1133
    'WHERE',
 
1134
    'WHILE',
 
1135
    'WITH',
 
1136
    'WORK',
 
1137
    'WRITE',
 
1138
    'X509',
 
1139
    'XA',
 
1140
    'XOR',
 
1141
    'YEAR',
 
1142
    'YEAR_MONTH',
 
1143
    'ZEROFILL'
 
1144
);
 
1145
// echo count($PMA_SQPdata_forbidden_word);
 
1146
$PMA_SQPdata_forbidden_word_cnt = 483;
 
1147
 
 
1148
$PMA_SQPdata_column_type = array (
 
1149
    'BIGINT',
 
1150
    'BINARY',
 
1151
    'BIT',
 
1152
    'BLOB',
 
1153
    'BOOL',
 
1154
    'BOOLEAN',                  // numeric-type-overview.html
 
1155
    'CHAR',
 
1156
    'CHARACTER',
 
1157
    'DATE',
 
1158
    'DATETIME',
 
1159
    'DEC',
 
1160
    'DECIMAL',
 
1161
    'DOUBLE',
 
1162
    'ENUM',
 
1163
    'FLOAT',
 
1164
    'FLOAT4',
 
1165
    'FLOAT8',
 
1166
    'GEOMETRY',             // spatial
 
1167
    'GEOMETRYCOLLECTION',   // spatial
 
1168
    'INT',
 
1169
    'INT1',
 
1170
    'INT2',
 
1171
    'INT3',
 
1172
    'INT4',
 
1173
    'INT8',
 
1174
    'INTEGER',
 
1175
    'LINESTRING',           // spatial
 
1176
    'LONG',
 
1177
    'LONGBLOB',
 
1178
    'LONGTEXT',
 
1179
    'MEDIUMBLOB',
 
1180
    'MEDIUMINT',
 
1181
    'MEDIUMTEXT',
 
1182
    'MIDDLEINT',
 
1183
    'MULTILINESTRING',      // spatial
 
1184
    'MULTIPOINT',           // spatial
 
1185
    'MULTIPOLYGON',         // spatial
 
1186
    'NCHAR',
 
1187
    'NUMERIC',
 
1188
    'POINT',                // spatial
 
1189
    'POLYGON',              // spatial
 
1190
    'REAL',
 
1191
    'SERIAL',               // alsias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
 
1192
    'SET',
 
1193
    'SMALLINT',
 
1194
    'TEXT',
 
1195
    'TIME',
 
1196
    'TIMESTAMP',
 
1197
    'TINYBLOB',
 
1198
    'TINYINT',
 
1199
    'TINYTEXT',
 
1200
    'VARBINARY',
 
1201
    'VARCHAR',
 
1202
    'YEAR'
 
1203
);
 
1204
//$PMA_SQPdata_column_type_cnt = count($PMA_SQPdata_column_type);
 
1205
$PMA_SQPdata_column_type_cnt = 54;
 
1206
 
 
1207
// check counts
 
1208
/*
 
1209
foreach ( $GLOBALS as $n => $a ) {
 
1210
    echo is_array( $a ) ? $n . ': ' . count( $a ) . '<br />' : '';
 
1211
}
 
1212
*/
 
1213
?>