PostgreSQL 7.1.3 Documentation
Prev |  | Next

# Appendix B. SQL Key Words

Table B-1 lists all tokens that are key words in the SQL standard and in PostgreSQL 7.1.3. Background information can be found in Section 1.1.1.

SQL distinguishes between reserved and non-reserved key words. Reserved key words are the only real key words; they are never allowed as identifiers. Non-reserved key words only have a special meaning in particular contexts and can be used as identifiers in other contexts. Most non-reserved key words are actually the names of built-in tables and functions specified by SQL and the concept of non-reserved key words essentially only exists to declare that some predefined meaning is attached to a word in some contexts.

In the PostgreSQL parser life is a bit more complicated. There are several different classes of tokens ranging from those that can never be used as an identifier to those that have absolutely no special status in the parser as compared to an ordinary identifier. (The latter is usually the case for functions specified by SQL.) Most SQL reserved key words are not completely reserved in PostgreSQL, but can be used as column label (as in `SELECT 55 AS CHECK`, even though CHECK is a reserved key word).

In Table B-1 in the column for PostgreSQL we classify as "non-reserved" those key words that are explicitly known to the parser but are allowed in most or all contexts where an identifier is expected. Labeled "reserved" are those tokens that are only allowed as "AS" column label names (and perhaps in very few other contexts). The token AS is the only exception: it cannot even be used as a column label. As a general rule, if you get spurious parser errors for commands that contain any of the listed key words as an identifier you should try to quote the identifier to see if the problem goes away.

It is important to understand before studying Table B-1 that the fact that a key word is not reserved in PostgreSQL does not mean that the feature related to the word is not implemented. Conversely, the presence of a key word does not indicate the existence of a feature.

Table B-1. SQL Key Words

Key Word | PostgreSQL | SQL 99 | SQL 92
--- | --- | --- | ---
ABORT | reserved |  |
ABS |  | non-reserved |
ABSOLUTE | non-reserved | reserved | reserved
ACCESS | non-reserved |  |
ACTION | non-reserved | reserved | reserved
ADA |  | non-reserved | non-reserved
ADD | non-reserved | reserved | reserved
ADMIN |  | reserved |
AFTER | non-reserved | reserved |
AGGREGATE | non-reserved | reserved |
ALIAS |  | reserved |
ALL | reserved | reserved | reserved
ALLOCATE |  | reserved | reserved
ALTER | non-reserved | reserved | reserved
ANALYSE | reserved |  |
ANALYZE | reserved |  |
AND | reserved | reserved | reserved
ANY | reserved | reserved | reserved
ARE |  | reserved | reserved
ARRAY |  | reserved |
AS | reserved | reserved | reserved
ASC | reserved | reserved | reserved
ASENSITIVE |  | non-reserved |
ASSERTION |  | reserved | reserved
ASSIGNMENT |  | non-reserved |
ASYMMETRIC |  | non-reserved |
AT | non-reserved | reserved | reserved
ATOMIC |  | non-reserved |
AUTHORIZATION |  | reserved | reserved
AVG |  | non-reserved | reserved
BACKWARD | non-reserved |  |
BEFORE | non-reserved | reserved |
BEGIN | non-reserved | reserved | reserved
BETWEEN | reserved | non-reserved | reserved
BINARY | reserved | reserved |
BIT | reserved | reserved | reserved
BITVAR |  | non-reserved |
BIT_LENGTH |  | non-reserved | reserved
BLOB |  | reserved |
BOOLEAN |  | reserved |
BOTH | reserved | reserved | reserved
BREADTH |  | reserved |
BY | non-reserved | reserved | reserved
C |  | non-reserved | non-reserved
CACHE | non-reserved |  |
CALL |  | reserved |
CALLED |  | non-reserved |
CARDINALITY |  | non-reserved |
CASCADE | non-reserved | reserved | reserved
CASCADED |  | reserved | reserved
CASE | reserved | reserved | reserved
CAST | reserved | reserved | reserved
CATALOG |  | reserved | reserved
CATALOG_NAME |  | non-reserved | non-reserved
CHAIN | non-reserved | non-reserved |
CHAR | reserved | reserved | reserved
CHARACTER | reserved | reserved | reserved
CHARACTERISTICS | non-reserved |  |
CHARACTER_LENGTH |  | non-reserved | reserved
CHARACTER_SET_CATALOG |  | non-reserved | non-reserved
CHARACTER_SET_NAME |  | non-reserved | non-reserved
CHARACTER_SET_SCHEMA |  | non-reserved | non-reserved
CHAR_LENGTH |  | non-reserved | reserved
CHECK | reserved | reserved | reserved
CHECKED |  | non-reserved |
CHECKPOINT | non-reserved |  |
CLASS |  | reserved |
CLASS_ORIGIN |  | non-reserved | non-reserved
CLOB |  | reserved |
CLOSE | non-reserved | reserved | reserved
CLUSTER | reserved |  |
COALESCE | reserved | non-reserved | reserved
COBOL |  | non-reserved | non-reserved
COLLATE | reserved | reserved | reserved
COLLATION |  | reserved | reserved
COLLATION_CATALOG |  | non-reserved | non-reserved
COLLATION_NAME |  | non-reserved | non-reserved
COLLATION_SCHEMA |  | non-reserved | non-reserved
COLUMN | reserved | reserved | reserved
COLUMN_NAME |  | non-reserved | non-reserved
COMMAND_FUNCTION |  | non-reserved | non-reserved
COMMAND_FUNCTION_CODE |  | non-reserved |
COMMENT | non-reserved |  |
COMMIT | non-reserved | reserved | reserved
COMMITTED | non-reserved | non-reserved | non-reserved
COMPLETION |  | reserved |
CONDITION_NUMBER |  | non-reserved | non-reserved
CONNECT |  | reserved | reserved
CONNECTION |  | reserved | reserved
CONNECTION_NAME |  | non-reserved | non-reserved
CONSTRAINT | reserved | reserved | reserved
CONSTRAINTS | non-reserved | reserved | reserved
CONSTRAINT_CATALOG |  | non-reserved | non-reserved
CONSTRAINT_NAME |  | non-reserved | non-reserved
CONSTRAINT_SCHEMA |  | non-reserved | non-reserved
CONSTRUCTOR |  | reserved |
CONTAINS |  | non-reserved |
CONTINUE |  | reserved | reserved
CONVERT |  | non-reserved | reserved
COPY | reserved |  |
CORRESPONDING |  | reserved | reserved
COUNT |  | non-reserved | reserved
CREATE | non-reserved | reserved | reserved
CREATEDB | non-reserved |  |
CREATEUSER | non-reserved |  |
CROSS | reserved | reserved | reserved
CUBE |  | reserved |
CURRENT |  | reserved | reserved
CURRENT_DATE | reserved | reserved | reserved
CURRENT_PATH |  | reserved |
CURRENT_ROLE |  | reserved |
CURRENT_TIME | reserved | reserved | reserved
CURRENT_TIMESTAMP | reserved | reserved | reserved
CURRENT_USER | reserved | reserved | reserved
CURSOR | non-reserved | reserved | reserved
CURSOR_NAME |  | non-reserved | non-reserved
CYCLE | non-reserved | reserved |
DATA |  | reserved | non-reserved
DATABASE | non-reserved |  |
DATE |  | reserved | reserved
DATETIME_INTERVAL_CODE |  | non-reserved | non-reserved
DATETIME_INTERVAL_PRECISION |  | non-reserved | non-reserved
DAY | non-reserved | reserved | reserved
DEALLOCATE |  | reserved | reserved
DEC | reserved | reserved | reserved
DECIMAL | reserved | reserved | reserved
DECLARE | non-reserved | reserved | reserved
DEFAULT | reserved | reserved | reserved
DEFERRABLE | reserved | reserved | reserved
DEFERRED | non-reserved | reserved | reserved
DEFINED |  | non-reserved |
DEFINER |  | non-reserved |
DELETE | non-reserved | reserved | reserved
DELIMITERS | non-reserved |  |
DEPTH |  | reserved |
DEREF |  | reserved |
DESC | reserved | reserved | reserved
DESCRIBE |  | reserved | reserved
DESCRIPTOR |  | reserved | reserved
DESTROY |  | reserved |
DESTRUCTOR |  | reserved |
DETERMINISTIC |  | reserved |
DIAGNOSTICS |  | reserved | reserved
DICTIONARY |  | reserved |
DISCONNECT |  | reserved | reserved
DISPATCH |  | non-reserved |
DISTINCT | reserved | reserved | reserved
DO | reserved |  |
DOMAIN |  | reserved | reserved
DOUBLE | non-reserved | reserved | reserved
DROP | non-reserved | reserved | reserved
DYNAMIC |  | reserved |
DYNAMIC_FUNCTION |  | non-reserved | non-reserved
DYNAMIC_FUNCTION_CODE |  | non-reserved |
EACH | non-reserved | reserved |
ELSE | reserved | reserved | reserved
ENCODING | non-reserved |  |
END | reserved | reserved | reserved
END-EXEC |  | reserved | reserved
EQUALS |  | reserved |
ESCAPE | non-reserved | reserved | reserved
EVERY |  | reserved |
EXCEPT | reserved | reserved | reserved
EXCEPTION |  | reserved | reserved
EXCLUSIVE | non-reserved |  |
EXEC |  | reserved | reserved
EXECUTE | non-reserved | reserved | reserved
EXISTING |  | non-reserved |
EXISTS | reserved | non-reserved | reserved
EXPLAIN | reserved |  |
EXTEND | reserved |  |
EXTERNAL |  | reserved | reserved
EXTRACT | reserved | non-reserved | reserved
FALSE | reserved | reserved | reserved
FETCH | non-reserved | reserved | reserved
FINAL |  | non-reserved |
FIRST |  | reserved | reserved
FLOAT | reserved | reserved | reserved
FOR | reserved | reserved | reserved
FORCE | non-reserved |  |
FOREIGN | reserved | reserved | reserved
FORTRAN |  | non-reserved | non-reserved
FORWARD | non-reserved |  |
FOUND |  | reserved | reserved
FREE |  | reserved |
FROM | reserved | reserved | reserved
FULL | reserved | reserved | reserved
FUNCTION | non-reserved | reserved |
G |  | non-reserved |
GENERAL |  | reserved |
GENERATED |  | non-reserved |
GET |  | reserved | reserved
GLOBAL | reserved | reserved | reserved
GO |  | reserved | reserved
GOTO |  | reserved | reserved
GRANT | non-reserved | reserved | reserved
GRANTED |  | non-reserved |
GROUP | reserved | reserved | reserved
GROUPING |  | reserved |
HANDLER | non-reserved |  |
HAVING | reserved | reserved | reserved
HIERARCHY |  | non-reserved |
HOLD |  | non-reserved |
HOST |  | reserved |
HOUR | non-reserved | reserved | reserved
IDENTITY |  | reserved | reserved
IGNORE |  | reserved |
ILIKE | reserved |  |
IMMEDIATE | non-reserved | reserved | reserved
IMPLEMENTATION |  | non-reserved |
IN | reserved | reserved | reserved
INCREMENT | non-reserved |  |
INDEX | non-reserved |  |
INDICATOR |  | reserved | reserved
INFIX |  | non-reserved |
INHERITS | non-reserved |  |
INITIALIZE |  | reserved |
INITIALLY | reserved | reserved | reserved
INNER | reserved | reserved | reserved
INOUT | reserved | reserved |
INPUT |  | reserved | reserved
INSENSITIVE | non-reserved | non-reserved | reserved
INSERT | non-reserved | reserved | reserved
INSTANCE |  | non-reserved |
INSTANTIABLE |  | non-reserved |
INSTEAD | non-reserved |  |
INT |  | reserved | reserved
INTEGER |  | reserved | reserved
INTERSECT | reserved | reserved | reserved
INTERVAL | non-reserved | reserved | reserved
INTO | reserved | reserved | reserved
INVOKER |  | non-reserved |
IS | reserved | reserved | reserved
ISNULL | reserved |  |
ISOLATION | non-reserved | reserved | reserved
ITERATE |  | reserved |
JOIN | reserved | reserved | reserved
K |  | non-reserved |
KEY | non-reserved | reserved | reserved
KEY_MEMBER |  | non-reserved |
KEY_TYPE |  | non-reserved |
LANCOMPILER | non-reserved |  |
LANGUAGE | non-reserved | reserved | reserved
LARGE |  | reserved |
LAST |  | reserved | reserved
LATERAL |  | reserved |
LEADING | reserved | reserved | reserved
LEFT | reserved | reserved | reserved
LENGTH |  | non-reserved | non-reserved
LESS |  | reserved |
LEVEL | non-reserved | reserved | reserved
LIKE | reserved | reserved | reserved
LIMIT | reserved | reserved |
LISTEN | reserved |  |
LOAD | reserved |  |
LOCAL | reserved | reserved | reserved
LOCALTIME |  | reserved |
LOCALTIMESTAMP |  | reserved |
LOCATION | non-reserved |  |
LOCATOR |  | reserved |
LOCK | reserved |  |
LOWER |  | non-reserved | reserved
M |  | non-reserved |
MAP |  | reserved |
MATCH | non-reserved | reserved | reserved
MAX |  | non-reserved | reserved
MAXVALUE | non-reserved |  |
MESSAGE_LENGTH |  | non-reserved | non-reserved
MESSAGE_OCTET_LENGTH |  | non-reserved | non-reserved
MESSAGE_TEXT |  | non-reserved | non-reserved
METHOD |  | non-reserved |
MIN |  | non-reserved | reserved
MINUTE | non-reserved | reserved | reserved
MINVALUE | non-reserved |  |
MOD |  | non-reserved |
MODE | non-reserved |  |
MODIFIES |  | reserved |
MODIFY |  | reserved |
MODULE |  | reserved | reserved
MONTH | non-reserved | reserved | reserved
MORE |  | non-reserved | non-reserved
MOVE | reserved |  |
MUMPS |  | non-reserved | non-reserved
NAME |  | non-reserved | non-reserved
NAMES | non-reserved | reserved | reserved
NATIONAL | non-reserved | reserved | reserved
NATURAL | reserved | reserved | reserved
NCHAR | reserved | reserved | reserved
NCLOB |  | reserved |
NEW | reserved | reserved |
NEXT | non-reserved | reserved | reserved
NO | non-reserved | reserved | reserved
NOCREATEDB | non-reserved |  |
NOCREATEUSER | non-reserved |  |
NONE | non-reserved | reserved |
NOT | reserved | reserved | reserved
NOTHING | non-reserved |  |
NOTIFY | non-reserved |  |
NOTNULL | reserved |  |
NULL | reserved | reserved | reserved
NULLABLE |  | non-reserved | non-reserved
NULLIF | reserved | non-reserved | reserved
NUMBER |  | non-reserved | non-reserved
NUMERIC | reserved | reserved | reserved
OBJECT |  | reserved |
OCTET_LENGTH |  | non-reserved | reserved
OF | non-reserved | reserved | reserved
OFF | reserved | reserved |
OFFSET | reserved |  |
OIDS | non-reserved |  |
OLD | reserved | reserved |
ON | reserved | reserved | reserved
ONLY | reserved | reserved | reserved
OPEN |  | reserved | reserved
OPERATION |  | reserved |
OPERATOR | non-reserved |  |
OPTION | non-reserved | reserved | reserved
OPTIONS |  | non-reserved |
OR | reserved | reserved | reserved
ORDER | reserved | reserved | reserved
ORDINALITY |  | reserved |
OUT | reserved | reserved |
OUTER | reserved | reserved | reserved
OUTPUT |  | reserved | reserved
OVERLAPS | reserved | non-reserved | reserved
OVERLAY |  | non-reserved |
OVERRIDING |  | non-reserved |
OWNER | non-reserved |  |
PAD |  | reserved | reserved
PARAMETER |  | reserved |
PARAMETERS |  | reserved |
PARAMETER_MODE |  | non-reserved |
PARAMETER_NAME |  | non-reserved |
PARAMETER_ORDINAL_POSITION |  | non-reserved |
PARAMETER_SPECIFIC_CATALOG |  | non-reserved |
PARAMETER_SPECIFIC_NAME |  | non-reserved |
PARAMETER_SPECIFIC_SCHEMA |  | non-reserved |
PARTIAL | non-reserved | reserved | reserved
PASCAL |  | non-reserved | non-reserved
PASSWORD | non-reserved |  |
PATH | non-reserved | reserved |
PENDANT | non-reserved |  |
PLI |  | non-reserved | non-reserved
POSITION | reserved | non-reserved | reserved
POSTFIX |  | reserved |
PRECISION | reserved | reserved | reserved
PREFIX |  | reserved |
PREORDER |  | reserved |
PREPARE |  | reserved | reserved
PRESERVE |  | reserved | reserved
PRIMARY | reserved | reserved | reserved
PRIOR | non-reserved | reserved | reserved
PRIVILEGES | non-reserved | reserved | reserved
PROCEDURAL | non-reserved |  |
PROCEDURE | non-reserved | reserved | reserved
PUBLIC | reserved | reserved | reserved
READ | non-reserved | reserved | reserved
READS |  | reserved |
REAL |  | reserved | reserved
RECURSIVE |  | reserved |
REF |  | reserved |
REFERENCES | reserved | reserved | reserved
REFERENCING |  | reserved |
REINDEX | non-reserved |  |
RELATIVE | non-reserved | reserved | reserved
RENAME | non-reserved |  |
REPEATABLE |  | non-reserved | non-reserved
RESET | reserved |  |
RESTRICT | non-reserved | reserved | reserved
RESULT |  | reserved |
RETURN |  | reserved |
RETURNED_LENGTH |  | non-reserved | non-reserved
RETURNED_OCTET_LENGTH |  | non-reserved | non-reserved
RETURNED_SQLSTATE |  | non-reserved | non-reserved
RETURNS | non-reserved | reserved |
REVOKE | non-reserved | reserved | reserved
RIGHT | reserved | reserved | reserved
ROLE |  | reserved |
ROLLBACK | non-reserved | reserved | reserved
ROLLUP |  | reserved |
ROUTINE |  | reserved |
ROUTINE_CATALOG |  | non-reserved |
ROUTINE_NAME |  | non-reserved |
ROUTINE_SCHEMA |  | non-reserved |
ROW | non-reserved | reserved |
ROWS |  | reserved | reserved
ROW_COUNT |  | non-reserved | non-reserved
RULE | non-reserved |  |
SAVEPOINT |  | reserved |
SCALE |  | non-reserved | non-reserved
SCHEMA | non-reserved | reserved | reserved
SCHEMA_NAME |  | non-reserved | non-reserved
SCOPE |  | reserved |
SCROLL | non-reserved | reserved | reserved
SEARCH |  | reserved |
SECOND | non-reserved | reserved | reserved
SECTION |  | reserved | reserved
SECURITY |  | non-reserved |
SELECT | reserved | reserved | reserved
SELF |  | non-reserved |
SENSITIVE |  | non-reserved |
SEQUENCE | non-reserved | reserved |
SERIAL | non-reserved |  |
SERIALIZABLE | non-reserved | non-reserved | non-reserved
SERVER_NAME |  | non-reserved | non-reserved
SESSION | non-reserved | reserved | reserved
SESSION_USER | reserved | reserved | reserved
SET | non-reserved | reserved | reserved
SETOF | reserved |  |
SETS |  | reserved |
SHARE | non-reserved |  |
SHOW | reserved |  |
SIMILAR |  | non-reserved |
SIMPLE |  | non-reserved |
SIZE |  | reserved | reserved
SMALLINT |  | reserved | reserved
SOME | reserved | reserved | reserved
SOURCE |  | non-reserved |
SPACE |  | reserved | reserved
SPECIFIC |  | reserved |
SPECIFICTYPE |  | reserved |
SPECIFIC_NAME |  | non-reserved |
SQL |  | reserved | reserved
SQLCODE |  |  | reserved
SQLERROR |  |  | reserved
SQLEXCEPTION |  | reserved |
SQLSTATE |  | reserved | reserved
SQLWARNING |  | reserved |
START | non-reserved | reserved |
STATE |  | reserved |
STATEMENT | non-reserved | reserved |
STATIC |  | reserved |
STDIN | non-reserved |  |
STDOUT | non-reserved |  |
STRUCTURE |  | reserved |
STYLE |  | non-reserved |
SUBCLASS_ORIGIN |  | non-reserved | non-reserved
SUBLIST |  | non-reserved |
SUBSTRING | reserved | non-reserved | reserved
SUM |  | non-reserved | reserved
SYMMETRIC |  | non-reserved |
SYSID | non-reserved |  |
SYSTEM |  | non-reserved |
SYSTEM_USER |  | reserved | reserved
TABLE | reserved | reserved | reserved
TABLE_NAME |  | non-reserved | non-reserved
TEMP | non-reserved |  |
TEMPLATE | non-reserved |  |
TEMPORARY | non-reserved | reserved | reserved
TERMINATE |  | reserved |
THAN |  | reserved |
THEN | reserved | reserved | reserved
TIME | non-reserved | reserved | reserved
TIMESTAMP | non-reserved | reserved | reserved
TIMEZONE_HOUR | non-reserved | reserved | reserved
TIMEZONE_MINUTE | non-reserved | reserved | reserved
TO | reserved | reserved | reserved
TOAST | non-reserved |  |
TRAILING | reserved | reserved | reserved
TRANSACTION | reserved | reserved | reserved
TRANSACTIONS_COMMITTED |  | non-reserved |
TRANSACTIONS_ROLLED_BACK |  | non-reserved |
TRANSACTION_ACTIVE |  | non-reserved |
TRANSFORM |  | non-reserved |
TRANSFORMS |  | non-reserved |
TRANSLATE |  | non-reserved | reserved
TRANSLATION |  | reserved | reserved
TREAT |  | reserved |
TRIGGER | non-reserved | reserved |
TRIGGER_CATALOG |  | non-reserved |
TRIGGER_NAME |  | non-reserved |
TRIGGER_SCHEMA |  | non-reserved |
TRIM | reserved | non-reserved | reserved
TRUE | reserved | reserved | reserved
TRUNCATE | non-reserved |  |
TRUSTED | non-reserved |  |
TYPE | non-reserved | non-reserved | non-reserved
UNCOMMITTED |  | non-reserved | non-reserved
UNDER |  | reserved |
UNION | reserved | reserved | reserved
UNIQUE | reserved | reserved | reserved
UNKNOWN |  | reserved | reserved
UNLISTEN | non-reserved |  |
UNNAMED |  | non-reserved | non-reserved
UNNEST |  | reserved |
UNTIL | non-reserved |  |
UPDATE | non-reserved | reserved | reserved
UPPER |  | non-reserved | reserved
USAGE |  | reserved | reserved
USER | reserved | reserved | reserved
USER_DEFINED_TYPE_CATALOG |  | non-reserved |
USER_DEFINED_TYPE_NAME |  | non-reserved |
USER_DEFINED_TYPE_SCHEMA |  | non-reserved |
USING | reserved | reserved | reserved
VACUUM | reserved |  |
VALID | non-reserved |  |
VALUE |  | reserved | reserved
VALUES | non-reserved | reserved | reserved
VARCHAR | reserved | reserved | reserved
VARIABLE |  | reserved |
VARYING | non-reserved | reserved | reserved
VERBOSE | reserved |  |
VERSION | non-reserved |  |
VIEW | non-reserved | reserved | reserved
WHEN | reserved | reserved | reserved
WHENEVER |  | reserved | reserved
WHERE | reserved | reserved | reserved
WITH | non-reserved | reserved | reserved
WITHOUT | non-reserved | reserved |
WORK | non-reserved | reserved | reserved
WRITE |  | reserved | reserved
YEAR | non-reserved | reserved | reserved
ZONE | non-reserved | reserved | reserved

Prev | Home | Next
History of Units | Up | Bibliography