Commit 8a46cc38 authored by ranger@regul.home.lan's avatar ranger@regul.home.lan

- Fix handling of suffix option

 - Replace function 'check_reserved_words' with correct one
parent 1b029282
...@@ -62,6 +62,7 @@ pem@mysql.com ...@@ -62,6 +62,7 @@ pem@mysql.com
peter@linux.local peter@linux.local
peter@mysql.com peter@mysql.com
ram@ram.(none) ram@ram.(none)
ranger@regul.home.lan
root@x3.internalnet root@x3.internalnet
salle@geopard.(none) salle@geopard.(none)
salle@geopard.online.bg salle@geopard.online.bg
......
...@@ -66,7 +66,7 @@ $retry_limit=3; ...@@ -66,7 +66,7 @@ $retry_limit=3;
GetOptions("Information","help","server=s","debug","user=s","password=s","database=s","restart","force","quick","log-all-queries","comment=s","host=s","fix-limit-file","dir=s","db-start-cmd=s","sleep=s","suffix=s","batch-mode","config-file=s","log-queries-to-file=s","check-server") || usage(); GetOptions("Information","help","server=s","debug","user=s","password=s","database=s","restart","force","quick","log-all-queries","comment=s","host=s","fix-limit-file","dir=s","db-start-cmd=s","sleep=s","suffix=s","batch-mode","config-file=s","log-queries-to-file=s","check-server") || usage();
usage() if ($opt_help || $opt_Information); usage() if ($opt_help || $opt_Information);
$opt_suffix = '-'.$opt_suffix if (length($opt_suffix) == 0); $opt_suffix = '-'.$opt_suffix if (length($opt_suffix) != 0);
$opt_config_file = "$pwd/$opt_dir/$opt_server$opt_suffix.cfg" if (length($opt_config_file) == 0); $opt_config_file = "$pwd/$opt_dir/$opt_server$opt_suffix.cfg" if (length($opt_config_file) == 0);
#!!! #!!!
...@@ -2726,221 +2726,221 @@ sub check_reserved_words ...@@ -2726,221 +2726,221 @@ sub check_reserved_words
my $answer, $prompt, $config, $keyword_type; my $answer, $prompt, $config, $keyword_type;
my @keywords_type = ( "(ANSI SQL 92/99)", "(ANSI SQL 92)", "(ANSI SQL 99)", "(EXTRA)"); my @keywords_ext = ( "ansi-92/99", "ansi92", "ansi99", "extra");
my @keywords_ext = ( "ansi92/99", "ansi92", "ansi99", "extra");
my %reserved_words = ( my %reserved_words = (
ABSOLUTE => 0, ACTION => 0, ADD => 0, 'ABSOLUTE' => 0, 'ACTION' => 0, 'ADD' => 0,
AFTER => 0, ALIAS => 0, ALL => 0, 'AFTER' => 0, 'ALIAS' => 0, 'ALL' => 0,
ALLOCATE => 0, ALTER => 0, AND => 0, 'ALLOCATE' => 0, 'ALTER' => 0, 'AND' => 0,
ANY => 0, ARE => 0, AS => 0, 'ANY' => 0, 'ARE' => 0, 'AS' => 0,
ASC => 0, ASSERTION => 0, AT => 0, 'ASC' => 0, 'ASSERTION' => 0, 'AT' => 0,
AUTHORIZATION => 0, BEFORE => 0, BEGIN => 0, 'AUTHORIZATION' => 0, 'BEFORE' => 0, 'BEGIN' => 0,
BIT => 0, BOOLEAN => 0, BOTH => 0, 'BIT' => 0, 'BOOLEAN' => 0, 'BOTH' => 0,
BREADTH => 0, BY => 0, CALL => 0, 'BREADTH' => 0, 'BY' => 0, 'CALL' => 0,
CASCADE => 0, CASCADED => 0, CASE => 0, 'CASCADE' => 0, 'CASCADED' => 0, 'CASE' => 0,
CAST => 0, CATALOG => 0, CHAR => 0, 'CAST' => 0, 'CATALOG' => 0, 'CHAR' => 0,
CHARACTER => 0, CHECK => 0, CLOSE => 0, 'CHARACTER' => 0, 'CHECK' => 0, 'CLOSE' => 0,
COLLATE => 0, COLLATION => 0, COLUMN => 0, 'COLLATE' => 0, 'COLLATION' => 0, 'COLUMN' => 0,
COMMIT => 0, COMPLETION => 0, CONNECT => 0, 'COMMIT' => 0, 'COMPLETION' => 0, 'CONNECT' => 0,
CONNECTION => 0, CONSTRAINT => 0, CONSTRAINTS => 0, 'CONNECTION' => 0, 'CONSTRAINT' => 0, 'CONSTRAINTS' => 0,
CONTINUE => 0, CORRESPONDING => 0, CREATE => 0, 'CONTINUE' => 0, 'CORRESPONDING' => 0, 'CREATE' => 0,
CROSS => 0, CURRENT => 0, CURRENT_DATE => 0, 'CROSS' => 0, 'CURRENT' => 0, 'CURRENT_DATE' => 0,
CURRENT_TIME => 0, CURRENT_TIMESTAMP => 0, CURRENT_USER => 0, 'CURRENT_TIME' => 0,'CURRENT_TIMESTAMP' => 0, 'CURRENT_USER' => 0,
CURSOR => 0, CYCLE => 0, DATA => 0, 'CURSOR' => 0, 'CYCLE' => 0, 'DATA' => 0,
DATE => 0, DAY => 0, DEALLOCATE => 0, 'DATE' => 0, 'DAY' => 0, 'DEALLOCATE' => 0,
DEC => 0, DECIMAL => 0, DECLARE => 0, 'DEC' => 0, 'DECIMAL' => 0, 'DECLARE' => 0,
DEFAULT => 0, DEFERRABLE => 0, DEFERRED => 0, 'DEFAULT' => 0, 'DEFERRABLE' => 0, 'DEFERRED' => 0,
DELETE => 0, DEPTH => 0, DESC => 0, 'DELETE' => 0, 'DEPTH' => 0, 'DESC' => 0,
DESCRIBE => 0, DESCRIPTOR => 0, DIAGNOSTICS => 0, 'DESCRIBE' => 0, 'DESCRIPTOR' => 0, 'DIAGNOSTICS' => 0,
DICTIONARY => 0, DISCONNECT => 0, DISTINCT => 0, 'DICTIONARY' => 0, 'DISCONNECT' => 0, 'DISTINCT' => 0,
DOMAIN => 0, DOUBLE => 0, DROP => 0, 'DOMAIN' => 0, 'DOUBLE' => 0, 'DROP' => 0,
EACH => 0, ELSE => 0, ELSEIF => 0, 'EACH' => 0, 'ELSE' => 0, 'ELSEIF' => 0,
END => 0, END-EXEC => 0, EQUALS => 0, 'END' => 0, 'END-EXEC' => 0, 'EQUALS' => 0,
ESCAPE => 0, EXCEPT => 0, EXCEPTION => 0, 'ESCAPE' => 0, 'EXCEPT' => 0, 'EXCEPTION' => 0,
EXEC => 0, EXECUTE => 0, EXTERNAL => 0, 'EXEC' => 0, 'EXECUTE' => 0, 'EXTERNAL' => 0,
FALSE => 0, FETCH => 0, FIRST => 0, 'FALSE' => 0, 'FETCH' => 0, 'FIRST' => 0,
FLOAT => 0, FOR => 0, FOREIGN => 0, 'FLOAT' => 0, 'FOR' => 0, 'FOREIGN' => 0,
FOUND => 0, FROM => 0, FULL => 0, 'FOUND' => 0, 'FROM' => 0, 'FULL' => 0,
GENERAL => 0, GET => 0, GLOBAL => 0, 'GENERAL' => 0, 'GET' => 0, 'GLOBAL' => 0,
GO => 0, GOTO => 0, GRANT => 0, 'GO' => 0, 'GOTO' => 0, 'GRANT' => 0,
GROUP => 0, HAVING => 0, HOUR => 0, 'GROUP' => 0, 'HAVING' => 0, 'HOUR' => 0,
IDENTITY => 0, IF => 0, IGNORE => 0, 'IDENTITY' => 0, 'IF' => 0, 'IGNORE' => 0,
IMMEDIATE => 0, IN => 0, INDICATOR => 0, 'IMMEDIATE' => 0, 'IN' => 0, 'INDICATOR' => 0,
INITIALLY => 0, INNER => 0, INPUT => 0, 'INITIALLY' => 0, 'INNER' => 0, 'INPUT' => 0,
INSERT => 0, INT => 0, INTEGER => 0, 'INSERT' => 0, 'INT' => 0, 'INTEGER' => 0,
INTERSECT => 0, INTERVAL => 0, INTO => 0, 'INTERSECT' => 0, 'INTERVAL' => 0, 'INTO' => 0,
IS => 0, ISOLATION => 0, JOIN => 0, 'IS' => 0, 'ISOLATION' => 0, 'JOIN' => 0,
KEY => 0, LANGUAGE => 0, LAST => 0, 'KEY' => 0, 'LANGUAGE' => 0, 'LAST' => 0,
LEADING => 0, LEAVE => 0, LEFT => 0, 'LEADING' => 0, 'LEAVE' => 0, 'LEFT' => 0,
LESS => 0, LEVEL => 0, LIKE => 0, 'LESS' => 0, 'LEVEL' => 0, 'LIKE' => 0,
LIMIT => 0, LOCAL => 0, LOOP => 0, 'LIMIT' => 0, 'LOCAL' => 0, 'LOOP' => 0,
MATCH => 0, MINUTE => 0, MODIFY => 0, 'MATCH' => 0, 'MINUTE' => 0, 'MODIFY' => 0,
MODULE => 0, MONTH => 0, NAMES => 0, 'MODULE' => 0, 'MONTH' => 0, 'NAMES' => 0,
NATIONAL => 0, NATURAL => 0, NCHAR => 0, 'NATIONAL' => 0, 'NATURAL' => 0, 'NCHAR' => 0,
NEW => 0, NEXT => 0, NO => 0, 'NEW' => 0, 'NEXT' => 0, 'NO' => 0,
NONE => 0, NOT => 0, NULL => 0, 'NONE' => 0, 'NOT' => 0, 'NULL' => 0,
NUMERIC => 0, OBJECT => 0, OF => 0, 'NUMERIC' => 0, 'OBJECT' => 0, 'OF' => 0,
OFF => 0, OLD => 0, ON => 0, 'OFF' => 0, 'OLD' => 0, 'ON' => 0,
ONLY => 0, OPEN => 0, OPERATION => 0, 'ONLY' => 0, 'OPEN' => 0, 'OPERATION' => 0,
OPTION => 0, OR => 0, ORDER => 0, 'OPTION' => 0, 'OR' => 0, 'ORDER' => 0,
OUTER => 0, OUTPUT => 0, PAD => 0, 'OUTER' => 0, 'OUTPUT' => 0, 'PAD' => 0,
PARAMETERS => 0, PARTIAL => 0, PRECISION => 0, 'PARAMETERS' => 0, 'PARTIAL' => 0, 'PRECISION' => 0,
PREORDER => 0, PREPARE => 0, PRESERVE => 0, 'PREORDER' => 0, 'PREPARE' => 0, 'PRESERVE' => 0,
PRIMARY => 0, PRIOR => 0, PRIVILEGES => 0, 'PRIMARY' => 0, 'PRIOR' => 0, 'PRIVILEGES' => 0,
PROCEDURE => 0, PUBLIC => 0, READ => 0, 'PROCEDURE' => 0, 'PUBLIC' => 0, 'READ' => 0,
REAL => 0, RECURSIVE => 0, REF => 0, 'REAL' => 0, 'RECURSIVE' => 0, 'REF' => 0,
REFERENCES => 0, REFERENCING => 0, RELATIVE => 0, 'REFERENCES' => 0, 'REFERENCING' => 0, 'RELATIVE' => 0,
RESIGNAL => 0, RESTRICT => 0, RETURN => 0, 'RESIGNAL' => 0, 'RESTRICT' => 0, 'RETURN' => 0,
RETURNS => 0, REVOKE => 0, RIGHT => 0, 'RETURNS' => 0, 'REVOKE' => 0, 'RIGHT' => 0,
ROLE => 0, ROLLBACK => 0, ROUTINE => 0, 'ROLE' => 0, 'ROLLBACK' => 0, 'ROUTINE' => 0,
ROW => 0, ROWS => 0, SAVEPOINT => 0, 'ROW' => 0, 'ROWS' => 0, 'SAVEPOINT' => 0,
SCHEMA => 0, SCROLL => 0, SEARCH => 0, 'SCHEMA' => 0, 'SCROLL' => 0, 'SEARCH' => 0,
SECOND => 0, SECTION => 0, SELECT => 0, 'SECOND' => 0, 'SECTION' => 0, 'SELECT' => 0,
SEQUENCE => 0, SESSION => 0, SESSION_USER => 0, 'SEQUENCE' => 0, 'SESSION' => 0, 'SESSION_USER' => 0,
SET => 0, SIGNAL => 0, SIZE => 0, 'SET' => 0, 'SIGNAL' => 0, 'SIZE' => 0,
SMALLINT => 0, SOME => 0, SPACE => 0, 'SMALLINT' => 0, 'SOME' => 0, 'SPACE' => 0,
SQL => 0, SQLEXCEPTION => 0, SQLSTATE => 0, 'SQL' => 0, 'SQLEXCEPTION' => 0, 'SQLSTATE' => 0,
SQLWARNING => 0, STRUCTURE => 0, SYSTEM_USER => 0, 'SQLWARNING' => 0, 'STRUCTURE' => 0, 'SYSTEM_USER' => 0,
TABLE => 0, TEMPORARY => 0, THEN => 0, 'TABLE' => 0, 'TEMPORARY' => 0, 'THEN' => 0,
TIME => 0, TIMESTAMP => 0, TIMEZONE_HOUR => 0, 'TIME' => 0, 'TIMESTAMP' => 0, 'TIMEZONE_HOUR' => 0,
TIMEZONE_MINUTE => 0, TO => 0, TRAILING => 0, 'TIMEZONE_MINUTE' => 0, 'TO' => 0, 'TRAILING' => 0,
TRANSACTION => 0, TRANSLATION => 0, TRIGGER => 0, 'TRANSACTION' => 0, 'TRANSLATION' => 0, 'TRIGGER' => 0,
TRUE => 0, UNDER => 0, UNION => 0, 'TRUE' => 0, 'UNDER' => 0, 'UNION' => 0,
UNIQUE => 0, UNKNOWN => 0, UPDATE => 0, 'UNIQUE' => 0, 'UNKNOWN' => 0, 'UPDATE' => 0,
USAGE => 0, USER => 0, USING => 0, 'USAGE' => 0, 'USER' => 0, 'USING' => 0,
VALUE => 0, VALUES => 0, VARCHAR => 0, 'VALUE' => 0, 'VALUES' => 0, 'VARCHAR' => 0,
VARIABLE => 0, VARYING => 0, VIEW => 0, 'VARIABLE' => 0, 'VARYING' => 0, 'VIEW' => 0,
WHEN => 0, WHENEVER => 0, WHERE => 0, 'WHEN' => 0, 'WHENEVER' => 0, 'WHERE' => 0,
WHILE => 0, WITH => 0, WITHOUT => 0, 'WHILE' => 0, 'WITH' => 0, 'WITHOUT' => 0,
WORK => 0, WRITE => 0, YEAR => 0, 'WORK' => 0, 'WRITE' => 0, 'YEAR' => 0,
ZONE => 0, 'ZONE' => 0,
ASYNC => 1, AVG => 1, BETWEEN => 1, 'ASYNC' => 1, 'AVG' => 1, 'BETWEEN' => 1,
BIT_LENGTH => 1, CHARACTER_LENGTH => 1, CHAR_LENGTH => 1, 'BIT_LENGTH' => 1,'CHARACTER_LENGTH' => 1, 'CHAR_LENGTH' => 1,
COALESCE => 1, CONVERT => 1, COUNT => 1, 'COALESCE' => 1, 'CONVERT' => 1, 'COUNT' => 1,
EXISTS => 1, EXTRACT => 1, INSENSITIVE => 1, 'EXISTS' => 1, 'EXTRACT' => 1, 'INSENSITIVE' => 1,
LOWER => 1, MAX => 1, MIN => 1, 'LOWER' => 1, 'MAX' => 1, 'MIN' => 1,
NULLIF => 1, OCTET_LENGTH => 1, OID => 1, 'NULLIF' => 1, 'OCTET_LENGTH' => 1, 'OID' => 1,
OPERATORS => 1, OTHERS => 1, OVERLAPS => 1, 'OPERATORS' => 1, 'OTHERS' => 1, 'OVERLAPS' => 1,
PENDANT => 1, POSITION => 1, PRIVATE => 1, 'PENDANT' => 1, 'POSITION' => 1, 'PRIVATE' => 1,
PROTECTED => 1, REPLACE => 1, SENSITIVE => 1, 'PROTECTED' => 1, 'REPLACE' => 1, 'SENSITIVE' => 1,
SIMILAR => 1, SQLCODE => 1, SQLERROR => 1, 'SIMILAR' => 1, 'SQLCODE' => 1, 'SQLERROR' => 1,
SUBSTRING => 1, SUM => 1, TEST => 1, 'SUBSTRING' => 1, 'SUM' => 1, 'TEST' => 1,
THERE => 1, TRANSLATE => 1, TRIM => 1, 'THERE' => 1, 'TRANSLATE' => 1, 'TRIM' => 1,
TYPE => 1, UPPER => 1, VIRTUAL => 1, 'TYPE' => 1, 'UPPER' => 1, 'VIRTUAL' => 1,
VISIBLE => 1, WAIT => 1, 'VISIBLE' => 1, 'WAIT' => 1,
ADMIN => 2, AGGREGATE => 2, ARRAY => 2, 'ADMIN' => 2, 'AGGREGATE' => 2, 'ARRAY' => 2,
BINARY => 2, BLOB => 2, CLASS => 2, 'BINARY' => 2, 'BLOB' => 2, 'CLASS' => 2,
CLOB => 2, CONDITION => 2, CONSTRUCTOR => 2, 'CLOB' => 2, 'CONDITION' => 2, 'CONSTRUCTOR' => 2,
CONTAINS => 2, CUBE => 2, CURRENT_PATH => 2, 'CONTAINS' => 2, 'CUBE' => 2, 'CURRENT_PATH' => 2,
CURRENT_ROLE => 2, DATALINK => 2, DEREF => 2, 'CURRENT_ROLE' => 2, 'DATALINK' => 2, 'DEREF' => 2,
DESTROY => 2, DESTRUCTOR => 2, DETERMINISTIC => 2, 'DESTROY' => 2, 'DESTRUCTOR' => 2, 'DETERMINISTIC' => 2,
DO => 2, DYNAMIC => 2, EVERY => 2, 'DO' => 2, 'DYNAMIC' => 2, 'EVERY' => 2,
EXIT => 2, EXPAND => 2, EXPANDING => 2, 'EXIT' => 2, 'EXPAND' => 2, 'EXPANDING' => 2,
FREE => 2, FUNCTION => 2, GROUPING => 2, 'FREE' => 2, 'FUNCTION' => 2, 'GROUPING' => 2,
HANDLER => 2, HAST => 2, HOST => 2, 'HANDLER' => 2, 'HAST' => 2, 'HOST' => 2,
INITIALIZE => 2, INOUT => 2, ITERATE => 2, 'INITIALIZE' => 2, 'INOUT' => 2, 'ITERATE' => 2,
LARGE => 2, LATERAL => 2, LOCALTIME => 2, 'LARGE' => 2, 'LATERAL' => 2, 'LOCALTIME' => 2,
LOCALTIMESTAMP => 2, LOCATOR => 2, MEETS => 2, 'LOCALTIMESTAMP' => 2, 'LOCATOR' => 2, 'MEETS' => 2,
MODIFIES => 2, NCLOB => 2, NORMALIZE => 2, 'MODIFIES' => 2, 'NCLOB' => 2, 'NORMALIZE' => 2,
ORDINALITY => 2, OUT => 2, PARAMETER => 2, 'ORDINALITY' => 2, 'OUT' => 2, 'PARAMETER' => 2,
PATH => 2, PERIOD => 2, POSTFIX => 2, 'PATH' => 2, 'PERIOD' => 2, 'POSTFIX' => 2,
PRECEDES => 2, PREFIX => 2, READS => 2, 'PRECEDES' => 2, 'PREFIX' => 2, 'READS' => 2,
REDO => 2, REPEAT => 2, RESULT => 2, 'REDO' => 2, 'REPEAT' => 2, 'RESULT' => 2,
ROLLUP => 2, SETS => 2, SPECIFIC => 2, 'ROLLUP' => 2, 'SETS' => 2, 'SPECIFIC' => 2,
SPECIFICTYPE => 2, START => 2, STATE => 2, 'SPECIFICTYPE' => 2, 'START' => 2, 'STATE' => 2,
STATIC => 2, SUCCEEDS => 2, TERMINATE => 2, 'STATIC' => 2, 'SUCCEEDS' => 2, 'TERMINATE' => 2,
THAN => 2, TREAT => 2, UNDO => 2, 'THAN' => 2, 'TREAT' => 2, 'UNDO' => 2,
UNTIL => 2, 'UNTIL' => 2,
ANALYZE => 3, AUTO_INCREMENT => 3, BDB => 3, 'ACCESS' => 3, 'ANALYZE' => 3, 'AUDIT' => 3,
BERKELEYDB => 3, BIGINT => 3, BTREE => 3, 'AUTO_INCREMENT' => 3, 'BACKUP' => 3, 'BDB' => 3,
CHANGE => 3, COLUMNS => 3, DATABASE => 3, 'BERKELEYDB' => 3, 'BIGINT' => 3, 'BREAK' => 3,
DATABASES => 3, DAY_HOUR => 3, DAY_MINUTE => 3, 'BROWSE' => 3, 'BTREE' => 3, 'BULK' => 3,
DAY_SECOND => 3, DELAYED => 3, DISTINCTROW => 3, 'CHANGE' => 3, 'CHECKPOINT' => 3, 'CLUSTER' => 3,
ENCLOSED => 3, ERRORS => 3, ESCAPED => 3, 'CLUSTERED' => 3, 'COLUMNS' => 3, 'COMMENT' => 3,
EXPLAIN => 3, FIELDS => 3, FULLTEXT => 3, 'COMPRESS' => 3, 'COMPUTE' => 3, 'CONTAINSTABLE' => 3,
GEOMETRY => 3, HASH => 3, HIGH_PRIORITY => 3, 'DATABASE' => 3, 'DATABASES' => 3, 'DAY_HOUR' => 3,
HOUR_MINUTE => 3, HOUR_SECOND => 3, INDEX => 3, 'DAY_MINUTE' => 3, 'DAY_SECOND' => 3, 'DBCC' => 3,
INFILE => 3, INNODB => 3, KEYS => 3, 'DELAYED' => 3, 'DENY' => 3, 'DISK' => 3,
KILL => 3, LINES => 3, LOAD => 3, 'DISTINCTROW' => 3, 'DISTRIBUTED' => 3, 'DUMMY' => 3,
LOCK => 3, LONG => 3, LONGBLOB => 3, 'DUMP' => 3, 'ENCLOSED' => 3, 'ERRLVL' => 3,
LONGTEXT => 3, LOW_PRIORITY => 3, MASTER_SERVER_ID => 3, 'ERRORS' => 3, 'ESCAPED' => 3, 'EXCLUSIVE' => 3,
MEDIUMBLOB => 3, MEDIUMINT => 3, MEDIUMTEXT => 3, 'EXPLAIN' => 3, 'FIELDS' => 3, 'FILE' => 3,
MIDDLEINT => 3, MINUTE_SECOND => 3, MRG_MYISAM => 3, 'FILLFACTOR' => 3, 'FREETEXT' => 3, 'FREETEXTTABLE' => 3,
OPTIMIZE => 3, OPTIONALLY => 3, OUTFILE => 3, 'FULLTEXT' => 3, 'GEOMETRY' => 3, 'HASH' => 3,
PURGE => 3, REGEXP => 3, RENAME => 3, 'HIGH_PRIORITY' => 3, 'HOLDLOCK' => 3, 'HOUR_MINUTE' => 3,
REQUIRE => 3, RLIKE => 3, RTREE => 3, 'HOUR_SECOND' => 3, 'IDENTIFIED' => 3, 'IDENTITYCOL' => 3,
SHOW => 3, SONAME => 3, SPATIAL => 3, 'IDENTITY_INSERT' => 3, 'INCREMENT' => 3, 'INDEX' => 3,
SQL_BIG_RESULT => 3,SQL_CALC_FOUND_ROWS => 3, SQL_SMALL_RESULT => 3, 'INFILE' => 3, 'INITIAL' => 3, 'INNODB' => 3,
SSL => 3, STARTING => 3, STRAIGHT_JOIN => 3, 'KEYS' => 3, 'KILL' => 3, 'LINENO' => 3,
STRIPED => 3, TABLES => 3, TERMINATED => 3, 'LINES' => 3, 'LOAD' => 3, 'LOCK' => 3,
TINYBLOB => 3, TINYINT => 3, TINYTEXT => 3, 'LONG' => 3, 'LONGBLOB' => 3, 'LONGTEXT' => 3,
TYPES => 3, UNLOCK => 3, UNSIGNED => 3, 'LOW_PRIORITY' => 3, 'MASTER_SERVER_ID' => 3, 'MAXEXTENTS' => 3,
USE => 3, USER_RESOURCES => 3, VARBINARY => 3, 'MEDIUMBLOB' => 3, 'MEDIUMINT' => 3, 'MEDIUMTEXT' => 3,
WARNINGS => 3, XOR => 3, YEAR_MONTH => 3, 'MIDDLEINT' => 3, 'MINUS' => 3, 'MINUTE_SECOND' => 3,
ZEROFILL => 3, 'MLSLABEL' => 3, 'MODE' => 3, 'MRG_MYISAM' => 3,
'NOAUDIT' => 3, 'NOCHECK' => 3, 'NOCOMPRESS' => 3,
BACKUP => 3, BREAK => 3, BROWSE => 3, 'NONCLUSTERED' => 3, 'NOWAIT' => 3, 'NUMBER' => 3,
BULK => 3, CHECKPOINT => 3, CLUSTERED => 3, 'OFFLINE' => 3, 'OFFSETS' => 3, 'ONLINE' => 3,
COMPUTE => 3, CONTAINSTABLE => 3, DBCC => 3, 'OPENDATASOURCE' => 3, 'OPENQUERY' => 3, 'OPENROWSET' => 3,
DENY => 3, DISK => 3, DISTRIBUTED => 3, 'OPENXML' => 3, 'OPTIMIZE' => 3, 'OPTIONALLY' => 3,
DUMMY => 3, DUMP => 3, ERRLVL => 3, 'OUTFILE' => 3, 'OVER' => 3, 'PCTFREE' => 3,
FILE => 3, FILLFACTOR => 3, FREETEXT => 3, 'PERCENT' => 3, 'PLAN' => 3, 'PRINT' => 3,
FREETEXTTABLE => 3, HOLDLOCK => 3, IDENTITYCOL => 3, 'PROC' => 3, 'PURGE' => 3, 'RAISERROR' => 3,
IDENTITY_INSERT => 3, LINENO => 3, NOCHECK => 3, 'RAW' => 3, 'READTEXT' => 3, 'RECONFIGURE' => 3,
NONCLUSTERED => 3, OFFSETS => 3, OPENDATASOURCE => 3, 'REGEXP' => 3, 'RENAME' => 3, 'REPLICATION' => 3,
OPENQUERY => 3, OPENROWSET => 3, OPENXML => 3, 'REQUIRE' => 3, 'RESOURCE' => 3, 'RESTORE' => 3,
OVER => 3, PERCENT => 3, PLAN => 3, 'RLIKE' => 3, 'ROWCOUNT' => 3, 'ROWGUIDCOL' => 3,
PRINT => 3, PROC => 3, RAISERROR => 3, 'ROWID' => 3, 'ROWNUM' => 3, 'RTREE' => 3,
READTEXT => 3, RECONFIGURE => 3, REPLICATION => 3, 'RULE' => 3, 'SAVE' => 3, 'SETUSER' => 3,
RESTORE => 3, ROWCOUNT => 3, ROWGUIDCOL => 3, 'SHARE' => 3, 'SHOW' => 3, 'SHUTDOWN' => 3,
RULE => 3, SAVE => 3, SETUSER => 3, 'SONAME' => 3, 'SPATIAL' => 3, 'SQL_BIG_RESULT' => 3,
SHUTDOWN => 3, STATISTICS => 3, TEXTSIZE => 3, 'SQL_CALC_FOUND_ROWS' => 3,'SQL_SMALL_RESULT' => 3, 'SSL' => 3,
TOP => 3, TRAN => 3, TRUNCATE => 3, 'STARTING' => 3, 'STATISTICS' => 3, 'STRAIGHT_JOIN' => 3,
TSEQUAL => 3, UPDATETEXT => 3, WAITFOR => 3, 'STRIPED' => 3, 'SUCCESSFUL' => 3, 'SYNONYM' => 3,
WRITETEXT => 3, 'SYSDATE' => 3, 'TABLES' => 3, 'TERMINATED' => 3,
'TEXTSIZE' => 3, 'TINYBLOB' => 3, 'TINYINT' => 3,
ACCESS => 3, AUDIT => 3, CLUSTER => 3, 'TINYTEXT' => 3, 'TOP' => 3, 'TRAN' => 3,
COMMENT => 3, COMPRESS => 3, EXCLUSIVE => 3, 'TRUNCATE' => 3, 'TSEQUAL' => 3, 'TYPES' => 3,
IDENTIFIED => 3, INCREMENT => 3, INITIAL => 3, 'UID' => 3, 'UNLOCK' => 3, 'UNSIGNED' => 3,
MAXEXTENTS => 3, MINUS => 3, MLSLABEL => 3, 'UPDATETEXT' => 3, 'USE' => 3, 'USER_RESOURCES' => 3,
MODE => 3, NOAUDIT => 3, NOCOMPRESS => 3, 'VALIDATE' => 3, 'VARBINARY' => 3, 'VARCHAR2' => 3,
NOWAIT => 3, NUMBER => 3, OFFLINE => 3, 'WAITFOR' => 3, 'WARNINGS' => 3, 'WRITETEXT' => 3,
ONLINE => 3, PCTFREE => 3, RAW => 3, 'XOR' => 3, 'YEAR_MONTH' => 3, 'ZEROFILL' => 3
RESOURCE => 3, ROWID => 3, ROWNUM => 3, );
SHARE => 3, SUCCESSFUL => 3, SYNONYM => 3,
SYSDATE => 3, UID => 3, VALIDATE => 3,
VARCHAR2 => 3
);
$dbh->do("drop table crash_me10"); $dbh->do("drop table crash_me10");
$dbh->do("create table crash_me10 (id int not null)") or warn "$dbh->errstr\n";
$dbh->{RaiseError}= 1;
foreach my $keyword (keys %reserved_words) foreach my $keyword (sort {$a cmp $b} keys %reserved_words)
{ {
$keyword_type= $reserved_words{$keyword}; $keyword_type= $reserved_words{$keyword};
$prompt= "Reserved keyword ".$keyword." ".$keywords_type[$keyword_type]; $prompt= "Keyword ".$keyword;
$config= "reserved_word_".$keywords_ext[$keyword_type]."_".lc($keyword); $config= "reserved_word_".$keywords_ext[$keyword_type]."_".lc($keyword);
$dbh->{RaiseError}= 1;
$answer= "yes";
eval { eval {
$dbh->do("alter table crash_me10 add column $keyword int not null"); $dbh->do("create table crash_me10 ($keyword int not null)");
}; };
$answer= ($@) ? "yes" : "no"; $dbh->{RaiseError}= 0;
if (!$@)
{
$answer= "no";
$dbh->do("drop table crash_me10");
}
save_config_data($config,$answer,$prompt); save_config_data($config,$answer,$prompt);
print "$prompt: ",$limits{$config},"\n"; print "$prompt: ",$limits{$config},"\n";
} }
$dbh->{RaiseError}= 0;
} }
# #
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment