Reserved words and keywords
Reserved words are part of the Firebird SQL language. They cannot be used as identifiers (e.g. as table or procedure names), except when enclosed in double quotes in Dialect 3. However, you should avoid this unless you have a compelling reason.
Keywords are also part of the language. They have a special meaning when used in the proper context, but they are not reserved for Firebird's own and exclusive use. You can use them as identifiers without double-quoting.
The following sections present the changes since InterBase 6. Full listings of Firebird 2.5 reserved words and keywords can be found in the Appendix?.
Added since InterBase® 6
Newly reserved words
The following reserved words have been added to Firebird:
BIGINT
BIT_LENGTH
BOTH
CASE
CLOSE
CONNECT
CROSS
CURRENT_CONNECTION
CURRENT_ROLE
CURRENT_TRANSACTION
CURRENT_USER
DISCONNECT
FETCH
GLOBAL
INSENSITIVE
LEADING
LOWER
OPEN
RECREATE
RECURSIVE
ROW_COUNT
ROWS
SAVEPOINT
SENSITIVE
SIMILAR
SQLSTATE (2.5.1)
START
TRAILING
TRIM
New non-reserved keywords
The following words have been added to Firebird as non-reserved keywords. More than half of them are names of internal functions added between 2.0 and 2.1.
ABS
ACCENT
ACOS
ALWAYS
-
-
ASIN
ATAN
ATAN2
AUTONOMOUS
BACKUP
BIN_AND
BIN_OR
BIN_NOT
BIN_SHL
BIN_SHR
BIN_XOR
BLOCK
BREAK
CALLER
CEIL
CEILING
CHAR_TO_UUID
COALESCE
COLLATION
COMMENT
COMMON
COS
COSH
COT
DATA
DATEADD
DATEDIFF
DECODE
DELETING
DIFFERENCE
EXP
FIRST
FIRSTNAME
FLOOR
GEN_UUID
GENERATED
GRANTED
HASH
IIF
INSERTING
LAST
LASTNAME
LEAVE
LIST
LN
LOCK
LOG
LOG10
LPAD
MAPPING
MATCHED
MATCHING
MAXVALUE
MIDDLENAME
MILLISECOND
MINVALUE
MOD
NEXT
NULLIF
NULLS
-
OVERLAY
PAD
PI
PLACING
POWER
PRESERVE
RAND
REPLACE
RESTART
RETURNING
REVERSE
ROUND
RPAD
SCALAR_ARRAY
SEQUENCE
SIGN
SIN
SINH
SKIP
SOURCE
SPACE
SQRT
SUBSTRING
TAN
TANH
TEMPORARY
TRUNC
TWO_PHASE
WEEK
UPDATING
UUID_TO_CHAR
Dropped since InterBase® 6
No longer reserved, still keywords
The following words are no longer reserved in Firebird 2.5, but are still recognized as keywords:
ACTION
ACTIVE
AFTER
ASC
ASCENDING
AUTO
BEFORE
CASCADE
COLLATION
COMMITTED
COMPUTED
CONDITIONAL
CONTAINING
CSTRING
DATABASE
DESC
DESCENDING
DESCRIPTOR
DO
DOMAIN
ENTRY_POINT
EXCEPTION
EXIT
FILE
FREE_IT
GEN_ID
GENERATOR
IF
INACTIVE
INPUT_TYPE
ISOLATION
KEY
LENGTH
LEVEL
MANUAL
MODULE_NAME
NAMES
OPTION
OUTPUT_TYPE
OVERFLOW
PAGE
PAGE_SIZE
PAGES
PASSWORD
PRIVILEGES
PROTECTED
READ
RESERV
RESERVING
RESTRICT
RETAIN
ROLE
SCHEMA
SEGMENT
SHADOW
SHARED
SINGULAR
SIZE
SNAPSHOT
SORT
STABILITY
STARTING
STARTS
STATEMENT
STATISTICS
SUB_TYPE
SUSPEND
TRANSACTION
TYPE
UNCOMMITTED
WAIT
WEEKDAY
WORK
WRITE
YEARDAY
No longer reserved, not keywords
The following words are no longer reserved in Firebird 2.5, and not keywords either:
AUTODDL
BASE_NAME
BASED
BASENAME
BLOBEDIT
BUFFER
CACHE
CHECK_POINT_LEN
CHECK_POINT_LENGTH
COMPILETIME
CONTINUE
DB_KEY
DEBUG
DESCRIBE
DISPLAY
ECHO
EDIT
EVENT
EXTERN
FOUND
GOTO
GROUP_COMMIT_
GROUP_COMMIT_WAIT
HELP
IMMEDIATE
INDICATOR
INIT
INPUT
ISQL
LC_MESSAGES
LC_TYPE
LEV
LOG_BUF_SIZE
LOG_BUFFER_SIZE
LOGFILE
MAX_SEGMENT
MAXIMUM
MESSAGE
MINIMUM
NOAUTO
NUM_LOG_BUFFERS
NUM_LOG_BUFS
OUTPUT
PAGELENGTH
PREPARE
PUBLIC
QUIT
RAW_PARTITIONS
RETURN
RUNTIME
SHELL
SHOW
SQLERROR
SQLWARNING
STATIC
TERMINATOR
TRANSLATE
TRANSLATION
VERSION
WAIT_TIME
WHENEVER
Some of these words still have a special meaning in ESQL and/or ISQL.
Possibly reserved in future versions
The following words are not reserved in Firebird 2.5, but are better avoided as identifiers because they will likely be reserved – or added as keywords – in future versions:
BOOLEAN
FALSE
TRUE
UNKNOWN