FarragoSqlReservedWords

From Eigenpedia

Jump to: navigation, search

Farrago's parser has a list of reserved words; these must be double-quoted when used as identifiers rather than keywords. This is also inherited by extension projects such as LucidDB. To get an up to date list for a particular release, you can always use the JDBC driver's DatabaseMetaData.getSQLKeywords() method, but then you have to add on the list of SQL92 reserved words yourself.

Non-reserved keywords do not need to be double-quoted, and are not listed here.

Here is a snapshot of the combined reserved word list as of the 0.7.4 release. We try to avoid introducing new reserved words except when absolutely necessary, since that can break backwards compatibility with existing SQL statements containing unquoted identifiers. Some of the words in this list are preemptively reserved because they are declared as reserved by SQL:2003 or later, and we may eventually implement the corresponding features.

ABS
ABSOLUTE
ACTION
ADD
ALL
ALLOCATE
ALLOW
ALTER
ANALYZE
AND
ANY
ARE
ARRAY
AS
ASC
ASENSITIVE
ASSERTION
ASYMMETRIC
AT
ATOMIC
AUTHORIZATION
AVG
BEGIN
BETWEEN
BIGINT
BINARY
BIT
BIT_LENGTH
BLOB
BOOLEAN
BOTH
BY
CALL
CALLED
CARDINALITY
CASCADE
CASCADED
CASE
CAST
CATALOG
CEIL
CEILING
CHAR
CHARACTER
CHARACTER_LENGTH
CHAR_LENGTH
CHECK
CHECKPOINT
CLOB
CLOSE
CLUSTERED
COALESCE
COLLATE
COLLATION
COLLECT
COLUMN
COMMIT
CONDITION
CONNECT
CONNECTION
CONSTRAINT
CONSTRAINTS
CONTINUE
CONVERT
CORR
CORRESPONDING
COUNT
COVAR_POP
COVAR_SAMP
CREATE
CROSS
CUBE
CUME_DIST
CURRENT
CURRENT_DATE
CURRENT_DEFAULT_TRANSFORM_GROUP
CURRENT_PATH
CURRENT_ROLE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TRANSFORM_GROUP_FOR_TYPE
CURRENT_USER
CURSOR
CYCLE
DATE
DAY
DEALLOCATE
DEC
DECIMAL
DECLARE
DEFAULT
DEFERRABLE
DEFERRED
DELETE
DENSE_RANK
DEREF
DESC
DESCRIBE
DESCRIPTOR
DETERMINISTIC
DIAGNOSTICS
DISALLOW
DISCONNECT
DISTINCT
DOMAIN
DOUBLE
DROP
DYNAMIC
EACH
ELEMENT
ELSE
END
END-EXEC
ESCAPE
EVERY
EXCEPT
EXCEPTION
EXEC
EXECUTE
EXISTS
EXP
EXPLAIN
EXTERNAL
EXTRACT
FALSE
FETCH
FILTER
FIRST
FIRST_VALUE
FLOAT
FLOOR
FOR
FOREIGN
FOUND
FREE
FROM
FULL
FUNCTION
FUSION
GET
GLOBAL
GO
GOTO
GRANT
GROUP
GROUPING
HAVING
HOLD
HOUR
IDENTITY
IMMEDIATE
IMPORT
IN
INADD
INDICATOR
INITIALLY
INNER
INOUT
INSENSITIVE
INSERT
INT
INTEGER
INTERSECT
INTERSECTION
INTERVAL
INTO
IS
ISOLATION
JOIN
KEY
LANGUAGE
LARGE
LAST
LAST_VALUE
LATERAL
LEADING
LEFT
LEVEL
LIKE
LIMIT
LN
LOCAL
LOCALTIME
LOCALTIMESTAMP
LOWER
MATCH
MAX
MEMBER
MERGE
METHOD
MIN
MINUTE
MOD
MODIFIES
MODULE
MONTH
MULTISET
NAMES
NATIONAL
NATURAL
NCHAR
NCLOB
NEW
NEXT
NO
NONE
NORMALIZE
NOT
NULL
NULLIF
NUMERIC
OCTET_LENGTH
OF
OLD
ON
ONLY
OPEN
OPTION
OR
ORDER
OUT
OUTADD
OUTER
OVER
OVERLAPS
OVERLAY
PAD
PARAMETER
PARTIAL
PARTITION
PERCENTILE_CONT
PERCENTILE_DISC
PERCENT_RANK
POSITION
POWER
PRECISION
PREPARE
PRESERVE
PRIMARY
PRIOR
PRIVILEGES
PROCEDURE
PUBLIC
RANGE
RANK
READ
READS
REAL
RECURSIVE
REF
REFERENCES
REFERENCING
REGR_AVGX
REGR_AVGY
REGR_COUNT
REGR_INTERCEPT
REGR_R2
REGR_SLOPE
REGR_SXX
REGR_SXY
RELATIVE
RELEASE
RESTRICT
RESULT
RETURN
RETURNS
REVOKE
RIGHT
ROLLBACK
ROLLUP
ROW
ROW_NUMBER
ROWS
SAVEPOINT
SCHEMA
SCOPE
SCROLL
SEARCH
SECOND
SECTION
SELECT
SENSITIVE
SESSION
SESSION_USER
SET
SIMILAR
SIZE
SMALLINT
SOME
SPACE
SPECIFIC
SPECIFICTYPE
SQL
SQLCODE
SQLERROR
SQLEXCEPTION
SQLSTATE
SQLWARNING
SQRT
START
STATIC
STDDEV_POP
STDDEV_SAMP
SUBMULTISET
SUBSTRING
SUM
SYMMETRIC
SYSTEM
SYSTEM_USER
TABLE
TABLESAMPLE
TEMPORARY
THEN
TIME
TIMESTAMP
TIMEZONE_HOUR
TIMEZONE_MINUTE
TINYINT
TO
TRAILING
TRANSACTION
TRANSLATE
TRANSLATION
TREAT
TRIGGER
TRIM
TRUE
TRUNCATE
UESCAPE
UNION
UNIQUE
UNKNOWN
UNNEST
UPDATE
UPPER
USAGE
USER
USING
VALUE
VALUES
VARBINARY
VARCHAR
VAR_POP
VAR_SAMP
VARYING
VIEW
WHEN
WHENEVER
WHERE
WIDTH_BUCKET
WINDOW
WITH
WITHIN
WITHOUT
WORK
WRITE
YEAR
ZONE
Personal tools