package SQL::ReservedWords::DB2;
use strict;
use warnings;
use vars '$VERSION';
$VERSION = '0.8';
use constant DB2V5 => 0x01;
use constant DB2V6 => 0x02;
use constant DB2V7 => 0x04;
use constant DB2V8 => 0x08;
use constant DB2V9 => 0x10;
{
require Sub::Exporter;
my @exports = qw[
is_reserved
is_reserved_by_db2v5
is_reserved_by_db2v6
is_reserved_by_db2v7
is_reserved_by_db2v8
is_reserved_by_db2v9
reserved_by
words
];
Sub::Exporter->import( -setup => { exports => \@exports } );
}
{
my %WORDS = (
ACTIVATE => DB2V9,
ADD => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
AFTER => DB2V6 | DB2V7 | DB2V8 | DB2V9,
ALIAS => DB2V9,
ALL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ALLOCATE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ALLOW => DB2V6 | DB2V7 | DB2V8 | DB2V9,
ALTER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
AND => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ANY => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
AS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ASENSITIVE => DB2V8 | DB2V9,
ASSOCIATE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ASUTIME => DB2V6 | DB2V7 | DB2V8 | DB2V9,
AT => DB2V9,
ATTRIBUTES => DB2V9,
AUDIT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
AUTHORIZATION => DB2V9,
AUX => DB2V6 | DB2V7 | DB2V8 | DB2V9,
AUXILIARY => DB2V6 | DB2V7 | DB2V8 | DB2V9,
BEFORE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
BEGIN => DB2V6 | DB2V7 | DB2V8 | DB2V9,
BETWEEN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
BINARY => DB2V9,
BUFFERPOOL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
BY => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CACHE => DB2V9,
CALL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CALLED => DB2V9,
CAPTURE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CARDINALITY => DB2V9,
CASCADED => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CASE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CAST => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CCSID => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CHAR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CHARACTER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CHECK => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CLONE => DB2V9,
CLOSE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CLUSTER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
COLLECTION => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
COLLID => DB2V6 | DB2V7 | DB2V8 | DB2V9,
COLUMN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
COMMENT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
COMMIT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONCAT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONDITION => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONNECT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONNECTION => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONSTRAINT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONTAINS => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CONTINUE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
COUNT => DB2V5 | DB2V9,
COUNT_BIG => DB2V9,
CREATE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CROSS => DB2V9,
CURRENT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CURRENT_DATE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CURRENT_LC_CTYPE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CURRENT_PATH => DB2V6 | DB2V7 | DB2V8 | DB2V9,
CURRENT_SCHEMA => DB2V9,
CURRENT_SERVER => DB2V9,
CURRENT_TIME => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CURRENT_TIMESTAMP => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CURRENT_TIMEZONE => DB2V9,
CURRENT_USER => DB2V9,
CURSOR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
CYCLE => DB2V9,
DATA => DB2V6 | DB2V7 | DB2V8 | DB2V9,
DATABASE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DATAPARTITIONNAME => DB2V9,
DATAPARTITIONNUM => DB2V9,
DATE => DB2V9,
DAY => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DAYS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DB2GENERAL => DB2V9,
DB2GENRL => DB2V9,
DB2SQL => DB2V6 | DB2V7 | DB2V9,
DBINFO => DB2V6 | DB2V7 | DB2V8 | DB2V9,
DBPARTITIONNAME => DB2V9,
DBPARTITIONNUM => DB2V9,
DEALLOCATE => DB2V9,
DECLARE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
DEFAULT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DEFAULTS => DB2V9,
DEFINITION => DB2V9,
DELETE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DENSE_RANK => DB2V9,
DENSERANK => DB2V9,
DESCRIBE => DB2V9,
DESCRIPTOR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DETERMINISTIC => DB2V6 | DB2V7 | DB2V8 | DB2V9,
DIAGNOSTICS => DB2V9,
DISABLE => DB2V9,
DISALLOW => DB2V6 | DB2V7 | DB2V8 | DB2V9,
DISCONNECT => DB2V9,
DISTINCT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DOCUMENT => DB2V9,
DOUBLE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DROP => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
DSNHATTR => DB2V7,
DSSIZE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
DYNAMIC => DB2V6 | DB2V7 | DB2V8 | DB2V9,
EACH => DB2V9,
EDITPROC => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ELSE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ELSEIF => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ENABLE => DB2V9,
ENCODING => DB2V7 | DB2V8 | DB2V9,
ENCRYPTION => DB2V8 | DB2V9,
END => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ENDING => DB2V8 | DB2V9,
ERASE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ESCAPE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
EVERY => DB2V9,
EXCEPT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
EXCEPTION => DB2V8 | DB2V9,
EXCLUDING => DB2V9,
EXCLUSIVE => DB2V9,
EXECUTE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
EXISTS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
EXIT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
EXPLAIN => DB2V8 | DB2V9,
EXTERNAL => DB2V6 | DB2V7 | DB2V8 | DB2V9,
EXTRACT => DB2V9,
FENCED => DB2V6 | DB2V7 | DB2V8 | DB2V9,
FETCH => DB2V6 | DB2V7 | DB2V8 | DB2V9,
FIELDPROC => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
FILE => DB2V9,
FINAL => DB2V6 | DB2V7 | DB2V8 | DB2V9,
FOR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
FOREIGN => DB2V9,
FREE => DB2V8 | DB2V9,
FROM => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
FULL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
FUNCTION => DB2V6 | DB2V7 | DB2V8 | DB2V9,
GENERAL => DB2V6 | DB2V7 | DB2V9,
GENERATED => DB2V6 | DB2V7 | DB2V8 | DB2V9,
GET => DB2V6 | DB2V7 | DB2V8 | DB2V9,
GLOBAL => DB2V6 | DB2V7 | DB2V8 | DB2V9,
GO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
GOTO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
GRANT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
GRAPHIC => DB2V9,
GROUP => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
HANDLER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
HASH => DB2V9,
HASHED_VALUE => DB2V9,
HAVING => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
HINT => DB2V9,
HOLD => DB2V8 | DB2V9,
HOUR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
HOURS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
IDENTITY => DB2V9,
IF => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
IMMEDIATE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
IN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
INCLUDING => DB2V9,
INCLUSIVE => DB2V8 | DB2V9,
INCREMENT => DB2V9,
INDEX => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
INDICATOR => DB2V9,
INF => DB2V9,
INFINITY => DB2V9,
INHERIT => DB2V7 | DB2V8 | DB2V9,
INNER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
INOUT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
INSENSITIVE => DB2V7 | DB2V8 | DB2V9,
INSERT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
INTEGRITY => DB2V9,
INTERSECT => DB2V9,
INTO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
IS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ISOBID => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ISOLATION => DB2V9,
ITERATE => DB2V8 | DB2V9,
JAR => DB2V7 | DB2V8 | DB2V9,
JAVA => DB2V6 | DB2V7 | DB2V9,
JOIN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
KEEP => DB2V9,
KEY => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LABEL => DB2V6 | DB2V7 | DB2V8 | DB2V9,
LANGUAGE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
LATERAL => DB2V9,
LC_CTYPE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
LEAVE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LEFT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LIKE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LINKTYPE => DB2V9,
LOCAL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOCALDATE => DB2V9,
LOCALE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOCALTIME => DB2V9,
LOCALTIMESTAMP => DB2V9,
LOCATOR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOCATORS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOCK => DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOCKMAX => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOCKSIZE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
LONG => DB2V6 | DB2V7 | DB2V8 | DB2V9,
LOOP => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
MAINTAINED => DB2V8 | DB2V9,
MATERIALIZED => DB2V8 | DB2V9,
MAXVALUE => DB2V9,
MICROSECOND => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
MICROSECONDS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
MINUTE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
MINUTES => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
MINVALUE => DB2V9,
MODE => DB2V9,
MODIFIES => DB2V6 | DB2V7 | DB2V8 | DB2V9,
MONTH => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
MONTHS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
NAN => DB2V9,
NEW => DB2V9,
NEW_TABLE => DB2V9,
NEXTVAL => DB2V8 | DB2V9,
NO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
NOCACHE => DB2V9,
NOCYCLE => DB2V9,
NODENAME => DB2V9,
NODENUMBER => DB2V9,
NOMAXVALUE => DB2V9,
NOMINVALUE => DB2V9,
NONE => DB2V8 | DB2V9,
NOORDER => DB2V9,
NORMALIZED => DB2V9,
NOT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
NULL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
NULLS => DB2V6 | DB2V7 | DB2V8 | DB2V9,
NUMPARTS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OBID => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OF => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OLD => DB2V9,
OLD_TABLE => DB2V9,
ON => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OPEN => DB2V6 | DB2V7 | DB2V8 | DB2V9,
OPTIMIZATION => DB2V6 | DB2V7 | DB2V8 | DB2V9,
OPTIMIZE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OPTION => DB2V9,
OR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ORDER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OUT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OUTER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
OVER => DB2V9,
OVERRIDING => DB2V9,
PACKAGE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PADDED => DB2V8 | DB2V9,
PAGESIZE => DB2V9,
PARAMETER => DB2V6 | DB2V7 | DB2V8 | DB2V9,
PART => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PARTITION => DB2V8 | DB2V9,
PARTITIONED => DB2V8 | DB2V9,
PARTITIONING => DB2V8 | DB2V9,
PARTITIONS => DB2V9,
PASSWORD => DB2V9,
PATH => DB2V6 | DB2V7 | DB2V8 | DB2V9,
PIECESIZE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PLAN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
POSITION => DB2V9,
PRECISION => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PREPARE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
PREVVAL => DB2V8 | DB2V9,
PRIMARY => DB2V9,
PRIQTY => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PRIVILEGES => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PROCEDURE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PROGRAM => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PSID => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
PUBLIC => DB2V9,
QUERY => DB2V8 | DB2V9,
QUERYNO => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RANGE => DB2V9,
RANK => DB2V9,
READ => DB2V9,
READS => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RECOVERY => DB2V9,
REFERENCES => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
REFERENCING => DB2V9,
REFRESH => DB2V8 | DB2V9,
RELEASE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RENAME => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
REPEAT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
RESET => DB2V9,
RESIGNAL => DB2V8 | DB2V9,
RESTART => DB2V9,
RESTRICT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RESULT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RESULT_SET_LOCATOR => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RETURN => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RETURNS => DB2V6 | DB2V7 | DB2V8 | DB2V9,
REVOKE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
RIGHT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
ROLE => DB2V9,
ROLLBACK => DB2V6 | DB2V7 | DB2V8 | DB2V9,
ROUND_CEILING => DB2V9,
ROUND_DOWN => DB2V9,
ROUND_FLOOR => DB2V9,
ROUND_HALF_DOWN => DB2V9,
ROUND_HALF_EVEN => DB2V9,
ROUND_HALF_UP => DB2V9,
ROUND_UP => DB2V9,
ROUTINE => DB2V9,
ROW => DB2V9,
ROW_NUMBER => DB2V9,
ROWNUMBER => DB2V9,
ROWS => DB2V9,
ROWSET => DB2V8 | DB2V9,
RRN => DB2V9,
RUN => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SAVEPOINT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SCHEMA => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SCRATCHPAD => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SCROLL => DB2V9,
SEARCH => DB2V9,
SECOND => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SECONDS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SECQTY => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SECURITY => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SELECT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SENSITIVE => DB2V7 | DB2V8 | DB2V9,
SEQUENCE => DB2V8 | DB2V9,
SESSION => DB2V9,
SESSION_USER => DB2V9,
SET => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SIGNAL => DB2V8 | DB2V9,
SIMPLE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SNAN => DB2V9,
SOME => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SOURCE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SPECIFIC => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SQL => DB2V9,
SQLID => DB2V9,
STACKED => DB2V9,
STANDARD => DB2V6 | DB2V7 | DB2V8 | DB2V9,
START => DB2V9,
STARTING => DB2V9,
STATEMENT => DB2V9,
STATIC => DB2V7 | DB2V8 | DB2V9,
STATMENT => DB2V9,
STAY => DB2V6 | DB2V7 | DB2V8 | DB2V9,
STOGROUP => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
STORES => DB2V6 | DB2V7 | DB2V8 | DB2V9,
STYLE => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SUBPAGES => DB2V5 | DB2V6 | DB2V7,
SUBSTRING => DB2V9,
SUMMARY => DB2V8 | DB2V9,
SYNONYM => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
SYSFUN => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SYSIBM => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SYSPROC => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SYSTEM => DB2V6 | DB2V7 | DB2V8 | DB2V9,
SYSTEM_USER => DB2V9,
TABLE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
TABLESPACE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
THEN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
TIME => DB2V9,
TIMESTAMP => DB2V9,
TO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
TRANSACTION => DB2V9,
TRIGGER => DB2V6 | DB2V7 | DB2V8 | DB2V9,
TRIM => DB2V9,
TRUNCATE => DB2V9,
TYPE => DB2V9,
UNDO => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
UNION => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
UNIQUE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
UNTIL => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
UPDATE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
USAGE => DB2V9,
USER => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
USING => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
VALIDPROC => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
VALUE => DB2V8 | DB2V9,
VALUES => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
VARIABLE => DB2V8 | DB2V9,
VARIANT => DB2V6 | DB2V7 | DB2V8 | DB2V9,
VCAT => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
VERSION => DB2V9,
VIEW => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
VOLATILE => DB2V8 | DB2V9,
VOLUMES => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
WHEN => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
WHENEVER => DB2V8 | DB2V9,
WHERE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
WHILE => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
WITH => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
WITHOUT => DB2V9,
WLM => DB2V6 | DB2V7 | DB2V8 | DB2V9,
WRITE => DB2V9,
XMLELEMENT => DB2V8 | DB2V9,
XMLEXISTS => DB2V9,
XMLNAMESPACES => DB2V9,
YEAR => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9,
YEARS => DB2V5 | DB2V6 | DB2V7 | DB2V8 | DB2V9
);
sub is_reserved {
return $WORDS{ uc(pop || '') } || 0;
}
sub is_reserved_by_db2v5 {
return &is_reserved & DB2V5;
}
sub is_reserved_by_db2v6 {
return &is_reserved & DB2V6;
}
sub is_reserved_by_db2v7 {
return &is_reserved & DB2V7;
}
sub is_reserved_by_db2v8 {
return &is_reserved & DB2V8;
}
sub is_reserved_by_db2v9 {
return &is_reserved & DB2V9;
}
sub reserved_by {
my $flags = &is_reserved;
my @reserved_by = ();
push @reserved_by, 'DB2 5' if $flags & DB2V5;
push @reserved_by, 'DB2 6' if $flags & DB2V6;
push @reserved_by, 'DB2 7' if $flags & DB2V7;
push @reserved_by, 'DB2 8' if $flags & DB2V8;
push @reserved_by, 'DB2 9' if $flags & DB2V9;
return @reserved_by;
}
sub words {
return sort keys %WORDS;
}
}
1;
__END__
=head1 NAME
SQL::ReservedWords::DB2 - Reserved SQL words by DB2
=head1 SYNOPSIS
if ( SQL::ReservedWords::DB2->is_reserved( $word ) ) {
print "$word is a reserved DB2 word!";
}
=head1 DESCRIPTION
Determine if words are reserved by DB2.
=head1 METHODS
=over 4
=item is_reserved( $word )
Returns a boolean indicating if C<$word> is reserved by either DB2 5, 6, 7
or 8.
=item is_reserved_by_db2v5( $word )
Returns a boolean indicating if C<$word> is reserved by DB2 5.
=item is_reserved_by_db2v6( $word )
Returns a boolean indicating if C<$word> is reserved by DB2 6.
=item is_reserved_by_db2v7( $word )
Returns a boolean indicating if C<$word> is reserved by DB2 7.
=item is_reserved_by_db2v8( $word )
Returns a boolean indicating if C<$word> is reserved by DB2 8.
=item is_reserved_by_db2v9( $word )
Returns a boolean indicating if C<$word> is reserved by DB2 9.
=item reserved_by( $word )
Returns a list with DB2 versions that reserves C<$word>.
=item words
Returns a list with all reserved words.
=back
=head1 EXPORTS
Nothing by default. Following subroutines can be exported:
=over 4
=item is_reserved
=item is_reserved_by_db2v5
=item is_reserved_by_db2v6
=item is_reserved_by_db2v7
=item is_reserved_by_db2v8
=item is_reserved_by_db2v9
=item reserved_by
=item words
=back
=head1 SEE ALSO
L<SQL::ReservedWords>
L<http://www-306.ibm.com/software/data/db2/udb/>
=head1 AUTHOR
Christian Hansen C<[email protected]>
=head1 COPYRIGHT
This program is free software, you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut