Table A-1 lists all tokens that are key words in the SQL standard and in PostgreSQL 7.2.
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, there are several different classes of tokens ranging from those that can never be used as identifiers 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, or they can be used as column labels (as in SELECT 55 AS CHECK, even though CHECK is a reserved key word).
In Table A-1 in the column for PostgreSQL the key words that are classified as "non-reserved" are those that are explicitly known to the parser but are allowed in most or all contexts where an identifier is expected. The tokens labeled "reserved" are only allowed as column label names ("AS" clause) and perhaps in very few other contexts. The token AS is the only exception: it cannot even be used as a column label. If you get spurious parser errors for commands that contain any of the listed key words as an identifier you can quote the identifier to see if the problem goes away.
It is important to understand that in Table A-1 the fact that a key word is not reserved in PostgreSQL does not mean that the feature related to the key word is not implemented. Conversely, the presence of a key word does not necessarily indicate the existence of a feature.
Table A-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 (can be function) | non-reserved | reserved |
BINARY | reserved (can be function) | reserved | |
BIT | non-reserved (cannot be function or type) | 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 | non-reserved (cannot be function or type) | reserved | reserved |
CHARACTER | non-reserved (cannot be function or type) | 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 | non-reserved (cannot be function or type) | 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 (can be function) | 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 | non-reserved (cannot be function or type) | reserved | reserved |
DECIMAL | non-reserved (cannot be function or type) | 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 | ||
ENCRYPTED | 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 | non-reserved (cannot be function or type) | non-reserved | reserved |
EXPLAIN | reserved | ||
EXTERNAL | reserved | reserved | |
EXTRACT | non-reserved (cannot be function or type) | non-reserved | reserved |
FALSE | reserved | reserved | reserved |
FETCH | non-reserved | reserved | reserved |
FINAL | non-reserved | ||
FIRST | reserved | reserved | |
FLOAT | non-reserved (cannot be function or type) | 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 | ||
FREEZE | reserved (can be function) | ||
FROM | reserved | reserved | reserved |
FULL | reserved (can be function) | 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 (can be function) | ||
IMMEDIATE | non-reserved | reserved | reserved |
IMPLEMENTATION | non-reserved | ||
IN | reserved (can be function) | 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 (can be function) | 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 (cannot be function or type) | reserved | reserved |
INTO | reserved | reserved | reserved |
INVOKER | non-reserved | ||
IS | reserved (can be function) | reserved | reserved |
ISNULL | reserved (can be function) | ||
ISOLATION | non-reserved | reserved | reserved |
ITERATE | reserved | ||
JOIN | reserved (can be function) | 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 (can be function) | reserved | reserved |
LENGTH | non-reserved | non-reserved | |
LESS | reserved | ||
LEVEL | non-reserved | reserved | reserved |
LIKE | reserved (can be function) | 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 (can be function) | reserved | reserved |
NCHAR | non-reserved (cannot be function or type) | 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 (cannot be function or type) | reserved | |
NOT | reserved | reserved | reserved |
NOTHING | non-reserved | ||
NOTIFY | non-reserved | ||
NOTNULL | reserved (can be function) | ||
NULL | reserved | reserved | reserved |
NULLABLE | non-reserved | non-reserved | |
NULLIF | non-reserved (cannot be function or type) | non-reserved | reserved |
NUMBER | non-reserved | non-reserved | |
NUMERIC | non-reserved (cannot be function or type) | 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 (can be function) | reserved | reserved |
OUTPUT | reserved | reserved | |
OVERLAPS | reserved (can be function) | 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 | non-reserved (cannot be function or type) | 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 (can be function) | 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 | |
REPLACE | 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 (can be function) | 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 | |
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 | non-reserved (cannot be function or type) | ||
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 | ||
STATISTICS | non-reserved | ||
STDIN | non-reserved | ||
STDOUT | non-reserved | ||
STRUCTURE | reserved | ||
STYLE | non-reserved | ||
SUBCLASS_ORIGIN | non-reserved | non-reserved | |
SUBLIST | non-reserved | ||
SUBSTRING | non-reserved (cannot be function or type) | 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 (cannot be function or type) | reserved | reserved |
TIMESTAMP | non-reserved (cannot be function or type) | 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 | non-reserved (cannot be function or type) | 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 | ||
UNENCRYPTED | non-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 | non-reserved (cannot be function or type) | reserved | reserved |
VARIABLE | reserved | ||
VARYING | non-reserved | reserved | reserved |
VERBOSE | reserved (can be function) | ||
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 |