FarragoSqlReservedWords
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