diff --git a/autotests/folding/test.sql.fold b/autotests/folding/test.sql.fold --- a/autotests/folding/test.sql.fold +++ b/autotests/folding/test.sql.fold @@ -4,3 +4,62 @@ SELECT * FROM stuff WHERE id = 'string'; select * from stuff where id < 0.42; Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL; + +CREATE TABLE Persons ( + ID int NOT NULL AUTO_INCREMENT, + LastName varchar(255) NOT NULL, + FirstName varchar(255), + Age int, + PRIMARY KEY (ID) + CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') +); + +SELECT column_name(s) +FROM table1 +FULL OUTER JOIN table2 ON table1.column_name = table2.column_name; + +SELECT * FROM Customers +WHERE City LIKE '[bsp]%'; + +SELECT Count(*) AS DistinctCountries +FROM (SELECT DISTINCT Country FROM Customers) +GROUP BY Country +HAVING COUNT(CustomerID) > 5 +ORDER BY COUNT(CustomerID) DESC; + +SELECT 'Customer' As Type, ContactName, City, Country +FROM Customers +UNION +SELECT 'Supplier', ContactName, City, Country +FROM Suppliers; + +SELECT COUNT(ProductID), AVG(Price) +FROM Products; + +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; +SET default_tablespace = ''; + +DROP TABLE IF EXISTS employees; + +ALTER TABLE ONLY employees + ADD CONSTRAINT fk_employees_employees FOREIGN KEY (reportsto) REFERENCES employees; + +CREATE VIEW [Current Product List] AS +SELECT ProductID, ProductName +FROM Products +WHERE Discontinued = No; + +SELECT * FROM [Current Product List]; + +SELECT * FROM [Category Sales For 1997] +WHERE CategoryName = 'Beverages'; + +begin +end +/ + / +/ u diff --git a/autotests/folding/test.sql_oracle.fold b/autotests/folding/test.sql_oracle.fold --- a/autotests/folding/test.sql_oracle.fold +++ b/autotests/folding/test.sql_oracle.fold @@ -10,6 +10,7 @@ nq'agdfgsdfgfhfghjfgh'f'f'sdfg'sdfg'dfg#a' dafdfadasfasdf; v_nchar := n'NCHAR STRING'; + if_n := 0; Q'#gdfgsdfgsdfgsdfgsdfg#' afgasasdfasdfasfasdfasdfasdfasdfsdf @@ -42,3 +43,12 @@ sdfdfsdf; end if; end; + +CREATE TABLE Persons ( + ID int NOT NULL, + LastName varchar(255) NOT NULL, + FirstName varchar(255), + Age int, + City varchar(255), + CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') +); diff --git a/autotests/html/test.sql.html b/autotests/html/test.sql.html --- a/autotests/html/test.sql.html +++ b/autotests/html/test.sql.html @@ -10,4 +10,63 @@ SELECT * FROM stuff WHERE id = 'string'; select * from stuff where id < 0.42; Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL; + +CREATE TABLE Persons ( + ID int NOT NULL AUTO_INCREMENT, + LastName varchar(255) NOT NULL, + FirstName varchar(255), + Age int, + PRIMARY KEY (ID) + CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') +); + +SELECT column_name(s) +FROM table1 +FULL OUTER JOIN table2 ON table1.column_name = table2.column_name; + +SELECT * FROM Customers +WHERE City LIKE '[bsp]%'; + +SELECT Count(*) AS DistinctCountries +FROM (SELECT DISTINCT Country FROM Customers) +GROUP BY Country +HAVING COUNT(CustomerID) > 5 +ORDER BY COUNT(CustomerID) DESC; + +SELECT 'Customer' As Type, ContactName, City, Country +FROM Customers +UNION +SELECT 'Supplier', ContactName, City, Country +FROM Suppliers; + +SELECT COUNT(ProductID), AVG(Price) +FROM Products; + +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; +SET default_tablespace = ''; + +DROP TABLE IF EXISTS employees; + +ALTER TABLE ONLY employees + ADD CONSTRAINT fk_employees_employees FOREIGN KEY (reportsto) REFERENCES employees; + +CREATE VIEW [Current Product List] AS +SELECT ProductID, ProductName +FROM Products +WHERE Discontinued = No; + +SELECT * FROM [Current Product List]; + +SELECT * FROM [Category Sales For 1997] +WHERE CategoryName = 'Beverages'; + +begin +end +/ + / +/ u diff --git a/autotests/html/test.sql_oracle.html b/autotests/html/test.sql_oracle.html --- a/autotests/html/test.sql_oracle.html +++ b/autotests/html/test.sql_oracle.html @@ -12,21 +12,22 @@ begin q'{adfasdf'sadfasdf j}'{' hkjhkhkjhkjh khlkhklj'fghdfghdfgh'hkjh'jkhkh'a' nQ'(asldflahsl;'dkjfhklsdfh)' - Nq'[asdasd;'asdasd'a]sd'asd'asasd]';11111111[1']; asdasdasdasd'errrrrrrrrrrrrrr-p + Nq'[asdasd;'asdasd'a]sd'asd'asasd]';11111111[1']; asdasdasdasd'errrrrrrrrrrrrrr-p nq'agdfgsdfgfhfghjfgh'f'f'sdfg'sdfg'dfg#a' dafdfadasfasdf; v_nchar := n'NCHAR STRING'; + if_n := 0; Q'#gdfgsdfgsdfgsdfgsdfg#' afgasasdfasdfasfasdfasdfasdfasdfsdf if sldfjsdj then case - when 1=1 then + when 1=1 then aslfjsldkfj; - when 2=2 then + when 2=2 then asdfg; else - null; + null; end case; if sdfjh then @@ -48,4 +49,13 @@ sdfdfsdf; end if; end; + +CREATE TABLE Persons ( + ID int NOT NULL, + LastName varchar(255) NOT NULL, + FirstName varchar(255), + Age int, + City varchar(255), + CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') +); diff --git a/autotests/input/test.sql b/autotests/input/test.sql --- a/autotests/input/test.sql +++ b/autotests/input/test.sql @@ -4,3 +4,62 @@ SELECT * FROM stuff WHERE id = 'string'; select * from stuff where id < 0.42; Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL; + +CREATE TABLE Persons ( + ID int NOT NULL AUTO_INCREMENT, + LastName varchar(255) NOT NULL, + FirstName varchar(255), + Age int, + PRIMARY KEY (ID) + CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') +); + +SELECT column_name(s) +FROM table1 +FULL OUTER JOIN table2 ON table1.column_name = table2.column_name; + +SELECT * FROM Customers +WHERE City LIKE '[bsp]%'; + +SELECT Count(*) AS DistinctCountries +FROM (SELECT DISTINCT Country FROM Customers) +GROUP BY Country +HAVING COUNT(CustomerID) > 5 +ORDER BY COUNT(CustomerID) DESC; + +SELECT 'Customer' As Type, ContactName, City, Country +FROM Customers +UNION +SELECT 'Supplier', ContactName, City, Country +FROM Suppliers; + +SELECT COUNT(ProductID), AVG(Price) +FROM Products; + +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; +SET default_tablespace = ''; + +DROP TABLE IF EXISTS employees; + +ALTER TABLE ONLY employees + ADD CONSTRAINT fk_employees_employees FOREIGN KEY (reportsto) REFERENCES employees; + +CREATE VIEW [Current Product List] AS +SELECT ProductID, ProductName +FROM Products +WHERE Discontinued = No; + +SELECT * FROM [Current Product List]; + +SELECT * FROM [Category Sales For 1997] +WHERE CategoryName = 'Beverages'; + +begin +end +/ + / +/ u diff --git a/autotests/input/test.sql_oracle b/autotests/input/test.sql_oracle --- a/autotests/input/test.sql_oracle +++ b/autotests/input/test.sql_oracle @@ -10,6 +10,7 @@ nq'agdfgsdfgfhfghjfgh'f'f'sdfg'sdfg'dfg#a' dafdfadasfasdf; v_nchar := n'NCHAR STRING'; + if_n := 0; Q'#gdfgsdfgsdfgsdfgsdfg#' afgasasdfasdfasfasdfasdfasdfasdfsdf @@ -42,3 +43,12 @@ sdfdfsdf; end if; end; + +CREATE TABLE Persons ( + ID int NOT NULL, + LastName varchar(255) NOT NULL, + FirstName varchar(255), + Age int, + City varchar(255), + CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') +); diff --git a/autotests/reference/test.sql.ref b/autotests/reference/test.sql.ref --- a/autotests/reference/test.sql.ref +++ b/autotests/reference/test.sql.ref @@ -3,4 +3,63 @@ CREATE TABLE stuff COLUMNS(col1 INT, col2 Varchar);
SELECT * FROM stuff WHERE id = 'string';
select * from stuff where id < 0.42;
-Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL;
+Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL;
+
+CREATE TABLE Persons (
+ ID int NOT NULL AUTO_INCREMENT,
+ LastName varchar(255) NOT NULL,
+ FirstName varchar(255),
+ Age int,
+ PRIMARY KEY (ID)
+ CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
+);
+
+SELECT column_name(s)
+FROM table1
+FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
+
+SELECT * FROM Customers
+WHERE City LIKE '[bsp]%';
+
+SELECT Count(*) AS DistinctCountries
+FROM (SELECT DISTINCT Country FROM Customers)
+GROUP BY Country
+HAVING COUNT(CustomerID) > 5
+ORDER BY COUNT(CustomerID) DESC;
+
+SELECT 'Customer' As Type, ContactName, City, Country
+FROM Customers
+UNION
+SELECT 'Supplier', ContactName, City, Country
+FROM Suppliers;
+
+SELECT COUNT(ProductID), AVG(Price)
+FROM Products;
+
+SET lock_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+SET default_tablespace = '';
+
+DROP TABLE IF EXISTS employees;
+
+ALTER TABLE ONLY employees
+ ADD CONSTRAINT fk_employees_employees FOREIGN KEY (reportsto) REFERENCES employees;
+
+CREATE VIEW [Current Product List] AS
+SELECT ProductID, ProductName
+FROM Products
+WHERE Discontinued = No;
+
+SELECT * FROM [Current Product List];
+
+SELECT * FROM [Category Sales For 1997]
+WHERE CategoryName = 'Beverages';
+
+begin
+end
+/
+ /
+/ u
diff --git a/autotests/reference/test.sql_oracle.ref b/autotests/reference/test.sql_oracle.ref --- a/autotests/reference/test.sql_oracle.ref +++ b/autotests/reference/test.sql_oracle.ref @@ -3,42 +3,52 @@
declare
v_nchar NCHAR(12);
-begin
+begin
q'{adfasdf'sadfasdf j}'{' hkjhkhkjhkjh khlkhklj'fghdfghdfgh'hkjh'jkhkh'a'
nQ'(asldflahsl;'dkjfhklsdfh)'
- Nq'[asdasd;'asdasd'a]sd'asd'asasd]';11111111[1']; asdasdasdasd'errrrrrrrrrrrrrr-p
+ Nq'[asdasd;'asdasd'a]sd'asd'asasd]';11111111[1']; asdasdasdasd'errrrrrrrrrrrrrr-p

nq'agdfgsdfgfhfghjfgh'f'f'sdfg'sdfg'dfg#a' dafdfadasfasdf;
v_nchar := n'NCHAR STRING';
+ if_n := 0;

Q'#gdfgsdfgsdfgsdfgsdfg#' afgasasdfasdfasfasdfasdfasdfasdfsdf

- if sldfjsdj then
- case
- when 1=1 then
+ if sldfjsdj then
+ case
+ when 1=1 then
aslfjsldkfj;
- when 2=2 then
+ when 2=2 then
asdfg;
- else
- null;
- end case;
+ else
+ null;
+ end case;

- if sdfjh then
- for i in 1 .. 2
- LOOP
+ if sdfjh then
+ for i in 1 .. 2
+ LOOP
dbms_output.put_line(q';ololo;');
- END Loop;
+ END Loop;

- while true
- loop
+ while true
+ loop
dbms_output.put_line('1111');
- end loop;
- end if;
+ end loop;
+ end if;
ksjfklasjd;
fklj;
- elsif
+ elsif
sdklfjsdklfj;
- else
+ else
sdfdfsdf;
- end if;
-end;
+ end if;
+end;
+
+CREATE TABLE Persons (
+ ID int NOT NULL,
+ LastName varchar(255) NOT NULL,
+ FirstName varchar(255),
+ Age int,
+ City varchar(255),
+ CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
+);
diff --git a/data/syntax/sql-mysql.xml b/data/syntax/sql-mysql.xml --- a/data/syntax/sql-mysql.xml +++ b/data/syntax/sql-mysql.xml @@ -6,25 +6,46 @@ modifications by Milian Wolff (mail@milianw.de) v3 fix comments by Gene Thomas --> - + + + BEGIN + CASE + DO + ELSE + ELSEIF + END + FOR + IF + LOOP + RETURN + THEN + WHEN + WHILE + + + AND + BETWEEN + IN + IS + LIKE + NOT + OR + ACCESS ADD ALL ALTER ANALYZE - AND AS ASC AUTO_INCREMENT BDB BERKELEYDB - BETWEEN BOTH BY CASCADE - CASE CHANGE @@ -43,47 +64,42 @@ DAY_MINUTE DAY_SECOND DEC + DECLARE DEFAULT DELAYED DELETE DESC DESCRIBE DISTINCT DISTINCTROW DROP - ELSE ENCLOSED ESCAPED EXISTS EXPLAIN FIELDS - FOR FOREIGN FROM FULLTEXT FUNCTION GRANT GROUP HAVING HIGH_PRIORITY - IF IGNORE - IN INDEX INFILE INNER INNODB INSERT INTERVAL INTO - IS JOIN KEY KEYS KILL LEADING LEFT - LIKE LIMIT LINES LOAD @@ -94,14 +110,12 @@ MRG_MYISAM NATIONAL NATURAL - NOT NULL NUMERIC ON OPTIMIZE OPTION OPTIONALLY - OR ORDER OUTER OUTFILE @@ -136,7 +150,6 @@ TABLE TABLES TERMINATED - THEN TO TRAILING TRUNCATE @@ -152,43 +165,22 @@ USING VALUES VARYING - WHEN - WHERE - WHILE WITH + WHERE WRITE XOR YEAR_MONTH ZEROFILL - - + - - - * - / - || - = - != - <> - < - <= - > - >= - ~= - ^= - := - => - ** - .. - ASCII BIN BIT_LENGTH CHAR CHARACTER_LENGTH CHAR_LENGTH + COALESCE CONCAT CONCAT_WS CONV @@ -397,10 +389,20 @@ - + - + + + + + + + + + + + @@ -416,7 +418,6 @@ - @@ -453,7 +454,9 @@ - + + + @@ -472,7 +475,7 @@ - + diff --git a/data/syntax/sql-oracle.xml b/data/syntax/sql-oracle.xml --- a/data/syntax/sql-oracle.xml +++ b/data/syntax/sql-oracle.xml @@ -1,8 +1,35 @@ - + + + BEGIN + CASE + ELSE + ELSIF + END + EXCEPTION + EXIT + LOOP + FOR + IF + RAISE + RETURN + RETURNING + THEN + WHEN + WHILE + + + AND + BETWEEN + IN + IS + LIKE + NOT + OR + ABORT ACCEPT @@ -29,22 +56,18 @@ ALWAYS ANALYZE ANCILLARY - AND AND_EQUAL ANTIJOIN ANY ANYSCHEMA APPEND - APPENDCHILDXML APPEND_VALUES APPLY ARCHIVE ARCHIVELOG ARRAY AS ASC - ASCII - ASCIISTR ASSEMBLY ASSOCIATE ASYNC @@ -68,10 +91,8 @@ BATCH BECOME BEFORE - BEGIN BEGIN_OUTLINE_DATA BEHALF - BETWEEN BIGFILE BIND_AWARE BINDING @@ -105,45 +126,32 @@ CACHE_TEMP_TABLE CALL CANCEL - CARDINALITY CASCADE - CASE - CAST CATEGORY - CEIL CELL_FLASH_CACHE CERTIFICATE CFILE CHAINED CHANGE CHANGE_DUPKEY_ERROR_INDEX - CHAR - CHARACTER CHAR_CS - CHARTOROWID CHECK CHECK_ACL_REWRITE CHECKPOINT CHILD CHOOSE - CHR CHUNK CLASS CLEAR CLONE CLOSE CLOSE_CACHED_OPEN_CURSORS CLUSTER - CLUSTER_ID CLUSTERING_FACTOR - CLUSTER_PROBABILITY - CLUSTER_SET - COALESCE COALESCE_SQ COARSE CO_AUTH_IND COLD - COLLECT COLUMN COLUMNAR COLUMN_AUTH_INDICATOR @@ -158,13 +166,11 @@ COMPILE COMPLETE COMPLIANCE - COMPOSE COMPOSITE COMPOSITE_LIMIT COMPOUND COMPRESS COMPUTE - CONCAT CONFIRM CONFORMING CONNECT @@ -183,24 +189,18 @@ CONSTANT CONSTRAINT CONSTRAINTS + CONTAINS CONTAINER CONTENT CONTENTS CONTEXT CONTINUE CONTROLFILE - CONVERT - CORR - CORR_K - CORR_S CORRUPTION CORRUPT_XID CORRUPT_XID_ALL COST COST_XML_QUERY_REWRITE - COUNT - COVAR_POP - COVAR_SAMP CPU_COSTING CPU_PER_CALL CPU_PER_SESSION @@ -213,36 +213,30 @@ CSCONVERT CUBE CUBE_GB - CUME_DIST CUME_DISTM CURRENT - CURRENT_DATE CURRENT_SCHEMA CURRENT_TIME - CURRENT_TIMESTAMP CURRENT_USER CURRENTV CURSOR CURSOR_SHARING_EXACT CURSOR_SPECIFIC_SEGMENT - CV CYCLE DANGLING DATA DATABASE DATABASE_DEFAULT DATAFILE DATAFILES DATAOBJNO - DATAOBJ_TO_PARTITION DATE DATE_MODE DAY DBA DBA_RECYCLEBIN DBMS_STATS DB_ROLE_CHANGE - DBTIMEZONE DB_VERSION DDL DEALLOCATE @@ -265,14 +259,11 @@ DEGREE DELAY DELETE - DELETEXML DEMAND DENSE_RANK DENSE_RANKM DEPENDENT - DEPTH DEQUEUE - DEREF DEREF_NO_REWRITE DESC DETACHED @@ -308,7 +299,6 @@ DROP_COLUMN DROP_GROUP DST_UPGRADE_INSERT_CONV - DUMP DYNAMIC DYNAMIC_SAMPLING DYNAMIC_SAMPLING_EST_CDN @@ -320,17 +310,12 @@ ELIMINATE_JOIN ELIMINATE_OBY ELIMINATE_OUTER_JOIN - ELSE - ELSIF EMPTY - EMPTY_BLOB - EMPTY_CLOB ENABLE ENABLE_PRESET ENCODING ENCRYPT ENCRYPTION - END END_OUTLINE_DATA ENFORCE ENFORCED @@ -357,8 +342,6 @@ EXECUTE EXEMPT EXISTS - EXISTSNODE - EXP EXPAND_GSET_TO_UNION EXPAND_TABLE EXPIRE @@ -372,8 +355,6 @@ EXTERNAL EXTERNALLY EXTRA - EXTRACT - EXTRACTVALUE FACILITY FACT FACTORIZE_JOIN @@ -383,9 +364,6 @@ FALSE FAST FBTSCAN - FEATURE_ID - FEATURE_SET - FEATURE_VALUE FILE FILESYSTEM_LIKE_LOGGING FILTER @@ -395,18 +373,15 @@ FIRST FIRSTM FIRST_ROWS - FIRST_VALUE FLAGGER FLASHBACK FLASH_CACHE FLOAT FLOB - FLOOR FLUSH FOLDER FOLLOWING FOLLOWS - FOR FORCE FORCE_XML_QUERY_REWRITE FOREIGN @@ -417,7 +392,6 @@ FREEPOOLS FRESH FROM - FROM_TZ FULL FUNCTION FUNCTIONS @@ -430,12 +404,8 @@ GLOBAL_NAME GLOBAL_TOPIC_ENABLED GRANT - GREATEST GROUP GROUP_BY - GROUP_ID - GROUPING - GROUPING_ID GROUPS GUARANTEE GUARANTEED @@ -448,7 +418,6 @@ HEADER HEAP HELP - HEXTORAW HEXTOREF HIDDEN HIDE @@ -466,15 +435,13 @@ IDENTITY IDGENERATORS IDLE_TIME - IF IGNORE IGNORE_OPTIM_EMBEDDED_HINTS IGNORE_ROW_ON_DUPKEY_INDEX IGNORE_WHERE_CLAUSE IMMEDIATE IMPACT IMPORT - IN INCLUDE INCLUDE_VERSION INCLUDING @@ -507,7 +474,6 @@ INDICATOR INFINITE INFORMATIONAL - INITCAP INITIAL INITIALIZED INITIALLY @@ -517,38 +483,23 @@ IN_MEMORY_METADATA INNER INSERT - INSERTCHILDXML - INSERTCHILDXMLAFTER - INSERTCHILDXMLBEFORE - INSERTXMLAFTER - INSERTXMLBEFORE INSTANCE INSTANCES INSTANTIABLE INSTANTLY INSTEAD - INSTR - INSTRB - INSTRC - INSTR2 - INSTR4 - INT - INTEGER INTERMEDIATE INTERNAL_CONVERT INTERNAL_USE INTERPRETED INTERSECT - INTERVAL INTO INVALIDATE INVISIBLE IN_XQUERY - IS ISOLATION ISOLATION_LEVEL ITERATE - ITERATION_NUMBER JAVA JOB JOIN @@ -560,53 +511,36 @@ KEYS KEYSIZE KILL - LAG - LAST - LAST_DAY - LAST_VALUE LATERAL LAYER LDAP_REGISTRATION LDAP_REGISTRATION_ENABLED LDAP_REG_SYNC_INTERVAL - LEAD LEADING - LEAST LEFT - LENGTH - LENGTHB - LENGTHC - LENGTH2 - LENGTH4 LESS LEVEL LEVELS LIBRARY LIFE LIFETIME - LIKE LIKEC LIKE_EXPAND LIKE2 LIKE4 LIMIT LINK LIST - LISTAGG - LN - LNNVL LOB LOBNVL LOBS LOCAL LOCAL_INDEXES LOCALTIME - LOCALTIMESTAMP LOCATION LOCATOR LOCK LOCKED - LOG LOGFILE LOGFILES LOGGING @@ -616,13 +550,8 @@ LOGOFF LOGON LONG - LOOP LOW - LOWER - LPAD - LTRIM MAIN - MAKE_REF MANAGE MANAGED MANAGEMENT @@ -632,7 +561,6 @@ MATCHED MATERIALIZE MATERIALIZED - MAX MAXARCHLOGS MAXDATAFILES MAXEXTENTS @@ -646,7 +574,6 @@ MAXVALUE MEASURE MEASURES - MEDIAN MEDIUM MEMBER MEMORY @@ -658,7 +585,6 @@ METHOD MIGRATE MIGRATION - MIN MINEXTENTS MINIMIZE MINIMUM @@ -671,7 +597,6 @@ MIRRORCOLD MIRRORHOT MLSLABEL - MOD MODE MODEL MODEL_COMPILE_SUBQUERY @@ -685,7 +610,6 @@ MONITOR MONITORING MONTH - MONTHS_BETWEEN MOUNT MOUNTPATH MOVE @@ -696,7 +620,6 @@ NAMED NAMESPACE NAN - NANVL NATIONAL NATIVE NATIVE_FULL_OUTER_JOIN @@ -722,14 +645,10 @@ NLJ_PREFETCH NLS_CALENDAR NLS_CHARACTERSET - NLS_CHARSET_DECL_LEN - NLS_CHARSET_ID - NLS_CHARSET_NAME NLS_COMP NLS_CURRENCY NLS_DATE_FORMAT NLS_DATE_LANGUAGE - NLS_INITCAP NLS_ISO_CURRENCY NL_SJ NLS_LANG @@ -739,7 +658,6 @@ NLS_NCHAR_CONV_EXCP NLS_NUMERIC_CHARACTERS NLS_SORT - NLSSORT NLS_SPECIAL_CHARS NLS_TERRITORY NLS_UPPER @@ -845,7 +763,6 @@ NO_SUBSTRB_PAD NO_SWAP_JOIN_INPUTS NOSWITCH - NOT NO_TEMP_TABLE NOTHING NOTIFICATION @@ -862,18 +779,11 @@ NO_XMLINDEX_REWRITE NO_XMLINDEX_REWRITE_IN_SELECT NO_XML_QUERY_REWRITE - NTH_VALUE - NTILE NULL - NULLIF NULLS NUMBER NUMERIC NUM_INDEX_KEYS - NUMTODSINTERVAL - NUMTOYMINTERVAL - NVL - NVL2 OBJECT OBJECTTOXML OBJNO @@ -904,16 +814,11 @@ OPTIMIZER_GOAL OPTION OPT_PARAM - OR ORA_BRANCH ORA_CHECKACL ORADEBUG - ORA_DST_AFFECTED - ORA_DST_CONVERT - ORA_DST_ERROR ORA_GET_ACLIDS ORA_GET_PRIVILEGES - ORA_HASH ORA_ROWSCN ORA_ROWSCN_RAW ORA_ROWVERSION @@ -961,7 +866,6 @@ PASSWORD_REUSE_MAX PASSWORD_REUSE_TIME PASSWORD_VERIFY_FUNCTION - PATH PATHS PBL_HS_BEGIN PBL_HS_END @@ -974,7 +878,6 @@ PERCENT PERCENTILE_CONT PERCENTILE_DISC - PERCENT_RANK PERCENT_RANKM PERFORMANCE PERMANENT @@ -997,9 +900,6 @@ POINT POLICY POST_TRANSACTION - POWER - POWERMULTISET - POWERMULTISET_BY_CARDINALITY PQ_DISTRIBUTE PQ_MAP PQ_NOMAP @@ -1009,19 +909,10 @@ PRECISION PRECOMPUTE_SUBQUERY PREDICATE_REORDERS - PREDICTION - PREDICTION_BOUNDS - PREDICTION_COST - PREDICTION_DETAILS - PREDICTION_PROBABILITY - PREDICTION_SET PREPARE PRESENT - PRESENTNNV - PRESENTV PRESERVE PRESERVE_OID - PREVIOUS PRIMARY PRIOR PRIVATE @@ -1057,13 +948,9 @@ RANDOM RANDOM_LOCAL RANGE - RANK RANKM RAPIDLY - RATIO_TO_REPORT RAW - RAWTOHEX - RAWTONHEX RBA RBO_OUTLINE RDBA @@ -1081,41 +968,25 @@ REDO REDUCED REDUNDANCY - REF REF_CASCADE_CURSOR REFERENCE REFERENCED REFERENCES REFERENCING REFRESH REFTOHEX - REGEXP_COUNT - REGEXP_INSTR REGEXP_LIKE - REGEXP_REPLACE - REGEXP_SUBSTR REGISTER - REGR_AVGX - REGR_AVGY - REGR_COUNT - REGR_INTERCEPT - REGR_R2 - REGR_SLOPE - REGR_SXX - REGR_SXY - REGR_SYY REGULAR REJECT REKEY RELATIONAL RELY - REMAINDER REMOTE_MAPPED REMOVE RENAME REPAIR REPEAT - REPLACE REPLICATION REQUIRED RESET @@ -1135,8 +1006,6 @@ RESUME RETENTION RETRY_ON_ROW_CHANGE - RETURN - RETURNING REUSE REVERSE REVOKE @@ -1148,18 +1017,12 @@ ROLLBACK ROLLING ROLLUP - ROUND ROW ROWDEPENDENCIES ROWID - ROWIDTOCHAR - ROWIDTONCHAR ROW_LENGTH ROWNUM - ROW_NUMBER ROWS - RPAD - RTRIM RULE RULES SALT @@ -1203,7 +1066,6 @@ SESSIONS_PER_USER SESSIONTIMEZONE SESSIONTZNAME - SET SETS SETTINGS SET_TO_JOIN @@ -1216,14 +1078,11 @@ SHUTDOWN SIBLINGS SID - SIGN SIGNAL_COMPONENT SIGNAL_FUNCTION SIMPLE - SIN SINGLE SINGLETASK - SINH SIZE SKIP SKIP_EXT_OPTIMIZER @@ -1234,7 +1093,6 @@ SNAPSHOT SOME SORT - SOUNDEX SOURCE SPACE SPECIFICATION @@ -1244,7 +1102,6 @@ SQL SQLLDR SQL_TRACE - SQRT STALE STANDALONE STANDBY @@ -1258,21 +1115,6 @@ STATEMENTS STATIC STATISTICS - STATS_BINOMIAL_TEST - STATS_CROSSTAB - STATS_F_TEST - STATS_KS_TEST - STATS_MODE - STATS_MW_TEST - STATS_ONE_WAY_ANOVA - STATS_T_TEST_INDEP - STATS_T_TEST_INDEPU - STATS_T_TEST_ONE - STATS_T_TEST_PAIRED - STATS_WSR_TEST - STDDEV - STDDEV_POP - STDDEV_SAMP STOP STORAGE STORE @@ -1290,11 +1132,6 @@ SUBQUERIES SUBQUERY_PRUNING SUBSTITUTABLE - SUBSTR - SUBSTRB - SUBSTRC - SUBSTR2 - SUBSTR4 SUCCESSFUL SUMMARY SUPPLEMENTAL @@ -1309,10 +1146,7 @@ SYS_AUDIT SYSAUX SYS_CHECKACL - SYS_CONNECT_BY_PATH - SYS_CONTEXT SYSDBA - SYS_DBURIGEN SYS_DL_CURSOR SYS_DM_RXFORM_CHR SYS_DM_RXFORM_NUM @@ -1324,13 +1158,11 @@ SYS_ET_IMAGE_TO_BLOB SYS_ET_RAW_TO_BFILE SYS_EXTPDTXT - SYS_EXTRACT_UTC SYS_FBT_INSDEL SYS_FILTER_ACLS SYS_GET_ACLIDS SYS_GET_PRIVILEGES SYS_GETTOKENID - SYS_GUID SYS_MAKEXML SYS_MAKE_XMLNODEID SYS_MKXMLATTR @@ -1440,7 +1272,6 @@ SYS_XMLCONTAINS SYS_XMLCONV SYS_XMLEXNSURI - SYS_XMLGEN SYS_XMLI_LOC_ISNODE SYS_XMLI_LOC_ISTEXT SYS_XMLLOCATOR_GETSVAL @@ -1569,7 +1400,6 @@ TEST THAN THE - THEN THREAD THROUGH TIME @@ -1593,23 +1423,17 @@ TRANSFORM_DISTINCT_AGG TRANSITION TRANSITIONAL - TRANSLATE - TREAT TRIGGER TRIGGERS - TRIM TRUE - TRUNC TRUNCATE TRUSTED TUNING TX TYPE TYPES - TZ_OFFSET UBA UB2 - UID UNARCHIVED UNBOUND UNBOUNDED @@ -1620,7 +1444,6 @@ UNIFORM UNION UNIQUE - UNISTR UNLIMITED UNLOCK UNNEST @@ -1636,7 +1459,6 @@ UPDATABLE UPDATE UPDATED - UPDATEXML UPD_INDEXES UPD_JOININDEX UPGRADE @@ -1665,13 +1487,9 @@ USING VALIDATE VALIDATION - VALUE VALUES - VARIANCE - VAR_POP VARRAYS VARIABLE - VAR_SAMP VARYING VECTOR_READ VECTOR_READ_TRACE @@ -1689,16 +1507,12 @@ VIRTUAL VISIBLE VOLUME - VSIZE WAIT WALLET WELLFORMED - WHEN WHENEVER WHERE - WHILE WHITESPACE - WIDTH_BUCKET WITH WITHIN WITHOUT @@ -1709,64 +1523,28 @@ XID XML XMLATTRIBUTES - XMLCAST - XMLCDATA - XMLCOLATTVAL - XMLCOMMENT - XMLCONCAT - XMLDIFF - XML_DML_RWT_STMT - XMLELEMENT - XMLEXISTS XMLEXISTS2 - XMLFOREST + XML_DML_RWT_STMT XMLINDEX_REWRITE XMLINDEX_REWRITE_IN_SELECT XMLINDEX_SEL_IDX_TBL XMLISNODE - XMLISVALID XMLNAMESPACES - XMLPARSE - XMLPATCH - XMLPI - XMLQUERY - XMLROOT XMLSCHEMA - XMLSERIALIZE - XMLTABLE XMLTOOBJECT - XMLTRANSFORM XMLTRANSFORMBLOB XMLTYPE XPATHTABLE XS_SYS_CONTEXT YEAR YES ZONE - - + - - - * - / - || - = - != - ^= - <> - < - <= - > - >= - := - => - ** - .. - ABS ACOS ADD_MONTHS + APPENDCHILDXML ASCII ASCIISTR ASIN @@ -1781,12 +1559,14 @@ CEIL CHARTOROWID CHR + CLUSTER_ID + CLUSTER_PROBABILITY + CLUSTER_SET COALESCE COLLECT COMPOSE CONCAT CONVERT - CONTAINS CORR CORR_K CORR_S @@ -1799,9 +1579,11 @@ CURRENT_DATE CURRENT_TIMESTAMP CV + DATAOBJ_TO_PARTITION DBTIMEZONE DECODE DECOMPOSE + DELETEXML DENSE_RANK DEPTH DEREF @@ -1812,6 +1594,9 @@ EXP EXTRACT EXTRACTVALUE + FEATURE_ID + FEATURE_SET + FEATURE_VALUE FIRST FIRST_VALUE FLOOR @@ -1822,16 +1607,29 @@ GROUPING_ID HEXTORAW INITCAP + INSERTCHILDXML + INSERTCHILDXMLAFTER + INSERTCHILDXMLBEFORE + INSERTXMLAFTER + INSERTXMLBEFORE INSTR INSTRB + INSTRC + INSTR2 + INSTR4 + ITERATION_NUMBER LAG LAST LAST_DAY LAST_VALUE LEAD LEAST LENGTH LENGTHB + LENGTHC + LENGTH2 + LENGTH4 + LISTAGG LN LNNVL LOCALTIMESTAMP @@ -1856,30 +1654,41 @@ NLS_LOWER NLS_UPPER NLSSORT + NTH_VALUE NTILE NULLIF NUMTODSINTERVAL NUMTOYMINTERVAL NVL NVL2 + ORA_DST_AFFECTED + ORA_DST_CONVERT + ORA_DST_ERROR ORA_HASH - ORA_ROWSCN + PATH PERCENT_RANK PERCENTILE_CONT PERCENTILE_DISC POWER POWERMULTISET POWERMULTISET_BY_CARDINALITY + PREDICTION + PREDICTION_BOUNDS + PREDICTION_COST + PREDICTION_DETAILS + PREDICTION_PROBABILITY + PREDICTION_SET PRESENTNNV PRESENTV + PREVIOUS RANK RATIO_TO_REPORT RAWTOHEX RAWTONHEX REF REFTOHEX + REGEXP_COUNT REGEXP_INSTR - REGEXP_LIKE REGEXP_REPLACE REGEXP_SUBSTR REGR_SLOPE @@ -1892,14 +1701,16 @@ REGR_SYY REGR_SXY REMAINDER + REPLACE ROUND ROW_NUMBER ROWIDTOCHAR ROWIDTONCHAR RPAD RTRIM SCN_TO_TIMESTAMP SESSIONTIMEZONE + SET SIGN SIN SINH @@ -1922,6 +1733,9 @@ STDDEV_SAMP SUBSTR SUBSTRB + SUBSTRC + SUBSTR2 + SUBSTR4 SUM SYS_CONNECT_BY_PATH SYS_CONTEXT @@ -1938,6 +1752,7 @@ TIMESTAMP_TO_SCN TO_BINARY_DOUBLE TO_BINARY_FLOAT + TO_BLOB TO_CHAR TO_CLOB TO_DATE @@ -1969,11 +1784,24 @@ VSIZE WIDTH_BUCKET XMLAGG + XMLCAST + XMLCDATA XMLCOLATTVAL + XMLCOMMENT XMLCONCAT + XMLDIFF XMLELEMENT + XMLEXISTS XMLFOREST + XMLISVALID + XMLPARSE + XMLPATCH + XMLPI + XMLQUERY + XMLROOT XMLSEQUENCE + XMLSERIALIZE + XMLTABLE XMLTRANSFORM @@ -2044,19 +1872,26 @@ - - - - - - - - + + + + + + + + + - + + + + + + + @@ -2076,7 +1911,7 @@ - + @@ -2097,21 +1932,23 @@ - - - - - + + + + + + + - + - + diff --git a/data/syntax/sql-postgresql.xml b/data/syntax/sql-postgresql.xml --- a/data/syntax/sql-postgresql.xml +++ b/data/syntax/sql-postgresql.xml @@ -3,24 +3,55 @@ - + + + BEGIN + CASE + ELSE + ELSIF + END + EXCEPTION + FOR + IF + LOOP + RETURN + THEN + WHEN + + + AND + BETWEEN + IN + IS + LIKE + NOT + OR + + A ABORT + ABSENT + ABSOLUTE ACCESS + ACCORDING ACTION + ADA ADD ADMIN AFTER AGGREGATE - ALIAS ALL ALLOCATE + ALSO ALTER - ANALYSE + ALWAYS ANALYZE ANY ARE + ARRAY + ARRAY_AGG + ARRAY_MAX_CARDINALITY AS ASC ASENSITIVE @@ -30,12 +61,19 @@ AT ATOMIC ATTACH + ATTRIBUTE + ATTRIBUTES AUTHORIZATION BACKWARD + BASE64 BEFORE - BEGIN - BETWEEN + BEGIN_FRAME + BEGIN_PARTITION + BERNOULLI BINARY + BLOB + BLOCKED + BOM BOTH BREADTH BY @@ -46,90 +84,106 @@ CARDINALITY CASCADE CASCADED - CASE CAST CATALOG CATALOG_NAME CHAIN CHARACTERISTICS - CHARACTER_LENGTH + CHARACTERS CHARACTER_SET_CATALOG CHARACTER_SET_NAME CHARACTER_SET_SCHEMA - CHAR_LENGTH CHECK - CHECKED CHECKPOINT CLASS CLASS_ORIGIN CLOB CLOSE CLUSTER - COALESCE COBOL COLLATE COLLATION COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA + COLLECT COLUMN + COLUMNS COLUMN_NAME COMMAND_FUNCTION COMMAND_FUNCTION_CODE COMMENT + COMMENTS COMMIT COMMITTED - COMPLETION + CONCURRENTLY + CONDITION CONDITION_NUMBER + CONFIGURATION + CONFLICT CONNECT CONNECTION CONNECTION_NAME - CONSTRAINTS CONSTRAINT + CONSTRAINTS CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CONSTRUCTOR CONTAINS + CONTENT CONTINUE - CONVERT + CONTROL + CONVERSION COPY + CORR CORRESPONDING - COUNT + COST + COVAR_POP + COVAR_SAMP CREATE - CREATEDB - CREATEUSER CROSS + CSV CUBE + CUME_DIST CURRENT + CURRENT_CATALOG CURRENT_DATE + CURRENT_DEFAULT_TRANSFORM_GROUP CURRENT_PATH CURRENT_ROLE + CURRENT_ROW CURRENT_TIME CURRENT_TIMESTAMP - CURRENT_USER + CURRENT_TRANSFORM_GROUP_FOR_TYPE CURSOR CURSOR_NAME CYCLE DATA DATABASE - DATE + DATALINK DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION DAY + DB DEALLOCATE DEC - DECIMAL DECLARE DEFAULT + DEFAULTS DEFERRABLE DEFERRED DEFINED DEFINER + DEGREE DELETE + DELIMITER DELIMITERS + DENSE_RANK + DEPENDS DEPTH DEREF + DERIVED DESC DESCRIBE DESCRIPTOR @@ -139,49 +193,78 @@ DETERMINISTIC DIAGNOSTICS DICTIONARY + DISABLE + DISCARD DISCONNECT DISPATCH DISTINCT + DLNEWCOPY + DLPREVIOUSCOPY + DLURLCOMPLETE + DLURLCOMPLETEONLY + DLURLCOMPLETEWRITE + DLURLPATH + DLURLPATHONLY + DLURLPATHWRITE + DLURLSCHEME + DLURLSERVER + DLVALUE DO + DOCUMENT DOMAIN - DOUBLE DROP DYNAMIC DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE EACH - ELSE + ELEMENT + EMPTY + ENABLE ENCODING ENCRYPTED - END END-EXEC + END_FRAME + END_PARTITION + ENFORCED + ENUM EQUALS ESCAPE - EVERY + EVENT EXCEPT - EXCEPTION + EXCLUDE + EXCLUDING EXCLUSIVE EXEC EXECUTE - EXISTING EXISTS EXPLAIN + EXPRESSION + EXTENSION EXTERNAL FALSE FETCH + FILE + FILTER FINAL FIRST - FOR + FIRST_VALUE + FLAG + FLOAT + FOLLOWING FORCE FOREIGN FORTRAN FORWARD FOUND + FRAME_ROW FREE FREEZE FROM + FS FULL FUNCTION + FUNCTIONS + FUSION G GENERAL GENERATED @@ -191,183 +274,247 @@ GOTO GRANT GRANTED + GREATEST GROUP GROUPING + GROUPS HANDLER HAVING + HEADER + HEX HIERARCHY HOLD - HOST HOUR + ID IDENTITY IGNORE ILIKE IMMEDIATE + IMMEDIATELY IMMUTABLE IMPLEMENTATION - IN + IMPLICIT + IMPORT + INCLUDING INCREMENT + INDENT INDEX + INDEXES INDICATOR - INFIX + INHERIT INHERITS - INITIALIZE INITIALLY + INLINE INNER INOUT INPUT INSENSITIVE INSERT INSTANCE INSTANTIABLE INSTEAD + INTEGRITY INTERSECT - INTERVAL + INTERSECTION INTO INVOKER - IS ISNULL ISOLATION - ITERATE JOIN K KEY KEY_MEMBER KEY_TYPE - LANCOMPILER + LABEL + LAG LANGUAGE LARGE LAST + LAST_VALUE LATERAL + LEAD LEADING + LEAKPROOF + LEAST LEFT - LENGTH - LESS LEVEL - LIKE + LIBRARY + LIKE_REGEX LIMIT + LINK LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP LOCATION LOCATOR LOCK - LOWER + LOCKED + LOGGED M MAP + MAPPING MATCH - MAX + MATCHED + MATERIALIZED MAXVALUE + MAX_CARDINALITY + MEMBER + MERGE MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_TEXT METHOD - MIN MINUTE MINVALUE - MOD MODE MODIFIES - MODIFY MODULE MONTH MORE MOVE + MULTISET MUMPS NAME NAMES + NAMESPACE NATIONAL NATURAL + NCHAR + NCLOB + NESTING NEW NEXT + NFC + NFD + NFKC + NFKD + NIL NO - NOCREATEDB - NOCREATEUSER NONE - NOT + NORMALIZE + NORMALIZED NOTHING NOTIFY NOTNULL + NOWAIT + NTH_VALUE + NTILE NULL NULLABLE - NULLIF + NULLS NUMBER - NUMERIC OBJECT - OCTET_LENGTH + OCCURRENCES_REGEX + OCTETS OF OFF OFFSET OIDS OLD ON ONLY OPEN - OPERATION OPERATOR OPTION OPTIONS ORDER + ORDERING ORDINALITY + OTHERS OUT OUTER OUTPUT OVER OVERLAPS - OVERLAY OVERRIDING + OWNED OWNER + P PAD + PARALLEL PARAMETER - PARAMETERS PARAMETER_MODE PARAMETER_NAME PARAMETER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG PARAMETER_SPECIFIC_NAME PARAMETER_SPECIFIC_SCHEMA + PARSER PARTIAL PARTITION PASCAL + PASSING + PASSTHROUGH PASSWORD - PATH - PENDANT + PERCENT + PERCENTILE_CONT + PERCENTILE_DISC + PERCENT_RANK + PERIOD + PERMISSION + PLACING + PLANS PLI - POSITION - POSTFIX + POLICY + PORTION + POSITION_REGEX + PRECEDES + PRECEDING PRECISION - PREFIX - PREORDER PREPARE + PREPARED PRESERVE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE + PROGRAM PUBLIC RANGE + PUBLICATION + QUOTE + RANGE + RANK READ READS - REAL + REASSIGN + RECHECK + RECOVERY RECURSIVE REF REFERENCES REFERENCING + REFRESH + REGR_AVGX + REGR_AVGY + REGR_COUNT + REGR_INTERCEPT + REGR_R2 + REGR_SLOPE + REGR_SXX + REGR_SXY + REGR_SYY REINDEX RELATIVE + RELEASE RENAME REPEATABLE - REPLACE + REPLICA + REQUIRING RESET + RESPECT + RESTART + RESTORE RESTRICT RESULT - RETURN + RETURNED_CARDINALITY RETURNED_LENGTH RETURNED_OCTET_LENGTH RETURNED_SQLSTATE + RETURNING RETURNS REVOKE RIGHT @@ -381,33 +528,42 @@ ROW ROWS ROW_COUNT + ROW_NUMBER RULE SAVEPOINT SCALE SCHEMA + SCHEMAS SCHEMA_NAME SCOPE + SCOPE_CATALOG + SCOPE_NAME + SCOPE_SCHEMA SCROLL SEARCH SECOND SECTION SECURITY SELECT + SELECTIVE SELF SENSITIVE SEQUENCE + SEQUENCES SERIALIZABLE + SERVER SERVER_NAME SESSION - SESSION_USER SET SETOF SETS SHARE SHOW SIMILAR SIMPLE SIZE + SKIP + SNAPSHOT SOME SOURCE SPACE @@ -421,169 +577,166 @@ SQLSTATE SQLWARNING STABLE + STANDALONE START STATE STATEMENT STATIC STATISTICS + STDDEV_POP + STDDEV_SAMP STDIN STDOUT + STORAGE + STRICT + STRIP STRUCTURE STYLE SUBCLASS_ORIGIN - SUBLIST - SUBSTRING - SUM + SUBMULTISET + SUBSCRIPTION + SUBSTRING_REGEX + SUCCEEDS SYMMETRIC SYSID SYSTEM + SYSTEM_TIME SYSTEM_USER + T TABLE + TABLES + TABLESAMPLE + TABLESPACE TABLE_NAME TEMP TEMPLATE TEMPORARY - TERMINATE - THAN - THEN + TIES TIMEZONE_HOUR TIMEZONE_MINUTE TO - TOAST + TOKEN + TOP_LEVEL_COUNT TRAILING TRANSACTION TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK TRANSACTION_ACTIVE TRANSFORM TRANSFORMS - TRANSLATE + TRANSLATE_REGEX TRANSLATION TREAT TRIGGER TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA - TRIM + TRIM_ARRAY TRUE TRUNCATE TRUSTED TYPE + TYPES + UESCAPE + UNBOUNDED UNCOMMITTED UNDER UNENCRYPTED UNION UNIQUE UNKNOWN + UNLINK UNLISTEN + UNLOGGED UNNAMED UNNEST UNTIL + UNTYPED UPDATE - UPPER + URI USAGE USER USER_DEFINED_TYPE_CATALOG + USER_DEFINED_TYPE_CODE USER_DEFINED_TYPE_NAME USER_DEFINED_TYPE_SCHEMA USING VACUUM VALID + VALIDATE + VALIDATOR VALUE VALUES - VARIABLE + VALUE_OF + VARBINARY + VARIADIC VARYING + VAR_POP + VAR_SAMP VERBOSE - VERSION + VERSIONING VIEW + VIEWS VOLATILE - WHEN WHENEVER WHERE - WHILE + WHITESPACE + WINDOW WITH + WITHIN WITHOUT WORK + WRAPPER WRITE + XMLAGG + XMLATTRIBUTES + XMLBINARY + XMLCAST + XMLCOMMENT + XMLCONCAT + XMLDECLARATION + XMLDOCUMENT + XMLELEMENT + XMLEXISTS + XMLFOREST + XMLITERATE + XMLNAMESPACES + XMLPARSE + XMLPI + XMLQUERY + XMLROOT + XMLSCHEMA + XMLSERIALIZE + XMLTABLE + XMLTEXT + XMLVALIDATE YEAR + YES ZONE - - + - - - * - / - || - |/ - ||/ - ! - !! - @ - & - | - # - << - >> - % - ^ - = - != - <> - < - <= - > - >= - ~ - ~* - !~ - !~* - ^= - := - => - ** - .. - AND - OR - NOT - - ## - && - &< - &> - <-> - <^ - >^ - ?# - ?- - ?-| - @-@ - ?| - ?|| - @@ - ~= - - <<= - >>= - ABS CBRT CEIL + CEILING DEGREES EXP FLOOR LN LOG MOD PI POW + POWER RADIANS RANDOM ROUND + SETSEED SIGN SQRT TRUNC + WIDTH_BUCKET ACOS ASIN @@ -597,31 +750,42 @@ BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH + CONVERT + GET_BYTE + GET_BIT LOWER OCTET_LENGTH + OVERLAY POSITION + SET_BIT SUBSTRING TRIM UPPER ASCII BTRIM CHR - CONVERT + DECODE + ENCODE INITCAP LENGTH LPAD LTRIM + MD5 PG_CLIENT_ENCODING + QUOTE_IDENT + QUOTE_LITERAL + REGEXP_REPLACE REPEAT + REPLACE RPAD RTRIM + SPLIT_PART STRPOS SUBSTR TO_ASCII + TO_HEX TRANSLATE - ENCODE - DECODE TO_CHAR TO_DATE @@ -633,20 +797,20 @@ DATE_TRUNC EXTRACT ISFINITE + JUSTIFY_HOURS + JUSTIFY_DAYS NOW TIMEOFDAY TIMESTAMP - EXTRACT AREA - BOX CENTER DIAMETER HEIGHT ISCLOSED ISOPEN + NPOINTS PCLOSE - NPOINT POPEN RADIUS WIDTH @@ -657,37 +821,111 @@ PATH POINT POLYGON + + ARRAY_CAT + ARRAY_APPEND + ARRAY_PREPEND + ARRAY_DIMS + ARRAY_LOWER + ARRAY_UPPER + ARRAY_TO_STRING + STRING_TO_ARRAY BROADCAST HOST MASKLEN SET_MASKLEN NETMASK + HOSTMASK NETWORK + TEXT ABBREV + FAMILY NEXTVAL CURRVAL + LASTVAL SETVAL COALESCE NULLIF - - HAS_TABLE_PRIVILEGE - PG_GET_VIEWDEF - PG_GET_RULEDEF - PG_GET_INDEXDEF - PG_GET_USERBYID - OBJ_DESCRIPTION - COL_DESCRIPTION AVG + BIT_AND + BIT_OR + BOOL_AND + BOOL_OR COUNT + EVERY MAX MIN STDDEV SUM VARIANCE + + GENERATE_SERIES + + CURRENT_DATABASE + CURRENT_SCHEMA + CURRENT_SCHEMAS + CURRENT_USER + INET_CLIENT_ADDR + INET_CLIENT_PORT + INET_SERVER_ADDR + INET_SERVER_PORT + SESSION_USER + PG_POSTMASTER_START_TIME + VERSION + + HAS_TABLE_PRIVILEGE + HAS_DATABASE_PRIVILEGE + HAS_FUNCTION_PRIVILEGE + HAS_LANGUAGE_PRIVILEGE + PG_HAS_ROLE + HAS_SCHEMA_PRIVILEGE + HAS_TABLESPACE_PRIVILEGE + + PG_TABLE_IS_VISIBLE + PG_TYPE_IS_VISIBLE + PG_FUNCTION_IS_VISIBLE + PG_OPERATOR_IS_VISIBLE + PG_OPCLASS_IS_VISIBLE + PG_CONVERSION_IS_VISIBLE + + FORMAT_TYPE + PG_GET_CONSTRAINTDEF + PG_GET_EXPR + PG_GET_INDEXDEF + PG_GET_RULEDEF + PG_GET_SERIAL_SEQUENCE + PG_TABLESPACE_DATABASES + PG_GET_TRIGGERDEF + PG_GET_USERBYID + PG_GET_VIEWDEF + + OBJ_DESCRIPTION + COL_DESCRIPTION + + CURRENT_SETTING + SET_CONFIG + + PG_CANCEL_BACKEND + PG_RELOAD_CONF + PG_ROTATE_LOGFILE + + PG_START_BACKUP + PG_STOP_BACKUP + + PG_COLUMN_SIZE + PG_TABLESPACE_SIZE + PG_DATABASE_SIZE + PG_RELATION_SIZE + PG_TOTAL_RELATION_SIZE + PG_SIZE_PRETTY + + PG_LS_DIR + PG_READ_FILE + PG_STAT_FILE @@ -704,6 +942,7 @@ CIRCLE DATE DECIMAL + DOUBLE FLOAT4 FLOAT8 INET @@ -717,13 +956,12 @@ JSONB LINE LSEG - LZTEXT MACADDR MACADDR8 MONEY NUMERIC - OID PATH + PG_LSN POINT POLYGON REAL @@ -740,6 +978,7 @@ TIMETZ TSQUERY TSVECTOR + TXID_SNAPSHOT UUID VARBIT VARCHAR @@ -760,7 +999,8 @@ - + + @@ -771,17 +1011,24 @@ + + + + + + + - + - + @@ -800,26 +1047,28 @@ - - - - - - - + + + + + + + + + - + - - - + + + - + diff --git a/data/syntax/sql.xml b/data/syntax/sql.xml --- a/data/syntax/sql.xml +++ b/data/syntax/sql.xml @@ -5,8 +5,31 @@ v3 fix comments by Gene Thomas --> - + + + BEGIN + CASE + ELSE + ELSIF + END + FOR + IF + LOOP + RETURN + THEN + WHEN + WHILE + + + AND + BETWEEN + IN + IS + LIKE + NOT + OR + ACCESS ACCOUNT @@ -22,7 +45,6 @@ ALTER ANALYZE ANCILLARY - AND ANY ARCHIVE ARCHIVELOG @@ -43,9 +65,7 @@ BACKUP BECOME BEFORE - BEGIN BEHALF - BETWEEN BINDING BITMAP BLOCK @@ -65,7 +85,6 @@ CALL CANCEL CASCADE - CASE CATEGORY CHAINED CHANGE @@ -80,7 +99,6 @@ CLOSE CLOSE_CACHED_OPEN_CURSORS CLUSTER - COALESCE COLUMN COLUMNS COLUMN_VALUE @@ -101,6 +119,7 @@ CONSTRAINT CONSTRAINTS CONTAINER + CONTAINS CONTENTS CONTEXT CONTINUE @@ -149,11 +168,8 @@ DROP DYNAMIC EACH - ELSE - ELSIF EMPTY ENABLE - END ENFORCE ENTRY ESCAPE @@ -185,7 +201,6 @@ FLASHBACK FLUSH FOLLOWING - FOR FORCE FOREIGN FREELIST @@ -214,9 +229,7 @@ IDENTIFIER IDGENERATORS IDLE_TIME - IF IMMEDIATE - IN INCLUDING INCREMENT INCREMENTAL @@ -239,7 +252,6 @@ INTERSECT INTO INVALIDATE - IS ISOLATION ISOLATION_LEVEL JAVA @@ -254,7 +266,6 @@ LESS LEVEL LIBRARY - LIKE LIMIT LINK LIST @@ -268,7 +279,6 @@ LOGICAL_READS_PER_SESSION LOGOFF LOGON - LOOP MANAGE MANAGED MANAGEMENT @@ -345,7 +355,6 @@ NORMAL NOSEGMENT NOSORT - NOT NOTHING NOVALIDATE NOWAIT @@ -368,7 +377,6 @@ OPTIMAL OPTIMIZER_GOAL OPTION - OR ORDER ORGANIZATION OUT @@ -538,7 +546,6 @@ TEMPORARY THAN THE - THEN THREAD THROUGH TIMEOUT @@ -584,35 +591,13 @@ VALIDATION VALUES VIEW - WHEN WHENEVER WHERE - WHILE WITH WITHOUT WORK WRITE - - + - - - * - / - || - = - != - <> - < - <= - > - >= - ~= - ^= - := - => - ** - .. - ABS ACOS @@ -896,7 +881,16 @@ - + + + + + + + + + + @@ -932,28 +926,30 @@ - - - - - - - - + + + + + + + + + + - + - - - - + + + + - +