update inbox list

This commit is contained in:
manhlab
2021-04-07 19:25:18 -04:00
parent fda7245f7c
commit 436de2efd6
8576 changed files with 1013325 additions and 3 deletions

View File

@@ -0,0 +1,67 @@
<span class="hljs-comment">-- clauses</span>
<span class="hljs-keyword">ADD</span>, <span class="hljs-keyword">ADD</span> <span class="hljs-keyword">COLUMN</span>,
<span class="hljs-keyword">ALTER</span>,
<span class="hljs-keyword">DROP</span>, <span class="hljs-keyword">DROP</span> <span class="hljs-keyword">COLUMN</span>,
<span class="hljs-keyword">SET</span>, <span class="hljs-keyword">SET</span> ( .. ),
<span class="hljs-keyword">ON</span>,
<span class="hljs-keyword">ACCESS</span> <span class="hljs-keyword">METHOD</span>,
<span class="hljs-keyword">AGGREGATE</span>,
<span class="hljs-keyword">ATTRIBUTE</span>,
<span class="hljs-keyword">CASCADE</span>,
<span class="hljs-keyword">COLLATION</span>,
<span class="hljs-keyword">COLUMN</span>,
<span class="hljs-keyword">CONFLICT</span>,
<span class="hljs-keyword">CONSTRAINT</span>,
<span class="hljs-keyword">CONVERSION</span>,
<span class="hljs-keyword">DATABASE</span>,
<span class="hljs-keyword">DEFAULT</span>,
<span class="hljs-keyword">DOMAIN</span>,
<span class="hljs-keyword">EVENT TRIGGER</span>,
<span class="hljs-keyword">EXTENSION</span>,
<span class="hljs-keyword">EVENT TRIGGER</span>,
<span class="hljs-keyword">FOREIGN DATA</span> <span class="hljs-keyword">WRAPPER</span>,
<span class="hljs-keyword">FOREIGN</span> <span class="hljs-keyword">TABLE</span>,
<span class="hljs-keyword">FROM</span> <span class="hljs-keyword">CURRENT</span>,
<span class="hljs-keyword">FUNCTION</span>,
<span class="hljs-keyword">IDENTITY</span>,
<span class="hljs-keyword">INDEX</span>,
<span class="hljs-keyword">ISOLATION</span> <span class="hljs-keyword">LEVEL</span> <span class="hljs-keyword">SERIALIZABLE</span>, <span class="hljs-keyword">ISOLATION</span> <span class="hljs-keyword">LEVEL</span> <span class="hljs-keyword">REPEATABLE</span> <span class="hljs-keyword">READ</span>,
<span class="hljs-keyword">ISOLATION</span> <span class="hljs-keyword">LEVEL</span> <span class="hljs-keyword">READ</span> <span class="hljs-keyword">COMMITTED</span>, <span class="hljs-keyword">ISOLATION</span> <span class="hljs-keyword">LEVEL</span> <span class="hljs-keyword">READ</span> <span class="hljs-keyword">UNCOMMITTED</span>,
<span class="hljs-keyword">LARGE</span> <span class="hljs-keyword">OBJECT</span>,
<span class="hljs-keyword">LOGGED</span>, <span class="hljs-keyword">UNLOGGED</span>,
<span class="hljs-keyword">MAPPING</span> <span class="hljs-keyword">FOR</span> .. <span class="hljs-keyword">WITH</span> .., <span class="hljs-keyword">MAPPING REPLACE</span> .. <span class="hljs-keyword">WITH</span> ..,
<span class="hljs-keyword">MATERIALIZED</span> <span class="hljs-keyword">VIEW</span>,
<span class="hljs-keyword">NOT</span> <span class="hljs-keyword">VALID</span>,
<span class="hljs-keyword">OPERATOR</span>,
<span class="hljs-keyword">OPERATOR</span> <span class="hljs-keyword">CLASS</span> .. <span class="hljs-keyword">USING</span> ..,
<span class="hljs-keyword">OPERATOR</span> <span class="hljs-keyword">FAMILY</span> .. <span class="hljs-keyword">USING</span> ..,
<span class="hljs-keyword">POLICY</span>,
<span class="hljs-keyword">PROCEDURAL</span> <span class="hljs-keyword">LANGUAGE</span>,
<span class="hljs-keyword">PROCEDURE</span>,
<span class="hljs-keyword">PUBLICATION</span>,
<span class="hljs-keyword">READ</span> <span class="hljs-keyword">WRITE</span>, <span class="hljs-keyword">READ</span> <span class="hljs-keyword">ONLY</span>,
<span class="hljs-keyword">RESTRICT</span>,
<span class="hljs-keyword">ROLE</span>,
<span class="hljs-keyword">ROUTINE</span>,
<span class="hljs-keyword">RULE</span>,
<span class="hljs-keyword">SCHEMA</span>,
<span class="hljs-keyword">SEQUENCE</span>,
<span class="hljs-keyword">SERVER</span>,
<span class="hljs-keyword">STATISTICS</span>,
<span class="hljs-keyword">STORAGE PLAIN</span>, <span class="hljs-keyword">STORAGE EXTERNAL</span>, <span class="hljs-keyword">STORAGE EXTENDED</span>, <span class="hljs-keyword">STORAGE MAIN</span>,
<span class="hljs-keyword">SUBSCRIPTION</span>,
<span class="hljs-keyword">TABLE</span>,
<span class="hljs-keyword">TABLESPACE</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">CONFIGURATION</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">DICTIONARY</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">PARSER</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">TEMPLATE</span>,
<span class="hljs-keyword">TRANSFORM</span> <span class="hljs-keyword">FOR</span> .. <span class="hljs-keyword">LANGUAGE</span> <span class="hljs-keyword">SQL</span>,
<span class="hljs-keyword">TRIGGER</span>,
<span class="hljs-keyword">TYPE</span>,
<span class="hljs-keyword">VALUE</span>,
<span class="hljs-keyword">VIEW</span>,
<span class="hljs-keyword">WITH</span> <span class="hljs-keyword">OIDS</span>, <span class="hljs-keyword">WITHOUT</span> <span class="hljs-keyword">OIDS</span>,
<span class="hljs-keyword">WITHOUT</span> <span class="hljs-keyword">CLUSTER</span>,
<span class="hljs-keyword">SET DATA</span> <span class="hljs-keyword">TYPE</span>;

View File

@@ -0,0 +1,67 @@
-- clauses
ADD, ADD COLUMN,
ALTER,
DROP, DROP COLUMN,
SET, SET ( .. ),
ON,
ACCESS METHOD,
AGGREGATE,
ATTRIBUTE,
CASCADE,
COLLATION,
COLUMN,
CONFLICT,
CONSTRAINT,
CONVERSION,
DATABASE,
DEFAULT,
DOMAIN,
EVENT TRIGGER,
EXTENSION,
EVENT TRIGGER,
FOREIGN DATA WRAPPER,
FOREIGN TABLE,
FROM CURRENT,
FUNCTION,
IDENTITY,
INDEX,
ISOLATION LEVEL SERIALIZABLE, ISOLATION LEVEL REPEATABLE READ,
ISOLATION LEVEL READ COMMITTED, ISOLATION LEVEL READ UNCOMMITTED,
LARGE OBJECT,
LOGGED, UNLOGGED,
MAPPING FOR .. WITH .., MAPPING REPLACE .. WITH ..,
MATERIALIZED VIEW,
NOT VALID,
OPERATOR,
OPERATOR CLASS .. USING ..,
OPERATOR FAMILY .. USING ..,
POLICY,
PROCEDURAL LANGUAGE,
PROCEDURE,
PUBLICATION,
READ WRITE, READ ONLY,
RESTRICT,
ROLE,
ROUTINE,
RULE,
SCHEMA,
SEQUENCE,
SERVER,
STATISTICS,
STORAGE PLAIN, STORAGE EXTERNAL, STORAGE EXTENDED, STORAGE MAIN,
SUBSCRIPTION,
TABLE,
TABLESPACE,
TEXT SEARCH CONFIGURATION,
TEXT SEARCH DICTIONARY,
TEXT SEARCH PARSER,
TEXT SEARCH TEMPLATE,
TRANSFORM FOR .. LANGUAGE SQL,
TRIGGER,
TYPE,
VALUE,
VIEW,
WITH OIDS, WITHOUT OIDS,
WITHOUT CLUSTER,
SET DATA TYPE;

View File

@@ -0,0 +1,160 @@
<span class="hljs-comment">-- clauses (part 2)</span>
<span class="hljs-keyword">ADMIN</span> <span class="hljs-keyword">OPTION</span>,
<span class="hljs-keyword">ALL</span>,
<span class="hljs-keyword">ANALYZE</span>, <span class="hljs-keyword">ANALYZE</span> ( .. ),
<span class="hljs-keyword">AS ASSIGNMENT</span>, <span class="hljs-keyword">AS IMPLICIT</span>,
<span class="hljs-keyword">AS PERMISSIVE</span>, <span class="hljs-keyword">AS RESTRICTIVE</span>,
<span class="hljs-keyword">AS ENUM</span>, <span class="hljs-keyword">AS RANGE</span>,
<span class="hljs-keyword">AS</span> ( .. ), <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">ASC</span>, <span class="hljs-keyword">DESC</span>,
<span class="hljs-keyword">ATTACH PARTITION</span>,
<span class="hljs-keyword">AUTHORIZATION</span>,
<span class="hljs-keyword">BEFORE</span>, <span class="hljs-keyword">AFTER</span>, <span class="hljs-keyword">INSTEAD</span> <span class="hljs-keyword">OF</span>,
<span class="hljs-keyword">CACHE</span> <span class="hljs-number">100</span>, <span class="hljs-keyword">NO</span> <span class="hljs-keyword">CYCLE</span>,
<span class="hljs-keyword">CALLED</span> <span class="hljs-keyword">ON</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">INPUT</span>, <span class="hljs-keyword">RETURNS</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">ON</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">INPUT</span>,
<span class="hljs-keyword">COLLATE</span>,
<span class="hljs-keyword">CONCURRENTLY</span>,
<span class="hljs-keyword">CONNECTION</span> <span class="hljs-string">'..'</span>,
<span class="hljs-keyword">CONSTRAINT</span>,
<span class="hljs-keyword">COST</span> <span class="hljs-number">100</span>,
<span class="hljs-keyword">CLUSTER</span> <span class="hljs-keyword">ON</span>,
<span class="hljs-keyword">CURSOR</span>,
<span class="hljs-keyword">DEPENDS</span> <span class="hljs-keyword">ON</span> <span class="hljs-keyword">EXTENSION</span>,
<span class="hljs-keyword">DISABLE</span>, <span class="hljs-keyword">ENABLE</span>
<span class="hljs-keyword">REPLICA</span>, <span class="hljs-keyword">ALWAYS</span>,
<span class="hljs-keyword">TRIGGER</span>, <span class="hljs-keyword">TRIGGER</span> <span class="hljs-keyword">USER</span>, <span class="hljs-keyword">REPLICA</span> <span class="hljs-keyword">TRIGGER</span>, <span class="hljs-keyword">ALWAYS</span> <span class="hljs-keyword">TRIGGER</span>, <span class="hljs-keyword">TRIGGER</span> <span class="hljs-keyword">ALL</span>,
<span class="hljs-keyword">RULE</span>, <span class="hljs-keyword">REPLICA</span> <span class="hljs-keyword">RULE</span>, <span class="hljs-keyword">ALWAYS</span> <span class="hljs-keyword">RULE</span>,
<span class="hljs-keyword">ROW</span> <span class="hljs-keyword">LEVEL</span> <span class="hljs-keyword">SECURITY</span>, <span class="hljs-keyword">FORCE ROW LEVEL SECURITY</span>, <span class="hljs-keyword">NO</span> <span class="hljs-keyword">FORCE ROW LEVEL SECURITY</span>,
<span class="hljs-keyword">DISCARD PLANS</span>,
<span class="hljs-keyword">DISTINCT</span>, <span class="hljs-keyword">DISTINCT</span> <span class="hljs-keyword">ON</span> ( .. ), <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">DO</span> <span class="hljs-keyword">ALSO</span> .., <span class="hljs-keyword">DO</span> <span class="hljs-keyword">INSTEAD</span> .., <span class="hljs-keyword">DO</span> <span class="hljs-keyword">ALSO</span> <span class="hljs-keyword">NOTHING</span>, <span class="hljs-keyword">DO</span> <span class="hljs-keyword">INSTEAD</span> <span class="hljs-keyword">NOTHING</span>,
<span class="hljs-keyword">DO</span> <span class="hljs-keyword">NOTHING</span>, <span class="hljs-keyword">DO</span> <span class="hljs-keyword">UPDATE</span>,
<span class="hljs-keyword">EXCEPT</span>,
<span class="hljs-keyword">EXECUTE</span> <span class="hljs-keyword">PROCEDURE</span>,
<span class="hljs-keyword">EXPLAIN</span> ( .. ),
<span class="hljs-keyword">EXTERNAL</span>,
<span class="hljs-keyword">FAMILY</span>,
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">ROLE</span> .. <span class="hljs-keyword">IN</span> <span class="hljs-keyword">SCHEMA</span>,
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">USER</span>,
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">SEARCH</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span>,
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">TABLE</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">ALL</span> <span class="hljs-keyword">TABLES</span>,
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">VALUES</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">VALUES</span> <span class="hljs-keyword">FROM</span> .. <span class="hljs-keyword">TO</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">VALUES</span> <span class="hljs-keyword">IN</span> ( .. ),
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">ROW</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">EACH</span> <span class="hljs-keyword">ROW</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">STATEMENT</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">EACH</span> <span class="hljs-keyword">STATEMENT</span>,
<span class="hljs-keyword">FOR</span> <span class="hljs-keyword">UPDATE</span>, <span class="hljs-keyword">FOR NO KEY</span> <span class="hljs-keyword">UPDATE</span>, <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">SHARE</span>, <span class="hljs-keyword">FOR KEY</span> <span class="hljs-keyword">SHARE</span>,
<span class="hljs-keyword">FROM</span>,
<span class="hljs-keyword">FROM</span> <span class="hljs-string">'..'</span>, <span class="hljs-keyword">FROM PROGRAM</span>, <span class="hljs-keyword">FROM STDIN</span>,
<span class="hljs-keyword">FROM</span> <span class="hljs-keyword">SQL</span> <span class="hljs-keyword">WITH</span> <span class="hljs-keyword">FUNCTION</span>, <span class="hljs-keyword">TO</span> <span class="hljs-keyword">SQL</span> <span class="hljs-keyword">WITH</span> <span class="hljs-keyword">FUNCTION</span>,
<span class="hljs-keyword">FROM</span> ( .. ), <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">FUNCTION</span>, <span class="hljs-keyword">FUNCTIONS</span>,
<span class="hljs-keyword">GLOBAL</span>, <span class="hljs-comment">-- create global table</span>
<span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span>,
<span class="hljs-keyword">HAVING</span>,
<span class="hljs-keyword">SELECT</span>,
<span class="hljs-keyword">INSERT</span>, <span class="hljs-keyword">UPDATE</span>, <span class="hljs-keyword">DELETE</span>, <span class="hljs-keyword">TRUNCATE</span>, <span class="hljs-keyword">REFERENCES</span>, <span class="hljs-keyword">TRIGGER</span>, <span class="hljs-keyword">USAGE</span>, <span class="hljs-keyword">EXECUTE</span>, <span class="hljs-keyword">ALL</span> <span class="hljs-keyword">PRIVILEGES</span>,
<span class="hljs-keyword">CONNECT</span>, <span class="hljs-keyword">TEMPORARY</span>, <span class="hljs-keyword">TEMP</span>,
<span class="hljs-keyword">HANDLER</span>, <span class="hljs-keyword">NO</span> <span class="hljs-keyword">HANDLER</span>
<span class="hljs-keyword">IF</span> <span class="hljs-keyword">EXISTS</span>, <span class="hljs-keyword">IF</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">EXISTS</span>,
<span class="hljs-keyword">IMMUTABLE</span>,
<span class="hljs-keyword">IN</span>
<span class="hljs-keyword">ACCESS</span> <span class="hljs-keyword">SHARE MODE</span>, <span class="hljs-keyword">ROW</span> <span class="hljs-keyword">SHARE MODE</span>, <span class="hljs-keyword">ROW</span> <span class="hljs-keyword">EXCLUSIVE MODE</span>, <span class="hljs-keyword">SHARE</span> <span class="hljs-keyword">UPDATE</span> <span class="hljs-keyword">EXCLUSIVE MODE</span>,
<span class="hljs-keyword">SHARE MODE</span>, <span class="hljs-keyword">SHARE</span> <span class="hljs-keyword">ROW</span> <span class="hljs-keyword">EXCLUSIVE MODE</span>, <span class="hljs-keyword">EXCLUSIVE MODE</span>, <span class="hljs-keyword">ACCESS</span> <span class="hljs-keyword">EXCLUSIVE MODE</span>,
<span class="hljs-keyword">INCREMENT</span> <span class="hljs-number">100</span>, <span class="hljs-keyword">INCREMENT</span> <span class="hljs-keyword">BY</span> <span class="hljs-number">100</span>,
<span class="hljs-keyword">INHERIT</span>, <span class="hljs-keyword">NO</span> <span class="hljs-keyword">INHERIT</span>,
<span class="hljs-keyword">INHERITS</span> ( .. ),
<span class="hljs-keyword">INLINE</span>,
<span class="hljs-keyword">INTO</span>,
<span class="hljs-keyword">JOIN</span>, <span class="hljs-keyword">INNER</span> <span class="hljs-keyword">JOIN</span>, <span class="hljs-keyword">LEFT OUTER JOIN</span>, <span class="hljs-keyword">RIGHT JOIN</span>, <span class="hljs-keyword">FULL</span> <span class="hljs-keyword">JOIN</span>, <span class="hljs-keyword">CROSS</span> <span class="hljs-keyword">JOIN</span>,
<span class="hljs-keyword">LANGUAGE</span>,
<span class="hljs-keyword">LATERAL</span>,
<span class="hljs-keyword">LEAKPROOF</span>, <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">LEAKPROOF</span>,
<span class="hljs-keyword">LIMIT</span>, <span class="hljs-keyword">LIMIT</span> <span class="hljs-keyword">TO</span>,
<span class="hljs-keyword">LOCAL</span>, <span class="hljs-comment">-- create local table, set</span>
<span class="hljs-keyword">LOCATION</span>,
<span class="hljs-keyword">MAXVALUE</span> <span class="hljs-number">100</span>, <span class="hljs-keyword">NO MAXVALUE</span>,
<span class="hljs-keyword">MINVALUE</span> <span class="hljs-number">100</span>, <span class="hljs-keyword">NO MINVALUE</span>,
<span class="hljs-keyword">NATURAL</span>,
<span class="hljs-keyword">FETCH NEXT</span>, <span class="hljs-keyword">FETCH PRIOR</span>, <span class="hljs-keyword">FETCH FIRST</span>, <span class="hljs-keyword">FETCH LAST</span>, <span class="hljs-keyword">FETCH ABSOLUTE</span> <span class="hljs-number">10</span>, <span class="hljs-keyword">FETCH RELATIVE</span> <span class="hljs-number">10</span>,
<span class="hljs-keyword">FETCH</span> <span class="hljs-keyword">ALL</span>, <span class="hljs-keyword">FETCH FORWARD</span>, <span class="hljs-keyword">FETCH FORWARD</span> <span class="hljs-number">10</span>, <span class="hljs-keyword">FETCH FORWARD</span> <span class="hljs-keyword">ALL</span>,
<span class="hljs-keyword">FETCH BACKWARD</span>, <span class="hljs-keyword">FETCH BACKWARD</span> <span class="hljs-number">10</span>, <span class="hljs-keyword">FETCH BACKWARD</span> <span class="hljs-keyword">ALL</span>,
<span class="hljs-keyword">NOWAIT</span>,
<span class="hljs-keyword">NULLS FIRST</span>, <span class="hljs-keyword">NULLS LAST</span>,
<span class="hljs-keyword">OFFSET</span> <span class="hljs-number">10</span> <span class="hljs-keyword">ROW</span>, <span class="hljs-keyword">OFFSET</span> <span class="hljs-number">10</span> <span class="hljs-keyword">ROWS</span>, <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">ON</span> <span class="hljs-keyword">TABLES</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">SEQUENCES</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">FUNCTIONS</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">ROUTINES</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">TYPES</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">SCHEMAS</span>,
<span class="hljs-keyword">ON</span> <span class="hljs-keyword">COMMIT</span> <span class="hljs-keyword">PRESERVE ROWS</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">COMMIT</span> <span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">ROWS</span>, <span class="hljs-keyword">ON</span> <span class="hljs-keyword">COMMIT</span> <span class="hljs-keyword">DROP</span>,
<span class="hljs-keyword">ONLY</span>,
<span class="hljs-keyword">OPTIONS</span> ( .. ),
<span class="hljs-keyword">OPERATOR</span>,
<span class="hljs-keyword">OR REPLACE</span>,
<span class="hljs-keyword">OVERRIDING</span> <span class="hljs-keyword">SYSTEM</span> <span class="hljs-keyword">VALUE</span>, <span class="hljs-keyword">OVERRIDING</span> <span class="hljs-keyword">USER</span> <span class="hljs-keyword">VALUE</span>,
<span class="hljs-keyword">OWNER</span> <span class="hljs-keyword">TO</span> .., <span class="hljs-keyword">OWNER</span> <span class="hljs-keyword">TO</span> <span class="hljs-built_in">CURRENT_USER</span>, <span class="hljs-keyword">OWNER</span> <span class="hljs-keyword">TO</span> <span class="hljs-built_in">SESSION_USER</span>,
<span class="hljs-keyword">OWNED</span> <span class="hljs-keyword">BY</span>,
<span class="hljs-keyword">PARALLEL UNSAFE</span>, <span class="hljs-keyword">PARALLEL RESTRICTED</span>, <span class="hljs-keyword">PARALLEL SAFE</span>,
<span class="hljs-keyword">PARTITION BY RANGE</span> (), <span class="hljs-keyword">PARTITION BY LIST</span> (), <span class="hljs-keyword">PARTITION BY HASH</span> (),
<span class="hljs-keyword">PARTITION</span> <span class="hljs-keyword">OF</span> ..,
<span class="hljs-keyword">PREPARE</span>,
<span class="hljs-keyword">PROCEDURAL</span>,
<span class="hljs-keyword">PROCEDURES</span>,
<span class="hljs-keyword">RECURSIVE</span>, <span class="hljs-comment">-- create view</span>
<span class="hljs-keyword">REFERENCING OLD</span> <span class="hljs-keyword">TABLE</span>, <span class="hljs-keyword">REFERENCING NEW</span> <span class="hljs-keyword">TABLE</span>,
<span class="hljs-keyword">REFRESH</span> <span class="hljs-keyword">VERSION</span>, <span class="hljs-keyword">REFRESH</span> <span class="hljs-keyword">PUBLICATION</span> ( .. ),
<span class="hljs-keyword">REINDEX</span> ( .. ),
<span class="hljs-keyword">REPEATABLE</span> ( .. ), <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">REPLICA</span> <span class="hljs-keyword">IDENTITY</span>
<span class="hljs-keyword">DEFAULT</span>, <span class="hljs-keyword">USING</span> <span class="hljs-keyword">INDEX</span>, <span class="hljs-keyword">FULL</span>, <span class="hljs-keyword">NOTHING</span>,
<span class="hljs-keyword">RENAME</span>
<span class="hljs-keyword">CONSTRAINT</span> .. <span class="hljs-keyword">TO</span>, <span class="hljs-keyword">TO</span>, <span class="hljs-keyword">COLUMN</span> .. <span class="hljs-keyword">TO</span>,
<span class="hljs-keyword">RESET</span>, <span class="hljs-keyword">RESET</span> <span class="hljs-keyword">ALL</span>, <span class="hljs-keyword">RESET</span> ( .. ),
<span class="hljs-keyword">RESTART</span> <span class="hljs-number">100</span>, <span class="hljs-keyword">RESTART</span> <span class="hljs-keyword">WITH</span> <span class="hljs-number">100</span>,
<span class="hljs-keyword">RESTART</span> <span class="hljs-keyword">IDENTITY</span>, <span class="hljs-keyword">CONTINUE</span> <span class="hljs-keyword">IDENTITY</span>, <span class="hljs-comment">-- truncate</span>
<span class="hljs-keyword">RETURNS</span>, <span class="hljs-keyword">RETURNS</span> <span class="hljs-keyword">TABLE</span> ( .. ),
<span class="hljs-keyword">RETURNING</span>,
<span class="hljs-keyword">ROLLUP</span> ( .. ), <span class="hljs-keyword">CUBE</span> ( .. ), <span class="hljs-keyword">GROUPING SETS</span> ( .. ),
<span class="hljs-keyword">ROUTINES</span>,
<span class="hljs-keyword">ROW</span>, <span class="hljs-keyword">ROW</span> ( .. ),
<span class="hljs-keyword">GRANT</span> <span class="hljs-keyword">OPTION</span>,
<span class="hljs-keyword">ROWS</span> <span class="hljs-number">100</span>,
<span class="hljs-keyword">SCROLL CURSOR</span>, <span class="hljs-keyword">NO SCROLL CURSOR</span>, <span class="hljs-keyword">BINARY CURSOR</span>, <span class="hljs-keyword">INSENSITIVE CURSOR</span>, <span class="hljs-comment">-- declare</span>
<span class="hljs-keyword">SEQUENCES</span>,
<span class="hljs-keyword">SECURITY</span> <span class="hljs-keyword">INVOKER</span>, <span class="hljs-keyword">SECURITY</span> <span class="hljs-keyword">DEFINER</span>,
<span class="hljs-keyword">SERVER</span>,
<span class="hljs-keyword">SESSION</span>, <span class="hljs-comment">-- set</span>
<span class="hljs-keyword">SKIP LOCKED</span>, <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">SNAPSHOT</span>, <span class="hljs-comment">-- set transaction</span>
<span class="hljs-keyword">STABLE</span>,
<span class="hljs-keyword">START</span> <span class="hljs-number">100</span>, <span class="hljs-keyword">START</span> <span class="hljs-keyword">WITH</span> <span class="hljs-number">100</span>,
<span class="hljs-keyword">STORAGE</span>,
<span class="hljs-keyword">STRICT</span>,
<span class="hljs-keyword">SYSTEM</span>, <span class="hljs-comment">-- reindex</span>
<span class="hljs-keyword">TABLES</span>,
<span class="hljs-keyword">TABLESAMPLE</span>,
<span class="hljs-keyword">TEMPORARY</span>, <span class="hljs-keyword">TEMP</span>, <span class="hljs-comment">-- create sequence/table/view, discard</span>
<span class="hljs-keyword">TO</span> <span class="hljs-keyword">GROUP</span>, <span class="hljs-built_in">PUBLIC</span> <span class="hljs-keyword">WITH</span> <span class="hljs-keyword">GRANT</span> <span class="hljs-keyword">OPTION</span>,
<span class="hljs-keyword">TO</span> <span class="hljs-string">'..'</span>, <span class="hljs-keyword">TO PROGRAM</span>, <span class="hljs-keyword">TO STDOUT</span>,
<span class="hljs-keyword">TRANSFORM</span> <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">TYPE</span>,
<span class="hljs-keyword">TRUSTED</span>,
<span class="hljs-keyword">TYPE</span>,
<span class="hljs-keyword">UNIQUE</span>,
<span class="hljs-keyword">UNION</span>, <span class="hljs-keyword">INTERSECT</span>, <span class="hljs-keyword">EXCEPT</span>, <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">UNLOGGED</span>,
<span class="hljs-keyword">UPDATE</span> <span class="hljs-keyword">TO</span>,
<span class="hljs-keyword">USING</span> .., <span class="hljs-keyword">USING</span> ( .. ),
<span class="hljs-keyword">VACUUM</span> ( .. ),
<span class="hljs-keyword">VALIDATE</span> <span class="hljs-keyword">CONSTRAINT</span>,
<span class="hljs-keyword">VALIDATOR</span>, <span class="hljs-keyword">NO</span> <span class="hljs-keyword">VALIDATOR</span>,
<span class="hljs-keyword">VALUES</span>, <span class="hljs-keyword">VALUES</span> ( .. ),
<span class="hljs-keyword">VERBOSE</span>,
<span class="hljs-keyword">VOLATILE</span>,
<span class="hljs-keyword">WHEN</span> ( .. ),
<span class="hljs-keyword">WHERE</span>, <span class="hljs-keyword">WHERE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">OF</span>,
<span class="hljs-keyword">WINDOW</span>,
<span class="hljs-keyword">WITH</span>, <span class="hljs-keyword">WITH</span> <span class="hljs-keyword">RECURSIVE</span>,
<span class="hljs-keyword">WITH</span> ALLOW_CONNECTIONS <span class="hljs-number">10</span> <span class="hljs-keyword">CONNECTION</span> <span class="hljs-keyword">LIMIT</span> <span class="hljs-number">1</span> IS_TEMPLATE <span class="hljs-keyword">true</span>,
<span class="hljs-keyword">WITH</span> <span class="hljs-keyword">CHECK</span> ( .. ),
<span class="hljs-keyword">WITH DATA</span>, <span class="hljs-keyword">WITH NO DATA</span>,
<span class="hljs-keyword">WITH</span> <span class="hljs-keyword">FUNCTION</span>, <span class="hljs-keyword">WITHOUT</span> <span class="hljs-keyword">FUNCTION</span>, <span class="hljs-keyword">WITH</span> <span class="hljs-keyword">INOUT</span>,
<span class="hljs-keyword">WITH</span> <span class="hljs-keyword">OPTIONS</span>,
<span class="hljs-keyword">WITH ORDINALITY</span>, <span class="hljs-comment">-- select</span>
<span class="hljs-keyword">WITH CASCADED CHECK OPTION</span>, <span class="hljs-keyword">WITH LOCAL CHECK OPTION</span>,
<span class="hljs-keyword">WITH HOLD</span>, <span class="hljs-keyword">WITHOUT HOLD</span>, <span class="hljs-comment">-- declare</span>
<span class="hljs-keyword">WITH</span>, <span class="hljs-keyword">WITH</span> ( .. ), ();

View File

@@ -0,0 +1,160 @@
-- clauses (part 2)
ADMIN OPTION,
ALL,
ANALYZE, ANALYZE ( .. ),
AS ASSIGNMENT, AS IMPLICIT,
AS PERMISSIVE, AS RESTRICTIVE,
AS ENUM, AS RANGE,
AS ( .. ), -- select
ASC, DESC,
ATTACH PARTITION,
AUTHORIZATION,
BEFORE, AFTER, INSTEAD OF,
CACHE 100, NO CYCLE,
CALLED ON NULL INPUT, RETURNS NULL ON NULL INPUT,
COLLATE,
CONCURRENTLY,
CONNECTION '..',
CONSTRAINT,
COST 100,
CLUSTER ON,
CURSOR,
DEPENDS ON EXTENSION,
DISABLE, ENABLE
REPLICA, ALWAYS,
TRIGGER, TRIGGER USER, REPLICA TRIGGER, ALWAYS TRIGGER, TRIGGER ALL,
RULE, REPLICA RULE, ALWAYS RULE,
ROW LEVEL SECURITY, FORCE ROW LEVEL SECURITY, NO FORCE ROW LEVEL SECURITY,
DISCARD PLANS,
DISTINCT, DISTINCT ON ( .. ), -- select
DO ALSO .., DO INSTEAD .., DO ALSO NOTHING, DO INSTEAD NOTHING,
DO NOTHING, DO UPDATE,
EXCEPT,
EXECUTE PROCEDURE,
EXPLAIN ( .. ),
EXTERNAL,
FAMILY,
FOR ROLE .. IN SCHEMA,
FOR USER,
FOR SEARCH, FOR ORDER BY,
FOR TABLE, FOR ALL TABLES,
FOR VALUES, FOR VALUES FROM .. TO, FOR VALUES IN ( .. ),
FOR ROW, FOR EACH ROW, FOR STATEMENT, FOR EACH STATEMENT,
FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE, FOR KEY SHARE,
FROM,
FROM '..', FROM PROGRAM, FROM STDIN,
FROM SQL WITH FUNCTION, TO SQL WITH FUNCTION,
FROM ( .. ), -- select
FUNCTION, FUNCTIONS,
GLOBAL, -- create global table
GROUP BY,
HAVING,
SELECT,
INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, USAGE, EXECUTE, ALL PRIVILEGES,
CONNECT, TEMPORARY, TEMP,
HANDLER, NO HANDLER
IF EXISTS, IF NOT EXISTS,
IMMUTABLE,
IN
ACCESS SHARE MODE, ROW SHARE MODE, ROW EXCLUSIVE MODE, SHARE UPDATE EXCLUSIVE MODE,
SHARE MODE, SHARE ROW EXCLUSIVE MODE, EXCLUSIVE MODE, ACCESS EXCLUSIVE MODE,
INCREMENT 100, INCREMENT BY 100,
INHERIT, NO INHERIT,
INHERITS ( .. ),
INLINE,
INTO,
JOIN, INNER JOIN, LEFT OUTER JOIN, RIGHT JOIN, FULL JOIN, CROSS JOIN,
LANGUAGE,
LATERAL,
LEAKPROOF, NOT LEAKPROOF,
LIMIT, LIMIT TO,
LOCAL, -- create local table, set
LOCATION,
MAXVALUE 100, NO MAXVALUE,
MINVALUE 100, NO MINVALUE,
NATURAL,
FETCH NEXT, FETCH PRIOR, FETCH FIRST, FETCH LAST, FETCH ABSOLUTE 10, FETCH RELATIVE 10,
FETCH ALL, FETCH FORWARD, FETCH FORWARD 10, FETCH FORWARD ALL,
FETCH BACKWARD, FETCH BACKWARD 10, FETCH BACKWARD ALL,
NOWAIT,
NULLS FIRST, NULLS LAST,
OFFSET 10 ROW, OFFSET 10 ROWS, -- select
ON TABLES, ON SEQUENCES, ON FUNCTIONS, ON ROUTINES, ON TYPES, ON SCHEMAS,
ON COMMIT PRESERVE ROWS, ON COMMIT DELETE ROWS, ON COMMIT DROP,
ONLY,
OPTIONS ( .. ),
OPERATOR,
OR REPLACE,
OVERRIDING SYSTEM VALUE, OVERRIDING USER VALUE,
OWNER TO .., OWNER TO CURRENT_USER, OWNER TO SESSION_USER,
OWNED BY,
PARALLEL UNSAFE, PARALLEL RESTRICTED, PARALLEL SAFE,
PARTITION BY RANGE (), PARTITION BY LIST (), PARTITION BY HASH (),
PARTITION OF ..,
PREPARE,
PROCEDURAL,
PROCEDURES,
RECURSIVE, -- create view
REFERENCING OLD TABLE, REFERENCING NEW TABLE,
REFRESH VERSION, REFRESH PUBLICATION ( .. ),
REINDEX ( .. ),
REPEATABLE ( .. ), -- select
REPLICA IDENTITY
DEFAULT, USING INDEX, FULL, NOTHING,
RENAME
CONSTRAINT .. TO, TO, COLUMN .. TO,
RESET, RESET ALL, RESET ( .. ),
RESTART 100, RESTART WITH 100,
RESTART IDENTITY, CONTINUE IDENTITY, -- truncate
RETURNS, RETURNS TABLE ( .. ),
RETURNING,
ROLLUP ( .. ), CUBE ( .. ), GROUPING SETS ( .. ),
ROUTINES,
ROW, ROW ( .. ),
GRANT OPTION,
ROWS 100,
SCROLL CURSOR, NO SCROLL CURSOR, BINARY CURSOR, INSENSITIVE CURSOR, -- declare
SEQUENCES,
SECURITY INVOKER, SECURITY DEFINER,
SERVER,
SESSION, -- set
SKIP LOCKED, -- select
SNAPSHOT, -- set transaction
STABLE,
START 100, START WITH 100,
STORAGE,
STRICT,
SYSTEM, -- reindex
TABLES,
TABLESAMPLE,
TEMPORARY, TEMP, -- create sequence/table/view, discard
TO GROUP, PUBLIC WITH GRANT OPTION,
TO '..', TO PROGRAM, TO STDOUT,
TRANSFORM FOR TYPE,
TRUSTED,
TYPE,
UNIQUE,
UNION, INTERSECT, EXCEPT, -- select
UNLOGGED,
UPDATE TO,
USING .., USING ( .. ),
VACUUM ( .. ),
VALIDATE CONSTRAINT,
VALIDATOR, NO VALIDATOR,
VALUES, VALUES ( .. ),
VERBOSE,
VOLATILE,
WHEN ( .. ),
WHERE, WHERE CURRENT OF,
WINDOW,
WITH, WITH RECURSIVE,
WITH ALLOW_CONNECTIONS 10 CONNECTION LIMIT 1 IS_TEMPLATE true,
WITH CHECK ( .. ),
WITH DATA, WITH NO DATA,
WITH FUNCTION, WITHOUT FUNCTION, WITH INOUT,
WITH OPTIONS,
WITH ORDINALITY, -- select
WITH CASCADED CHECK OPTION, WITH LOCAL CHECK OPTION,
WITH HOLD, WITHOUT HOLD, -- declare
WITH, WITH ( .. ), ();

View File

@@ -0,0 +1,21 @@
<span class="hljs-comment">-- column_constraint, table_constraint:</span>
<span class="hljs-keyword">CONSTRAINT</span>,
<span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, <span class="hljs-keyword">NULL</span>,
<span class="hljs-keyword">CHECK</span> ( .. ) <span class="hljs-keyword">NO</span> <span class="hljs-keyword">INHERIT</span>,
<span class="hljs-keyword">DEFAULT</span> ..,
<span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">USING</span> .. ( .. <span class="hljs-keyword">WITH</span> .. ) .. <span class="hljs-keyword">WHERE</span> ( .. ),
<span class="hljs-keyword">GENERATED</span> <span class="hljs-keyword">ALWAYS</span> <span class="hljs-keyword">AS</span> <span class="hljs-keyword">IDENTITY</span>,
<span class="hljs-keyword">GENERATED</span> <span class="hljs-keyword">ALWAYS</span> <span class="hljs-keyword">AS</span> <span class="hljs-keyword">IDENTITY</span> ( .. ),
<span class="hljs-keyword">GENERATED</span> <span class="hljs-keyword">BY</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">AS</span> <span class="hljs-keyword">IDENTITY</span>,
<span class="hljs-keyword">UNIQUE</span> .., <span class="hljs-keyword">UNIQUE</span> ( .. ),
<span class="hljs-keyword">PRIMARY KEY</span> .., <span class="hljs-keyword">PRIMARY KEY</span> ( .. ),
<span class="hljs-keyword">REFERENCES</span>, <span class="hljs-keyword">REFERENCES</span> .. ( .. ),
<span class="hljs-keyword">MATCH FULL</span>, <span class="hljs-keyword">MATCH PARTIAL</span>, <span class="hljs-keyword">MATCH SIMPLE</span>,
<span class="hljs-keyword">ON</span> <span class="hljs-keyword">DELETE</span> .., <span class="hljs-keyword">ON</span> <span class="hljs-keyword">UPDATE</span> ..,
<span class="hljs-keyword">DEFERRABLE</span>, <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">DEFERRABLE</span>, <span class="hljs-keyword">INITIALLY</span> <span class="hljs-keyword">DEFERRED</span>, <span class="hljs-keyword">INITIALLY</span> <span class="hljs-keyword">IMMEDIATE</span>,
<span class="hljs-keyword">FOREIGN KEY</span> ( .. ) <span class="hljs-keyword">REFERENCES</span>,
<span class="hljs-keyword">USING</span> <span class="hljs-keyword">INDEX</span> bar,
<span class="hljs-keyword">INCLUDE</span> ( .. ),
<span class="hljs-keyword">WITH</span> ( .. ),
<span class="hljs-keyword">USING</span> <span class="hljs-keyword">INDEX</span> <span class="hljs-keyword">TABLESPACE</span>;

View File

@@ -0,0 +1,21 @@
-- column_constraint, table_constraint:
CONSTRAINT,
NOT NULL, NULL,
CHECK ( .. ) NO INHERIT,
DEFAULT ..,
EXCLUDE USING .. ( .. WITH .. ) .. WHERE ( .. ),
GENERATED ALWAYS AS IDENTITY,
GENERATED ALWAYS AS IDENTITY ( .. ),
GENERATED BY DEFAULT AS IDENTITY,
UNIQUE .., UNIQUE ( .. ),
PRIMARY KEY .., PRIMARY KEY ( .. ),
REFERENCES, REFERENCES .. ( .. ),
MATCH FULL, MATCH PARTIAL, MATCH SIMPLE,
ON DELETE .., ON UPDATE ..,
DEFERRABLE, NOT DEFERRABLE, INITIALLY DEFERRED, INITIALLY IMMEDIATE,
FOREIGN KEY ( .. ) REFERENCES,
USING INDEX bar,
INCLUDE ( .. ),
WITH ( .. ),
USING INDEX TABLESPACE;

View File

@@ -0,0 +1,44 @@
<span class="hljs-comment">-- options of some commands</span>
<span class="hljs-keyword">WITH</span>, <span class="hljs-keyword">WITH</span> ( .. ), (),
<span class="hljs-comment">-- alter/create role</span>
<span class="hljs-keyword">SUPERUSER</span>, <span class="hljs-keyword">NOSUPERUSER</span>, <span class="hljs-keyword">CREATEDB</span>, <span class="hljs-keyword">NOCREATEDB</span>, <span class="hljs-keyword">CREATEROLE</span>, <span class="hljs-keyword">NOCREATEROLE</span>, <span class="hljs-keyword">INHERIT</span>, <span class="hljs-keyword">NOINHERIT</span>,
<span class="hljs-keyword">LOGIN</span>, <span class="hljs-keyword">NOLOGIN</span>, <span class="hljs-keyword">REPLICATION</span>, <span class="hljs-keyword">NOREPLICATION</span>, <span class="hljs-keyword">BYPASSRLS</span>, <span class="hljs-keyword">NOBYPASSRLS</span>, <span class="hljs-keyword">CONNECTION</span> <span class="hljs-keyword">LIMIT</span> <span class="hljs-number">100</span>,
<span class="hljs-keyword">ENCRYPTED</span> <span class="hljs-keyword">PASSWORD</span>, <span class="hljs-keyword">UNENCRYPTED</span> <span class="hljs-keyword">PASSWORD</span>, <span class="hljs-keyword">VALID</span> <span class="hljs-keyword">UNTIL</span> <span class="hljs-string">'2020-01-01'</span>,
<span class="hljs-keyword">IN</span> <span class="hljs-keyword">ROLE</span>, <span class="hljs-keyword">IN</span> <span class="hljs-keyword">GROUP</span>, <span class="hljs-keyword">ROLE</span>, <span class="hljs-keyword">ADMIN</span>, <span class="hljs-keyword">USER</span>, <span class="hljs-keyword">SYSID</span>;
<span class="hljs-comment">-- copy</span>
<span class="hljs-keyword">FORMAT</span>, <span class="hljs-keyword">OIDS</span>, <span class="hljs-keyword">FREEZE</span>, <span class="hljs-keyword">DELIMITER</span>, <span class="hljs-keyword">NULL</span> <span class="hljs-string">'..'</span>, <span class="hljs-keyword">HEADER</span>, <span class="hljs-keyword">QUOTE</span>, <span class="hljs-keyword">ESCAPE</span>, <span class="hljs-keyword">FORCE_QUOTE</span>,
<span class="hljs-keyword">FORCE_NOT_NULL</span>, <span class="hljs-keyword">FORCE_NULL</span>, <span class="hljs-keyword">ENCODING</span>;
<span class="hljs-comment">-- create aggregate</span>
BASETYPE=, SFUNC=, STYPE=, SSPACE=, FINALFUNC=, FINALFUNC_EXTRA=,
FINALFUNC_MODIFY=, COMBINEFUNC=, SERIALFUNC=, DESERIALFUNC=,
INITCOND=, MSFUNC=, MINVFUNC=, MSTYPE=, MSSPACE=, MFINALFUNC=, MFINALFUNC_EXTRA=,
MFINALFUNC_MODIFY=, MINITCOND=, SORTOP=, PARALLEL=;
<span class="hljs-comment">-- create collation</span>
LOCALE=, LC_COLLATE=, LC_CTYPE=, PROVIDER=, VERSION=;
<span class="hljs-comment">-- create dataase</span>
OWNER=, TEMPLATE=, ENCODING=, LC_COLLATE=, LC_CTYPE=, TABLESPACE=, ALLOW_CONNECTIONS=,
CONNECTION LIMIT=, IS_TEMPLATE=;
<span class="hljs-comment">-- create extension</span>
<span class="hljs-keyword">SCHEMA</span>, <span class="hljs-keyword">VERSION</span>, <span class="hljs-keyword">FROM</span>, <span class="hljs-keyword">CASCADE</span>;
<span class="hljs-comment">-- create operator</span>
PROCEDURE=, LEFTARG=, RIGHTARG=, COMMUTATOR=, NEGATOR=, RESTRICT=, JOIN=, HASHES=, MERGES=
<span class="hljs-comment">-- create text search configuration</span>
PARSER=, COPY=;
<span class="hljs-comment">-- create text search dictionary</span>
TEMPLATE=;
<span class="hljs-comment">-- create text search parser</span>
START=, GETTOKEN=, END=, LEXTYPES=, HEADLINE=;
<span class="hljs-comment">-- create text search template</span>
INIT=, LEXIZE=;
<span class="hljs-comment">-- create type</span>
SUBTYPE=, SUBTYPE_OPCLASS=, COLLATION=, CANONICAL=, SUBTYPE_DIFF=,
INPUT=, OUTPUT=, RECEIVE=, SEND=, TYPMOD_IN=, TYPMOD_OUT=, ANALYZE=, INTERNALLENGTH=, PASSEDBYVALUE=,
ALIGNMENT=, STORAGE=, LIKE=, CATEGORY=, PREFERRED=, DEFAULT=, ELEMENT=, DELIMITER=, COLLATABLE=;
<span class="hljs-comment">-- analyze/explain/vacuum</span>
<span class="hljs-keyword">ANALYZE</span>, <span class="hljs-keyword">VERBOSE</span>, <span class="hljs-keyword">COSTS</span>, <span class="hljs-keyword">BUFFERS</span>, <span class="hljs-keyword">TIMING</span>, <span class="hljs-keyword">SUMMARY</span>, <span class="hljs-keyword">FORMAT TEXT</span>, <span class="hljs-keyword">FORMAT XML</span>, <span class="hljs-keyword">FORMAT JSON</span>,
<span class="hljs-keyword">FORMAT YAML</span>, <span class="hljs-keyword">FREEZE</span>, <span class="hljs-keyword">FULL</span>, <span class="hljs-keyword">DISABLE_PAGE_SKIPPING</span>;
<span class="hljs-comment">-- table like options</span>
<span class="hljs-keyword">TABLE</span> t1(<span class="hljs-keyword">LIKE</span> t1 <span class="hljs-keyword">INCLUDING COMMENTS</span> <span class="hljs-keyword">INCLUDING CONSTRAINTS</span> <span class="hljs-keyword">EXCLUDING DEFAULTS</span> <span class="hljs-keyword">INCLUDING IDENTITY</span> <span class="hljs-keyword">INCLUDING INDEXES</span> <span class="hljs-keyword">INCLUDING STATISTICS</span> <span class="hljs-keyword">INCLUDING STORAGE</span> <span class="hljs-keyword">EXCLUDING ALL</span>);

View File

@@ -0,0 +1,44 @@
-- options of some commands
WITH, WITH ( .. ), (),
-- alter/create role
SUPERUSER, NOSUPERUSER, CREATEDB, NOCREATEDB, CREATEROLE, NOCREATEROLE, INHERIT, NOINHERIT,
LOGIN, NOLOGIN, REPLICATION, NOREPLICATION, BYPASSRLS, NOBYPASSRLS, CONNECTION LIMIT 100,
ENCRYPTED PASSWORD, UNENCRYPTED PASSWORD, VALID UNTIL '2020-01-01',
IN ROLE, IN GROUP, ROLE, ADMIN, USER, SYSID;
-- copy
FORMAT, OIDS, FREEZE, DELIMITER, NULL '..', HEADER, QUOTE, ESCAPE, FORCE_QUOTE,
FORCE_NOT_NULL, FORCE_NULL, ENCODING;
-- create aggregate
BASETYPE=, SFUNC=, STYPE=, SSPACE=, FINALFUNC=, FINALFUNC_EXTRA=,
FINALFUNC_MODIFY=, COMBINEFUNC=, SERIALFUNC=, DESERIALFUNC=,
INITCOND=, MSFUNC=, MINVFUNC=, MSTYPE=, MSSPACE=, MFINALFUNC=, MFINALFUNC_EXTRA=,
MFINALFUNC_MODIFY=, MINITCOND=, SORTOP=, PARALLEL=;
-- create collation
LOCALE=, LC_COLLATE=, LC_CTYPE=, PROVIDER=, VERSION=;
-- create dataase
OWNER=, TEMPLATE=, ENCODING=, LC_COLLATE=, LC_CTYPE=, TABLESPACE=, ALLOW_CONNECTIONS=,
CONNECTION LIMIT=, IS_TEMPLATE=;
-- create extension
SCHEMA, VERSION, FROM, CASCADE;
-- create operator
PROCEDURE=, LEFTARG=, RIGHTARG=, COMMUTATOR=, NEGATOR=, RESTRICT=, JOIN=, HASHES=, MERGES=
-- create text search configuration
PARSER=, COPY=;
-- create text search dictionary
TEMPLATE=;
-- create text search parser
START=, GETTOKEN=, END=, LEXTYPES=, HEADLINE=;
-- create text search template
INIT=, LEXIZE=;
-- create type
SUBTYPE=, SUBTYPE_OPCLASS=, COLLATION=, CANONICAL=, SUBTYPE_DIFF=,
INPUT=, OUTPUT=, RECEIVE=, SEND=, TYPMOD_IN=, TYPMOD_OUT=, ANALYZE=, INTERNALLENGTH=, PASSEDBYVALUE=,
ALIGNMENT=, STORAGE=, LIKE=, CATEGORY=, PREFERRED=, DEFAULT=, ELEMENT=, DELIMITER=, COLLATABLE=;
-- analyze/explain/vacuum
ANALYZE, VERBOSE, COSTS, BUFFERS, TIMING, SUMMARY, FORMAT TEXT, FORMAT XML, FORMAT JSON,
FORMAT YAML, FREEZE, FULL, DISABLE_PAGE_SKIPPING;
-- table like options
TABLE t1(LIKE t1 INCLUDING COMMENTS INCLUDING CONSTRAINTS EXCLUDING DEFAULTS INCLUDING IDENTITY INCLUDING INDEXES INCLUDING STATISTICS INCLUDING STORAGE EXCLUDING ALL);

View File

@@ -0,0 +1,61 @@
<span class="hljs-comment">-- PL/pgSQL</span>
<span class="hljs-symbol">&lt;&lt; outerblock &gt;&gt;</span>
<span class="hljs-keyword">DECLARE</span>
quantity <span class="hljs-type">integer</span> := <span class="hljs-number">30</span>;
subtotal <span class="hljs-keyword">ALIAS</span> <span class="hljs-keyword">FOR</span> <span class="hljs-meta">$1</span>;
prior <span class="hljs-keyword">ALIAS</span> <span class="hljs-keyword">FOR</span> <span class="hljs-built_in">old</span>;
arow <span class="hljs-type">record</span>;
curs1 <span class="hljs-type">refcursor</span>;
curs2 <span class="hljs-keyword">CURSOR</span> <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> tenk1;
<span class="hljs-keyword">BEGIN</span>
<span class="hljs-keyword">DECLARE</span>
quantity <span class="hljs-keyword">CONSTANT</span> <span class="hljs-type">integer</span> := <span class="hljs-number">80</span>;
myrow tablename<span class="hljs-meta">%ROWTYPE</span>;
myfield tablename.columnname<span class="hljs-meta">%TYPE</span>;
<span class="hljs-keyword">BEGIN</span>
<span class="hljs-keyword">PERFORM</span> pg_sleep(<span class="hljs-number">1</span>);
<span class="hljs-keyword">RAISE</span> <span class="hljs-keyword">NOTICE</span> <span class="hljs-string">'Quantity here is %'</span>, quantity;
<span class="hljs-keyword">END</span>;
<span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">INTO</span> myrec <span class="hljs-keyword">FROM</span> emp <span class="hljs-keyword">WHERE</span> empname = myname;
<span class="hljs-keyword">IF</span> <span class="hljs-keyword">NOT</span> <span class="hljs-built_in">FOUND</span> <span class="hljs-keyword">THEN</span>
<span class="hljs-keyword">EXIT</span> <span class="hljs-symbol">&lt;&lt;outer_block&gt;&gt;</span>;
<span class="hljs-keyword">ELSIF</span> quantity &lt; <span class="hljs-number">0</span> <span class="hljs-keyword">THEN</span>
<span class="hljs-keyword">ASSERT</span> a &gt; b, <span class="hljs-string">'Bad luck'</span>;
<span class="hljs-keyword">END</span> <span class="hljs-keyword">IF</span>;
<span class="hljs-keyword">FOR</span> r <span class="hljs-keyword">IN</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> foo <span class="hljs-keyword">LOOP</span>
<span class="hljs-keyword">CONTINUE</span> <span class="hljs-keyword">WHEN</span> count &lt; <span class="hljs-number">50</span>;
<span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
<span class="hljs-keyword">FOR</span> i <span class="hljs-keyword">IN</span> <span class="hljs-keyword">REVERSE</span> <span class="hljs-number">10.</span><span class="hljs-number">.1</span> <span class="hljs-keyword">LOOP</span>
<span class="hljs-keyword">FOREACH</span> x <span class="hljs-keyword">IN</span> <span class="hljs-keyword">ARRAY</span> <span class="hljs-meta">$1</span>
<span class="hljs-keyword">LOOP</span>
s := s + x;
<span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
<span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
<span class="hljs-keyword">WHILE</span> <span class="hljs-keyword">NOT</span> done <span class="hljs-keyword">LOOP</span>
<span class="hljs-keyword">CASE</span> x
<span class="hljs-keyword">WHEN</span> <span class="hljs-number">1</span>, <span class="hljs-number">2</span> <span class="hljs-keyword">THEN</span> <span class="hljs-keyword">RETURN NEXT</span> r;
<span class="hljs-keyword">ELSE</span> <span class="hljs-keyword">RETURN QUERY</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> sales;
<span class="hljs-keyword">END</span> <span class="hljs-keyword">CASE</span>;
<span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
<span class="hljs-keyword">EXECUTE</span> <span class="hljs-string">'SELECT count(*) FROM mytable WHERE inserted_by = $1'</span> <span class="hljs-keyword">INTO</span> c <span class="hljs-keyword">USING</span> checked_user;
<span class="hljs-keyword">OPEN</span> curs1 <span class="hljs-keyword">SCROLL FOR</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> foo <span class="hljs-keyword">WHERE</span> key = mykey;
<span class="hljs-keyword">FETCH LAST</span> <span class="hljs-keyword">FROM</span> curs1 <span class="hljs-keyword">INTO</span> x, y;
<span class="hljs-keyword">MOVE RELATIVE</span> <span class="hljs-number">-2</span> <span class="hljs-keyword">FROM</span> curs1;
<span class="hljs-keyword">UPDATE</span> foo <span class="hljs-keyword">SET</span> dataval = myval <span class="hljs-keyword">WHERE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">OF</span> curs1;
<span class="hljs-keyword">CLOSE</span> curs1;
<span class="hljs-keyword">RETURN</span> quantity;
<span class="hljs-keyword">EXCEPTION</span>
<span class="hljs-keyword">WHEN</span> <span class="hljs-built_in">NO_DATA_FOUND</span> <span class="hljs-keyword">THEN</span>
<span class="hljs-keyword">GET</span> <span class="hljs-keyword">DIAGNOSTICS</span> integer_var = <span class="hljs-built_in">ROW_COUNT</span>;
<span class="hljs-keyword">WHEN</span> <span class="hljs-built_in">SQLSTATE</span> <span class="hljs-string">'22012'</span> <span class="hljs-keyword">THEN</span>
<span class="hljs-keyword">NULL</span>;
<span class="hljs-keyword">END</span>;

View File

@@ -0,0 +1,61 @@
-- PL/pgSQL
<< outerblock >>
DECLARE
quantity integer := 30;
subtotal ALIAS FOR $1;
prior ALIAS FOR old;
arow record;
curs1 refcursor;
curs2 CURSOR FOR SELECT * FROM tenk1;
BEGIN
DECLARE
quantity CONSTANT integer := 80;
myrow tablename%ROWTYPE;
myfield tablename.columnname%TYPE;
BEGIN
PERFORM pg_sleep(1);
RAISE NOTICE 'Quantity here is %', quantity;
END;
SELECT * INTO myrec FROM emp WHERE empname = myname;
IF NOT FOUND THEN
EXIT <<outer_block>>;
ELSIF quantity < 0 THEN
ASSERT a > b, 'Bad luck';
END IF;
FOR r IN SELECT * FROM foo LOOP
CONTINUE WHEN count < 50;
END LOOP;
FOR i IN REVERSE 10..1 LOOP
FOREACH x IN ARRAY $1
LOOP
s := s + x;
END LOOP;
END LOOP;
WHILE NOT done LOOP
CASE x
WHEN 1, 2 THEN RETURN NEXT r;
ELSE RETURN QUERY SELECT * FROM sales;
END CASE;
END LOOP;
EXECUTE 'SELECT count(*) FROM mytable WHERE inserted_by = $1' INTO c USING checked_user;
OPEN curs1 SCROLL FOR SELECT * FROM foo WHERE key = mykey;
FETCH LAST FROM curs1 INTO x, y;
MOVE RELATIVE -2 FROM curs1;
UPDATE foo SET dataval = myval WHERE CURRENT OF curs1;
CLOSE curs1;
RETURN quantity;
EXCEPTION
WHEN NO_DATA_FOUND THEN
GET DIAGNOSTICS integer_var = ROW_COUNT;
WHEN SQLSTATE '22012' THEN
NULL;
END;

View File

@@ -0,0 +1,99 @@
<span class="hljs-comment">-- SQL Commands</span>
<span class="hljs-keyword">ABORT</span> <span class="hljs-keyword">WORK</span>, <span class="hljs-keyword">ABORT</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">ANALYZE</span>,
<span class="hljs-keyword">BEGIN</span> <span class="hljs-keyword">WORK</span>, <span class="hljs-keyword">BEGIN</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">CALL</span>,
<span class="hljs-keyword">CHECKPOINT</span>,
<span class="hljs-keyword">CLOSE</span>,
<span class="hljs-keyword">CLUSTER</span>,
<span class="hljs-keyword">COMMENT</span>,
<span class="hljs-keyword">COMMIT</span> <span class="hljs-keyword">WORK</span>, <span class="hljs-keyword">COMMIT</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">COMMIT</span> <span class="hljs-keyword">PREPARED</span>,
<span class="hljs-keyword">COPY</span>,
<span class="hljs-keyword">CREATE</span>, <span class="hljs-keyword">ALTER</span>, <span class="hljs-keyword">DROP</span>
<span class="hljs-keyword">ACCESS</span> <span class="hljs-keyword">METHOD</span>,
<span class="hljs-keyword">AGGREGATE</span>,
<span class="hljs-keyword">CAST</span>,
<span class="hljs-keyword">COLLATION</span>,
<span class="hljs-keyword">CONVERSION</span>,
<span class="hljs-keyword">DATABASE</span>,
<span class="hljs-keyword">DOMAIN</span>,
<span class="hljs-keyword">EVENT TRIGGER</span>,
<span class="hljs-keyword">EXTENSION</span>,
<span class="hljs-keyword">FOREIGN DATA</span> <span class="hljs-keyword">WRAPPER</span>,
<span class="hljs-keyword">FOREIGN</span> <span class="hljs-keyword">TABLE</span>,
<span class="hljs-keyword">FUNCTION</span>,
<span class="hljs-keyword">GROUP</span>,
<span class="hljs-keyword">INDEX</span>,
<span class="hljs-keyword">LANGUAGE</span>,
<span class="hljs-keyword">MATERIALIZED</span> <span class="hljs-keyword">VIEW</span>,
<span class="hljs-keyword">OPERATOR</span>,
<span class="hljs-keyword">OPERATOR</span> <span class="hljs-keyword">CLASS</span>,
<span class="hljs-keyword">OPERATOR</span> <span class="hljs-keyword">FAMILY</span>,
<span class="hljs-keyword">POLICY</span>,
<span class="hljs-keyword">PROCEDURE</span>,
<span class="hljs-keyword">PUBLICATION</span>,
<span class="hljs-keyword">ROLE</span>,
<span class="hljs-keyword">ROUTINE</span>,
<span class="hljs-keyword">RULE</span>,
<span class="hljs-keyword">SCHEMA</span>,
<span class="hljs-keyword">SEQUENCE</span>,
<span class="hljs-keyword">SERVER</span>,
<span class="hljs-keyword">STATISTICS</span>,
<span class="hljs-keyword">SUBSCRIPTION</span>,
<span class="hljs-keyword">TABLE</span>,
<span class="hljs-keyword">TABLESPACE</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">CONFIGURATION</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">DICTIONARY</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">PARSER</span>,
<span class="hljs-keyword">TEXT SEARCH</span> <span class="hljs-keyword">TEMPLATE</span>,
<span class="hljs-keyword">TRANSFORM</span>,
<span class="hljs-keyword">TRIGGER</span>,
<span class="hljs-keyword">TYPE</span>,
<span class="hljs-keyword">USER</span>,
<span class="hljs-keyword">USER</span> <span class="hljs-keyword">MAPPING</span>,
<span class="hljs-keyword">VIEW</span>,
<span class="hljs-keyword">DEALLOCATE</span>,
<span class="hljs-keyword">DECLARE</span>,
<span class="hljs-keyword">DELETE</span>,
<span class="hljs-keyword">DISCARD</span>,
<span class="hljs-keyword">DO</span>,
<span class="hljs-keyword">END</span> <span class="hljs-keyword">WORK</span>, <span class="hljs-keyword">END</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">EXECUTE</span>,
<span class="hljs-keyword">EXPLAIN</span>,
<span class="hljs-keyword">FETCH</span>,
<span class="hljs-keyword">GRANT</span>,
<span class="hljs-keyword">IMPORT</span> <span class="hljs-keyword">FOREIGN</span> <span class="hljs-keyword">SCHEMA</span>,
<span class="hljs-keyword">INSERT</span>,
<span class="hljs-keyword">LISTEN</span>,
<span class="hljs-keyword">LOAD</span>,
<span class="hljs-keyword">LOCK</span>,
<span class="hljs-keyword">MOVE</span>,
<span class="hljs-keyword">NOTIFY</span>,
<span class="hljs-keyword">PREPARE</span>,
<span class="hljs-keyword">PREPARE</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">REASSIGN</span> <span class="hljs-keyword">OWNED</span>,
<span class="hljs-keyword">REFRESH</span> <span class="hljs-keyword">MATERIALIZED</span> <span class="hljs-keyword">VIEW</span>,
<span class="hljs-keyword">REINDEX</span>,
<span class="hljs-keyword">RELEASE</span> <span class="hljs-keyword">SAVEPOINT</span>,
<span class="hljs-keyword">RESET</span>,
<span class="hljs-keyword">REVOKE</span>,
<span class="hljs-keyword">ROLLBACK</span> <span class="hljs-keyword">WORK</span>, <span class="hljs-keyword">ROLLBACK</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">ROLLBACK</span> <span class="hljs-keyword">PREPARED</span>,
<span class="hljs-keyword">ROLLBACK</span> <span class="hljs-keyword">TO</span> <span class="hljs-keyword">SAVEPOINT</span>,
<span class="hljs-keyword">SAVEPOINT</span>,
<span class="hljs-keyword">SECURITY LABEL</span>,
<span class="hljs-keyword">SELECT</span>,
<span class="hljs-keyword">SET</span>,
<span class="hljs-keyword">SET CONSTRAINTS</span>,
<span class="hljs-keyword">SET</span> <span class="hljs-keyword">ROLE</span>, <span class="hljs-keyword">RESET</span> <span class="hljs-keyword">ROLE</span>,
<span class="hljs-keyword">SET</span> <span class="hljs-keyword">SESSION</span> <span class="hljs-keyword">AUTHORIZATION</span>, <span class="hljs-keyword">RESET</span> <span class="hljs-keyword">SESSION</span> <span class="hljs-keyword">AUTHORIZATION</span>,
<span class="hljs-keyword">SET</span> <span class="hljs-keyword">TRANSACTION</span>, <span class="hljs-keyword">SET</span> <span class="hljs-keyword">SESSION</span> <span class="hljs-keyword">CHARACTERISTICS</span> <span class="hljs-keyword">AS</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">SHOW</span>,
<span class="hljs-keyword">START</span> <span class="hljs-keyword">TRANSACTION</span>,
<span class="hljs-keyword">TRUNCATE</span>,
<span class="hljs-keyword">UNLISTEN</span>,
<span class="hljs-keyword">UPDATE</span>,
<span class="hljs-keyword">VACUUM</span>,
<span class="hljs-keyword">VALUES</span>;

View File

@@ -0,0 +1,99 @@
-- SQL Commands
ABORT WORK, ABORT TRANSACTION,
ANALYZE,
BEGIN WORK, BEGIN TRANSACTION,
CALL,
CHECKPOINT,
CLOSE,
CLUSTER,
COMMENT,
COMMIT WORK, COMMIT TRANSACTION,
COMMIT PREPARED,
COPY,
CREATE, ALTER, DROP
ACCESS METHOD,
AGGREGATE,
CAST,
COLLATION,
CONVERSION,
DATABASE,
DOMAIN,
EVENT TRIGGER,
EXTENSION,
FOREIGN DATA WRAPPER,
FOREIGN TABLE,
FUNCTION,
GROUP,
INDEX,
LANGUAGE,
MATERIALIZED VIEW,
OPERATOR,
OPERATOR CLASS,
OPERATOR FAMILY,
POLICY,
PROCEDURE,
PUBLICATION,
ROLE,
ROUTINE,
RULE,
SCHEMA,
SEQUENCE,
SERVER,
STATISTICS,
SUBSCRIPTION,
TABLE,
TABLESPACE,
TEXT SEARCH CONFIGURATION,
TEXT SEARCH DICTIONARY,
TEXT SEARCH PARSER,
TEXT SEARCH TEMPLATE,
TRANSFORM,
TRIGGER,
TYPE,
USER,
USER MAPPING,
VIEW,
DEALLOCATE,
DECLARE,
DELETE,
DISCARD,
DO,
END WORK, END TRANSACTION,
EXECUTE,
EXPLAIN,
FETCH,
GRANT,
IMPORT FOREIGN SCHEMA,
INSERT,
LISTEN,
LOAD,
LOCK,
MOVE,
NOTIFY,
PREPARE,
PREPARE TRANSACTION,
REASSIGN OWNED,
REFRESH MATERIALIZED VIEW,
REINDEX,
RELEASE SAVEPOINT,
RESET,
REVOKE,
ROLLBACK WORK, ROLLBACK TRANSACTION,
ROLLBACK PREPARED,
ROLLBACK TO SAVEPOINT,
SAVEPOINT,
SECURITY LABEL,
SELECT,
SET,
SET CONSTRAINTS,
SET ROLE, RESET ROLE,
SET SESSION AUTHORIZATION, RESET SESSION AUTHORIZATION,
SET TRANSACTION, SET SESSION CHARACTERISTICS AS TRANSACTION,
SHOW,
START TRANSACTION,
TRUNCATE,
UNLISTEN,
UPDATE,
VACUUM,
VALUES;

View File

@@ -0,0 +1,35 @@
<span class="hljs-comment">-- window functions</span>
<span class="hljs-comment">-- frame clause:</span>
<span class="hljs-keyword">RANGE</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span>,
<span class="hljs-keyword">RANGE</span> <span class="hljs-number">10</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">GROUP</span>,
<span class="hljs-keyword">RANGE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span> <span class="hljs-keyword">EXCLUDE TIES</span>,
<span class="hljs-keyword">RANGE</span> <span class="hljs-number">10</span> <span class="hljs-keyword">FOLLOWING</span> <span class="hljs-keyword">EXCLUDE NO OTHERS</span>,
<span class="hljs-keyword">RANGE</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">FOLLOWING</span>,
<span class="hljs-keyword">RANGE</span> <span class="hljs-keyword">BETWEEN</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">AND</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span>;
<span class="hljs-keyword">ROWS</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span>,
<span class="hljs-keyword">ROWS</span> <span class="hljs-number">10</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">GROUP</span>,
<span class="hljs-keyword">ROWS</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span> <span class="hljs-keyword">EXCLUDE TIES</span>,
<span class="hljs-keyword">ROWS</span> <span class="hljs-number">10</span> <span class="hljs-keyword">FOLLOWING</span> <span class="hljs-keyword">EXCLUDE NO OTHERS</span>,
<span class="hljs-keyword">ROWS</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">FOLLOWING</span>,
<span class="hljs-keyword">ROWS</span> <span class="hljs-keyword">BETWEEN</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">AND</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span>;
<span class="hljs-keyword">GROUPS</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span>,
<span class="hljs-keyword">GROUPS</span> <span class="hljs-number">10</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">EXCLUDE</span> <span class="hljs-keyword">GROUP</span>,
<span class="hljs-keyword">GROUPS</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span> <span class="hljs-keyword">EXCLUDE TIES</span>,
<span class="hljs-keyword">GROUPS</span> <span class="hljs-number">10</span> <span class="hljs-keyword">FOLLOWING</span> <span class="hljs-keyword">EXCLUDE NO OTHERS</span>,
<span class="hljs-keyword">GROUPS</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">FOLLOWING</span>,
<span class="hljs-keyword">GROUPS</span> <span class="hljs-keyword">BETWEEN</span> <span class="hljs-keyword">UNBOUNDED</span> <span class="hljs-keyword">PRECEDING</span> <span class="hljs-keyword">AND</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">ROW</span>;
<span class="hljs-comment">-- examples</span>
<span class="hljs-keyword">SELECT</span> string_agg(empno, <span class="hljs-string">','</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a) <span class="hljs-keyword">FROM</span> empsalary;
<span class="hljs-keyword">SELECT</span> percentile_cont(<span class="hljs-number">0.5</span>) <span class="hljs-keyword">WITHIN</span> <span class="hljs-keyword">GROUP</span> (<span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> income) <span class="hljs-keyword">FROM</span> households;
<span class="hljs-keyword">SELECT</span> count(*) <span class="hljs-keyword">FILTER</span> (<span class="hljs-keyword">WHERE</span> i &lt; <span class="hljs-number">5</span>) <span class="hljs-keyword">FROM</span> generate_series(<span class="hljs-number">1</span>,<span class="hljs-number">10</span>) <span class="hljs-keyword">AS</span> s(i);
<span class="hljs-keyword">SELECT</span> depname, empno, salary, avg(salary) <span class="hljs-keyword">OVER</span> (<span class="hljs-keyword">PARTITION</span> <span class="hljs-keyword">BY</span> depname) <span class="hljs-keyword">FROM</span> empsalary;
<span class="hljs-keyword">SELECT</span> salary, sum(salary) <span class="hljs-keyword">OVER</span> (<span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> salary) <span class="hljs-keyword">FROM</span> empsalary;
<span class="hljs-keyword">SELECT</span> sum(salary) <span class="hljs-keyword">OVER</span> w, avg(salary) <span class="hljs-keyword">OVER</span> w
<span class="hljs-keyword">FROM</span> empsalary
<span class="hljs-keyword">WINDOW</span> w <span class="hljs-keyword">AS</span> (<span class="hljs-keyword">PARTITION</span> <span class="hljs-keyword">BY</span> depname <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> salary <span class="hljs-keyword">DESC</span>);

View File

@@ -0,0 +1,35 @@
-- window functions
-- frame clause:
RANGE UNBOUNDED PRECEDING EXCLUDE CURRENT ROW,
RANGE 10 PRECEDING EXCLUDE GROUP,
RANGE CURRENT ROW EXCLUDE TIES,
RANGE 10 FOLLOWING EXCLUDE NO OTHERS,
RANGE UNBOUNDED FOLLOWING,
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW;
ROWS UNBOUNDED PRECEDING EXCLUDE CURRENT ROW,
ROWS 10 PRECEDING EXCLUDE GROUP,
ROWS CURRENT ROW EXCLUDE TIES,
ROWS 10 FOLLOWING EXCLUDE NO OTHERS,
ROWS UNBOUNDED FOLLOWING,
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW;
GROUPS UNBOUNDED PRECEDING EXCLUDE CURRENT ROW,
GROUPS 10 PRECEDING EXCLUDE GROUP,
GROUPS CURRENT ROW EXCLUDE TIES,
GROUPS 10 FOLLOWING EXCLUDE NO OTHERS,
GROUPS UNBOUNDED FOLLOWING,
GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW;
-- examples
SELECT string_agg(empno, ',' ORDER BY a) FROM empsalary;
SELECT percentile_cont(0.5) WITHIN GROUP (ORDER BY income) FROM households;
SELECT count(*) FILTER (WHERE i < 5) FROM generate_series(1,10) AS s(i);
SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary;
SELECT salary, sum(salary) OVER (ORDER BY salary) FROM empsalary;
SELECT sum(salary) OVER w, avg(salary) OVER w
FROM empsalary
WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);

View File

@@ -0,0 +1,47 @@
<span class="hljs-comment">-- xml</span>
XMLPARSE (<span class="hljs-keyword">DOCUMENT</span> <span class="hljs-string">'...'</span> <span class="hljs-keyword">PRESERVE WHITESPACE</span>)
XMLPARSE (<span class="hljs-keyword">CONTENT</span> <span class="hljs-string">'...'</span> <span class="hljs-keyword">STRIP WHITESPACE</span>)
XMLSERIALIZE ( <span class="hljs-keyword">DOCUMENT</span> <span class="hljs-string">'...'</span> <span class="hljs-keyword">AS</span> <span class="hljs-type">text</span> )
XMLSERIALIZE ( <span class="hljs-keyword">CONTENT</span> <span class="hljs-string">'...'</span> <span class="hljs-keyword">AS</span> <span class="hljs-type">text</span> )
<span class="hljs-keyword">SET</span> <span class="hljs-keyword">XML OPTION DOCUMENT</span>;
<span class="hljs-keyword">SET</span> <span class="hljs-keyword">XML OPTION CONTENT</span>;
<span class="hljs-keyword">SELECT</span> xmlcomment(<span class="hljs-string">'...'</span>);
<span class="hljs-keyword">SELECT</span> xmlconcat(<span class="hljs-string">'...'</span>, <span class="hljs-string">'...'</span>);
<span class="hljs-keyword">SELECT</span> xmlelement(<span class="hljs-keyword">name</span> foo, xmlattributes(<span class="hljs-string">'...'</span> <span class="hljs-keyword">as</span> bar));
<span class="hljs-keyword">SELECT</span> xmlforest(<span class="hljs-string">'...'</span> <span class="hljs-keyword">AS</span> foo, <span class="hljs-number">123</span> <span class="hljs-keyword">AS</span> bar);
<span class="hljs-keyword">SELECT</span> xmlpi(<span class="hljs-keyword">name</span> php, <span class="hljs-string">'...'</span>);
<span class="hljs-keyword">SELECT</span> xmlroot(xmlparse(<span class="hljs-keyword">document</span> <span class="hljs-string">'...'</span>), <span class="hljs-keyword">version</span> <span class="hljs-string">'...'</span>, <span class="hljs-keyword">standalone yes</span>);
<span class="hljs-keyword">SELECT</span> xmlagg(x <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> y <span class="hljs-keyword">DESC</span>) <span class="hljs-keyword">FROM</span> test;
<span class="hljs-keyword">SELECT</span> xmlexists(<span class="hljs-string">'...'</span> <span class="hljs-keyword">PASSING</span> <span class="hljs-keyword">BY</span> <span class="hljs-keyword">REF</span> <span class="hljs-string">'...'</span>);
<span class="hljs-keyword">SELECT</span> xpath(<span class="hljs-string">'...'</span>, <span class="hljs-string">'...'</span>, <span class="hljs-keyword">ARRAY</span>[<span class="hljs-keyword">ARRAY</span>[<span class="hljs-string">'...'</span>, <span class="hljs-string">'...'</span>]]);
<span class="hljs-keyword">SELECT</span> xpath_exists(<span class="hljs-string">'...'</span>, <span class="hljs-string">'...'</span>, <span class="hljs-keyword">ARRAY</span>[<span class="hljs-keyword">ARRAY</span>[<span class="hljs-string">'...'</span>, <span class="hljs-string">'...'</span>]]);
<span class="hljs-keyword">SELECT</span> XMLTABLE(<span class="hljs-string">'...'</span> <span class="hljs-keyword">PASSING</span> data <span class="hljs-keyword">COLUMNS</span> id <span class="hljs-type">int</span> <span class="hljs-keyword">PATH</span> <span class="hljs-string">'...'</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-string">'...'</span>, ordinality <span class="hljs-keyword">FOR ORDINALITY</span>) ;
<span class="hljs-keyword">SELECT</span> XMLTABLE(XMLNAMESPACES(<span class="hljs-string">'...'</span> <span class="hljs-keyword">AS</span> x, <span class="hljs-string">'...'</span> <span class="hljs-keyword">AS</span> "B"), <span class="hljs-string">'...'</span> <span class="hljs-keyword">PASSING</span> (<span class="hljs-keyword">SELECT</span> data <span class="hljs-keyword">FROM</span> xmldata) <span class="hljs-keyword">COLUMNS</span> foo <span class="hljs-type">int</span> <span class="hljs-keyword">PATH</span> <span class="hljs-string">'...'</span>);
foo <span class="hljs-keyword">IS DOCUMENT</span>
foo <span class="hljs-keyword">IS NOT DOCUMENT</span>
xml_is_well_formed(..)
xml_is_well_formed_document(..)
xml_is_well_formed_content(..)
table_to_xml(..)
query_to_xml(..)
cursor_to_xml(..)
table_to_xmlschema(..)
query_to_xmlschema(..)
cursor_to_xmlschema(..)
table_to_xml_and_xmlschema(..)
query_to_xml_and_xmlschema(..)
schema_to_xml(..)
schema_to_xmlschema(..)
schema_to_xml_and_xmlschema(..)
database_to_xml(..)
database_to_xmlschema(..)
database_to_xml_and_xmlschema(..)

View File

@@ -0,0 +1,47 @@
-- xml
XMLPARSE (DOCUMENT '...' PRESERVE WHITESPACE)
XMLPARSE (CONTENT '...' STRIP WHITESPACE)
XMLSERIALIZE ( DOCUMENT '...' AS text )
XMLSERIALIZE ( CONTENT '...' AS text )
SET XML OPTION DOCUMENT;
SET XML OPTION CONTENT;
SELECT xmlcomment('...');
SELECT xmlconcat('...', '...');
SELECT xmlelement(name foo, xmlattributes('...' as bar));
SELECT xmlforest('...' AS foo, 123 AS bar);
SELECT xmlpi(name php, '...');
SELECT xmlroot(xmlparse(document '...'), version '...', standalone yes);
SELECT xmlagg(x ORDER BY y DESC) FROM test;
SELECT xmlexists('...' PASSING BY REF '...');
SELECT xpath('...', '...', ARRAY[ARRAY['...', '...']]);
SELECT xpath_exists('...', '...', ARRAY[ARRAY['...', '...']]);
SELECT XMLTABLE('...' PASSING data COLUMNS id int PATH '...' DEFAULT '...', ordinality FOR ORDINALITY) ;
SELECT XMLTABLE(XMLNAMESPACES('...' AS x, '...' AS "B"), '...' PASSING (SELECT data FROM xmldata) COLUMNS foo int PATH '...');
foo IS DOCUMENT
foo IS NOT DOCUMENT
xml_is_well_formed(..)
xml_is_well_formed_document(..)
xml_is_well_formed_content(..)
table_to_xml(..)
query_to_xml(..)
cursor_to_xml(..)
table_to_xmlschema(..)
query_to_xmlschema(..)
cursor_to_xmlschema(..)
table_to_xml_and_xmlschema(..)
query_to_xml_and_xmlschema(..)
schema_to_xml(..)
schema_to_xmlschema(..)
schema_to_xml_and_xmlschema(..)
database_to_xml(..)
database_to_xmlschema(..)
database_to_xml_and_xmlschema(..)