generate documentation keywords table automatically

Started by Peter Eisentrautover 6 years ago5 messages
#1Peter Eisentraut
peter.eisentraut@2ndquadrant.com
1 attachment(s)

The SQL keywords table in the documentation had until now been generated
by me every year by some ad hoc scripting outside the source tree once
for each major release. This patch changes it to an automated process.

We have the PostgreSQL keywords available in a parseable format in
parser/kwlist.h[*]. For the relevant SQL standard versions, keep the
keyword lists in new text files. A new script
generate-keywords-table.pl pulls it all together and produces a DocBook
table.

The final output in the documentation should be identical after this
change.

(Updates for SQL:2016 to come.)

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

0001-doc-Generate-keywords-table-automatically.patchtext/plain; charset=UTF-8; name=0001-doc-Generate-keywords-table-automatically.patch; x-mac-creator=0; x-mac-type=0Download
From fddc1c95511793ca5b4bebc08394b0eaa3ba8794 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Sat, 27 Apr 2019 09:07:28 +0200
Subject: [PATCH] doc: Generate keywords table automatically

The SQL keywords table in the documentation had until now been
generated by some ad hoc scripting outside the source tree once for
each major release.  This changes it to an automated process.

We have the PostgreSQL keywords available in a parseable format in
parser/kwlist.h.  For the relevant SQL standard versions, keep the
keyword lists in new text files.  A new script
generate-keywords-table.pl pulls it all together and produces a
DocBook table.

The final output in the documentation should be identical after this
change.
---
 doc/src/sgml/.gitignore                       |    1 +
 doc/src/sgml/Makefile                         |    6 +-
 doc/src/sgml/filelist.sgml                    |    1 +
 doc/src/sgml/generate-keywords-table.pl       |  122 +
 doc/src/sgml/keywords.sgml                    | 5361 +----------------
 doc/src/sgml/keywords/sql1992-nonreserved.txt |   50 +
 doc/src/sgml/keywords/sql1992-reserved.txt    |  227 +
 .../sgml/keywords/sql2008-02-nonreserved.txt  |  218 +
 doc/src/sgml/keywords/sql2008-02-reserved.txt |  307 +
 .../sgml/keywords/sql2008-09-nonreserved.txt  |   23 +
 doc/src/sgml/keywords/sql2008-09-reserved.txt |   13 +
 .../sgml/keywords/sql2008-14-nonreserved.txt  |   29 +
 doc/src/sgml/keywords/sql2008-14-reserved.txt |   20 +
 .../sgml/keywords/sql2011-02-nonreserved.txt  |  219 +
 doc/src/sgml/keywords/sql2011-02-reserved.txt |  324 +
 .../sgml/keywords/sql2011-09-nonreserved.txt  |   23 +
 doc/src/sgml/keywords/sql2011-09-reserved.txt |   13 +
 .../sgml/keywords/sql2011-14-nonreserved.txt  |   29 +
 doc/src/sgml/keywords/sql2011-14-reserved.txt |   20 +
 19 files changed, 1645 insertions(+), 5361 deletions(-)
 create mode 100644 doc/src/sgml/generate-keywords-table.pl
 create mode 100644 doc/src/sgml/keywords/sql1992-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql1992-reserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2008-02-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2008-02-reserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2008-09-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2008-09-reserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2008-14-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2008-14-reserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2011-02-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2011-02-reserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2011-09-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2011-09-reserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2011-14-nonreserved.txt
 create mode 100644 doc/src/sgml/keywords/sql2011-14-reserved.txt

diff --git a/doc/src/sgml/.gitignore b/doc/src/sgml/.gitignore
index a72b7ccb06..acf7b4f10f 100644
--- a/doc/src/sgml/.gitignore
+++ b/doc/src/sgml/.gitignore
@@ -15,6 +15,7 @@
 /features-supported.sgml
 /features-unsupported.sgml
 /errcodes-table.sgml
+/keywords-table.sgml
 /version.sgml
 # Assorted byproducts from building the above
 /postgres.xml
diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile
index 0d0db18ff8..bbfc9e2861 100644
--- a/doc/src/sgml/Makefile
+++ b/doc/src/sgml/Makefile
@@ -53,7 +53,8 @@ override XSLTPROCFLAGS += --stringparam pg.version '$(VERSION)'
 
 
 GENERATED_SGML = version.sgml \
-	features-supported.sgml features-unsupported.sgml errcodes-table.sgml
+	features-supported.sgml features-unsupported.sgml errcodes-table.sgml \
+	keywords-table.sgml
 
 ALLSGML := $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) $(GENERATED_SGML)
 
@@ -96,6 +97,9 @@ features-unsupported.sgml: $(top_srcdir)/src/backend/catalog/sql_feature_package
 errcodes-table.sgml: $(top_srcdir)/src/backend/utils/errcodes.txt generate-errcodes-table.pl
 	$(PERL) $(srcdir)/generate-errcodes-table.pl $< > $@
 
+keywords-table.sgml: $(top_srcdir)/src/include/parser/kwlist.h $(wildcard $(srcdir)/sql*.txt) generate-keywords-table.pl
+	$(PERL) $(srcdir)/generate-keywords-table.pl $(srcdir) > $@
+
 
 ##
 ## Generation of some text files.
diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml
index 7e37042a55..8960f11278 100644
--- a/doc/src/sgml/filelist.sgml
+++ b/doc/src/sgml/filelist.sgml
@@ -175,6 +175,7 @@
 <!ENTITY features-unsupported SYSTEM "features-unsupported.sgml">
 
 <!ENTITY errcodes-table SYSTEM "errcodes-table.sgml">
+<!ENTITY keywords-table SYSTEM "keywords-table.sgml">
 
 <!-- back matter -->
 <!ENTITY biblio     SYSTEM "biblio.sgml">
diff --git a/doc/src/sgml/generate-keywords-table.pl b/doc/src/sgml/generate-keywords-table.pl
new file mode 100644
index 0000000000..611c22bdd3
--- /dev/null
+++ b/doc/src/sgml/generate-keywords-table.pl
@@ -0,0 +1,122 @@
+#!/usr/bin/perl
+#
+# Generate the keywords table file
+# Copyright (c) 2019, PostgreSQL Global Development Group
+
+use strict;
+use warnings;
+
+my @sql_versions = reverse sort ('1992', '2008', '2011');
+
+my $srcdir = $ARGV[0];
+
+my %keywords;
+
+# read SQL keywords
+
+foreach my $ver (@sql_versions)
+{
+	foreach my $res ('reserved', 'nonreserved')
+	{
+		foreach my $file (glob "$srcdir/keywords/sql${ver}*-${res}.txt")
+		{
+			open my $fh, '<', $file or die;
+
+			while (<$fh>)
+			{
+				chomp;
+				$keywords{$_}{$ver}{$res} = 1;
+			}
+
+			close $fh;
+		}
+	}
+}
+
+# read PostgreSQL keywords
+
+open my $fh, '<', "$srcdir/../../../src/include/parser/kwlist.h" or die;
+
+while (<$fh>)
+{
+	if (/^PG_KEYWORD\("(\w+)", \w+, (\w+)_KEYWORD\)/)
+	{
+		$keywords{ uc $1 }{'pg'}{ lc $2 } = 1;
+	}
+}
+
+close $fh;
+
+# print output
+
+print "<!-- autogenerated, do not edit -->\n";
+
+print <<END;
+<table id="keywords-table">
+ <title><acronym>SQL</acronym> Key Words</title>
+
+ <tgroup cols="5">
+  <thead>
+   <row>
+    <entry>Key Word</entry>
+    <entry><productname>PostgreSQL</productname></entry>
+END
+
+foreach my $ver (@sql_versions)
+{
+	my $s = ($ver eq '1992' ? 'SQL-92' : "SQL:$ver");
+	print "    <entry>$s</entry>\n";
+}
+
+print <<END;
+   </row>
+  </thead>
+
+  <tbody>
+END
+
+foreach my $word (sort keys %keywords)
+{
+	print "   <row>\n";
+	print "    <entry><token>$word</token></entry>\n";
+
+	print "    <entry>";
+	if ($keywords{$word}{pg}{'unreserved'})
+	{
+		print "non-reserved";
+	}
+	elsif ($keywords{$word}{pg}{'col_name'})
+	{
+		print "non-reserved (cannot be function or type)";
+	}
+	elsif ($keywords{$word}{pg}{'type_func_name'})
+	{
+		print "reserved (can be function or type)";
+	}
+	elsif ($keywords{$word}{pg}{'reserved'})
+	{
+		print "reserved";
+	}
+	print "</entry>\n";
+
+	foreach my $ver (@sql_versions)
+	{
+		print "    <entry>";
+		if ($keywords{$word}{$ver}{'reserved'})
+		{
+			print "reserved";
+		}
+		elsif ($keywords{$word}{$ver}{'nonreserved'})
+		{
+			print "non-reserved";
+		}
+		print "</entry>\n";
+	}
+	print "   </row>\n";
+}
+
+print <<END;
+  </tbody>
+ </tgroup>
+</table>
+END
diff --git a/doc/src/sgml/keywords.sgml b/doc/src/sgml/keywords.sgml
index 197c3f4854..57dcd6ae5c 100644
--- a/doc/src/sgml/keywords.sgml
+++ b/doc/src/sgml/keywords.sgml
@@ -75,5365 +75,6 @@ <title><acronym>SQL</acronym> Key Words</title>
   presence of a key word does not indicate the existence of a feature.
  </para>
 
-
-<!--
- The following table is semi-automatically generated.  You can update it
- manually, but when you have a lot of changes talk to <peter_e@gmx.net>
- about remaking it.
--->
-
-<table id="keywords-table">
- <title><acronym>SQL</acronym> Key Words</title>
-
- <tgroup cols="5">
-  <thead>
-   <row>
-    <entry>Key Word</entry>
-    <entry><productname>PostgreSQL</productname></entry>
-    <entry>SQL:2011</entry>
-    <entry>SQL:2008</entry>
-    <entry>SQL-92</entry>
-   </row>
-  </thead>
-
-  <tbody>
-   <row>
-    <entry><token>A</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ABORT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ABS</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ABSENT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ABSOLUTE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ACCESS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ACCORDING</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ACTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ADA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>ADD</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ADMIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>AFTER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>AGGREGATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ALL</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ALLOCATE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ALSO</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ALTER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ALWAYS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ANALYSE</token></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ANALYZE</token></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>AND</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ANY</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ARE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ARRAY</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ARRAY_AGG</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ARRAY_MAX_CARDINALITY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>AS</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ASC</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ASENSITIVE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ASSERTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ASSIGNMENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ASYMMETRIC</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>AT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ATOMIC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ATTACH</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ATTRIBUTE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ATTRIBUTES</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>AUTHORIZATION</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>AVG</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>BACKWARD</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BASE64</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BEFORE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BEGIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>BEGIN_FRAME</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BEGIN_PARTITION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BERNOULLI</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BETWEEN</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>BIGINT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BINARY</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BIT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>BIT_LENGTH</token></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>BLOB</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BLOCKED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BOM</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BOOLEAN</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BOTH</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>BREADTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>BY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>C</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CACHE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CALL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CALLED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CARDINALITY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CASCADE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CASCADED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CASE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CAST</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CATALOG</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CATALOG_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CEIL</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CEILING</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CHAIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CHAR</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHARACTER</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHARACTERISTICS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CHARACTERS</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CHARACTER_LENGTH</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHARACTER_SET_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHARACTER_SET_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHARACTER_SET_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHAR_LENGTH</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHECK</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CHECKPOINT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CLASS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CLASS_ORIGIN</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CLOB</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CLOSE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CLUSTER</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COALESCE</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COBOL</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLLATE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLLATION</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLLATION_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLLATION_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLLATION_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLLECT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COLUMN</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COLUMNS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COLUMN_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>COMMAND_FUNCTION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>COMMAND_FUNCTION_CODE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COMMENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COMMENTS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COMMIT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COMMITTED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONCURRENTLY</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONDITION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONDITION_NUMBER</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONFIGURATION</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONFLICT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONNECT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONNECTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONNECTION_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONSTRAINT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONSTRAINTS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONSTRAINT_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONSTRAINT_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONSTRAINT_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONSTRUCTOR</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONTAINS</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONTENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONTINUE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CONTROL</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONVERSION</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CONVERT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COPY</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CORR</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CORRESPONDING</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COST</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COUNT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>COVAR_POP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>COVAR_SAMP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CREATE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CROSS</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CSV</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CUBE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CUME_DIST</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_CATALOG</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_DATE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_DEFAULT_TRANSFORM_GROUP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_PATH</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_ROLE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_ROW</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_SCHEMA</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_TIME</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_TIMESTAMP</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_TRANSFORM_GROUP_FOR_TYPE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>CURRENT_USER</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CURSOR</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>CURSOR_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>CYCLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DATA</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>DATABASE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DATALINK</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DATE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DATETIME_INTERVAL_CODE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>DATETIME_INTERVAL_PRECISION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>DAY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DB</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEALLOCATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DEC</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DECIMAL</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DECLARE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DEFAULT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DEFAULTS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEFERRABLE</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DEFERRED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DEFINED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEFINER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEGREE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DELETE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DELIMITER</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DELIMITERS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DENSE_RANK</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEPENDS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEPTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DEREF</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DERIVED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DESC</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DESCRIBE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DESCRIPTOR</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DETACH</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DETERMINISTIC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DIAGNOSTICS</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DICTIONARY</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DISABLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DISCARD</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DISCONNECT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DISPATCH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DISTINCT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DLNEWCOPY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLPREVIOUSCOPY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLCOMPLETE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLCOMPLETEONLY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLCOMPLETEWRITE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLPATH</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLPATHONLY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLPATHWRITE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLSCHEME</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLURLSERVER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DLVALUE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DO</token></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DOCUMENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DOMAIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DOUBLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DROP</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>DYNAMIC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>DYNAMIC_FUNCTION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>DYNAMIC_FUNCTION_CODE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EACH</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ELEMENT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ELSE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EMPTY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ENABLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ENCODING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ENCRYPTED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>END</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>END-EXEC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>END_FRAME</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>END_PARTITION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ENFORCED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ENUM</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EQUALS</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ESCAPE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EVENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EVERY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXCEPT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EXCEPTION</token></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EXCLUDE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXCLUDING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXCLUSIVE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXEC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EXECUTE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EXISTS</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EXP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXPLAIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXPRESSION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXTENSION</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>EXTERNAL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>EXTRACT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FALSE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FAMILY</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FETCH</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FILE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FILTER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FINAL</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FIRST</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FIRST_VALUE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FLAG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FLOAT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FLOOR</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FOLLOWING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FOR</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FORCE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FOREIGN</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FORTRAN</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>FORWARD</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FOUND</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FRAME_ROW</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FREE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FREEZE</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FROM</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FS</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FULL</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>FUNCTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FUNCTIONS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>FUSION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>G</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>GENERAL</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>GENERATED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>GET</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>GLOBAL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>GO</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>GOTO</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>GRANT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>GRANTED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>GREATEST</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>GROUP</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>GROUPING</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>GROUPS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>HANDLER</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>HAVING</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>HEADER</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>HEX</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>HIERARCHY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>HOLD</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>HOUR</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ID</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IDENTITY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>IF</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IGNORE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ILIKE</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IMMEDIATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>IMMEDIATELY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IMMUTABLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IMPLEMENTATION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IMPLICIT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IMPORT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IN</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INCLUDE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INCLUDING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INCREMENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INDENT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INDEX</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INDEXES</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INDICATOR</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INHERIT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INHERITS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INITIALLY</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INLINE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INNER</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INOUT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INPUT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INSENSITIVE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INSERT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INSTANCE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INSTANTIABLE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INSTEAD</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INTEGER</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INTEGRITY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INTERSECT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INTERSECTION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>INTERVAL</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INTO</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>INVOKER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>IS</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ISNULL</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ISOLATION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>JOIN</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>K</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>KEY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>KEY_MEMBER</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>KEY_TYPE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LABEL</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LAG</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LANGUAGE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LARGE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LAST</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LAST_VALUE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LATERAL</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LEAD</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LEADING</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LEAKPROOF</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LEAST</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LEFT</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LENGTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>LEVEL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LIBRARY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LIKE</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LIKE_REGEX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LIMIT</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LINK</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LISTEN</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LN</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOAD</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOCAL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>LOCALTIME</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOCALTIMESTAMP</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOCATION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOCATOR</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOCK</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOCKED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOGGED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>LOWER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>M</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MAP</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MAPPING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MATCH</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>MATCHED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MATERIALIZED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MAX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>MAXVALUE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MAX_CARDINALITY</token></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MEMBER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MERGE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MESSAGE_LENGTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>MESSAGE_OCTET_LENGTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>MESSAGE_TEXT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>METHOD</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MIN</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>MINUTE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>MINVALUE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MOD</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MODE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MODIFIES</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MODULE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>MONTH</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>MORE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>MOVE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MULTISET</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>MUMPS</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>NAME</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>NAMES</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NAMESPACE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NATIONAL</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NATURAL</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NCHAR</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NCLOB</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NESTING</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NEW</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NEXT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NFC</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NFD</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NFKC</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NFKD</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NIL</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NO</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NONE</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NORMALIZE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NORMALIZED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NOT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NOTHING</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NOTIFY</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NOTNULL</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NOWAIT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NTH_VALUE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NTILE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NULL</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NULLABLE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>NULLIF</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>NULLS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>NUMBER</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>NUMERIC</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OBJECT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OCCURRENCES_REGEX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OCTETS</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OCTET_LENGTH</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OF</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OFF</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OFFSET</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OIDS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OLD</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ON</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ONLY</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OPEN</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OPERATOR</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OPTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OPTIONS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OR</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ORDER</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ORDERING</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ORDINALITY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OTHERS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OUT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OUTER</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OUTPUT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OVER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OVERLAPS</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>OVERLAY</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OVERRIDING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OWNED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>OWNER</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>P</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PAD</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PARALLEL</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER_MODE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER_ORDINAL_POSITION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER_SPECIFIC_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER_SPECIFIC_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARAMETER_SPECIFIC_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARSER</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PARTIAL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PARTITION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PASCAL</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>PASSING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PASSTHROUGH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PASSWORD</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PATH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PERCENT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PERCENTILE_CONT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PERCENTILE_DISC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PERCENT_RANK</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PERIOD</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PERMISSION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PLACING</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PLANS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PLI</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>POLICY</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PORTION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>POSITION</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>POSITION_REGEX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>POWER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PRECEDES</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PRECEDING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PRECISION</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PREPARE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PREPARED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PRESERVE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PRIMARY</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PRIOR</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PRIVILEGES</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PROCEDURAL</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PROCEDURE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PROCEDURES</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PROGRAM</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>PUBLIC</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>PUBLICATION</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>QUOTE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RANGE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RANK</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>READ</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>READS</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REAL</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>REASSIGN</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RECHECK</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RECOVERY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RECURSIVE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REF</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REFERENCES</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>REFERENCING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REFRESH</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_AVGX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_AVGY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_COUNT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_INTERCEPT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_R2</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_SLOPE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_SXX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_SXY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REGR_SYY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REINDEX</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RELATIVE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>RELEASE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RENAME</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REPEATABLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>REPLACE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REPLICA</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REQUIRING</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RESET</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RESPECT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RESTART</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RESTORE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RESTRICT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>RESULT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RETURN</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RETURNED_CARDINALITY</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RETURNED_LENGTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>RETURNED_OCTET_LENGTH</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>RETURNED_SQLSTATE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>RETURNING</token></entry>
-    <entry>reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RETURNS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>REVOKE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>RIGHT</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ROLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROLLBACK</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ROLLUP</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROUTINE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROUTINES</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROUTINE_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROUTINE_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROUTINE_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROW</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ROWS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>ROW_COUNT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>ROW_NUMBER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>RULE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SAVEPOINT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SCALE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>SCHEMA</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SCHEMAS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SCHEMA_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>SCOPE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SCOPE_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SCOPE_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SCOPE_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SCROLL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SEARCH</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SECOND</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SECTION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SECURITY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SELECT</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SELECTIVE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SELF</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SENSITIVE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SEQUENCE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SEQUENCES</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SERIALIZABLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>SERVER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SERVER_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>SESSION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SESSION_USER</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SET</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SETOF</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SETS</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SHARE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SHOW</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SIMILAR</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SIMPLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SIZE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SKIP</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SMALLINT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SNAPSHOT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SOME</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SOURCE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SPACE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SPECIFIC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SPECIFICTYPE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SPECIFIC_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SQL</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SQLCODE</token></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SQLERROR</token></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SQLEXCEPTION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SQLSTATE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SQLWARNING</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SQRT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STABLE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STANDALONE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>START</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STATE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STATEMENT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STATIC</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STATISTICS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STDDEV_POP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STDDEV_SAMP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STDIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STDOUT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STORAGE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STORED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STRICT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STRIP</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STRUCTURE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>STYLE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SUBCLASS_ORIGIN</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>SUBMULTISET</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SUBSCRIPTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SUBSTRING</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SUBSTRING_REGEX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SUCCEEDS</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SUM</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>SUPPORT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SYMMETRIC</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SYSID</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SYSTEM</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SYSTEM_TIME</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>SYSTEM_USER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>T</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TABLE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TABLES</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TABLESAMPLE</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TABLESPACE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TABLE_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>TEMP</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TEMPLATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TEMPORARY</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TEXT</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>THEN</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TIES</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TIME</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TIMESTAMP</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TIMEZONE_HOUR</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TIMEZONE_MINUTE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TO</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TOKEN</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TOP_LEVEL_COUNT</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRAILING</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TRANSACTION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TRANSACTIONS_COMMITTED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRANSACTIONS_ROLLED_BACK</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRANSACTION_ACTIVE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRANSFORM</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRANSFORMS</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRANSLATE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TRANSLATE_REGEX</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRANSLATION</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TREAT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRIGGER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRIGGER_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRIGGER_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRIGGER_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRIM</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TRIM_ARRAY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRUE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>TRUNCATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TRUSTED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>TYPE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>TYPES</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UESCAPE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNBOUNDED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNCOMMITTED</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>UNDER</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNENCRYPTED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNION</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>UNIQUE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>UNKNOWN</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>UNLINK</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNLISTEN</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNLOGGED</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNNAMED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-   </row>
-   <row>
-    <entry><token>UNNEST</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNTIL</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UNTYPED</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>UPDATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>UPPER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>URI</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>USAGE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>USER</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>USER_DEFINED_TYPE_CATALOG</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>USER_DEFINED_TYPE_CODE</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>USER_DEFINED_TYPE_NAME</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>USER_DEFINED_TYPE_SCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>USING</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>VACUUM</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VALID</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VALIDATE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VALIDATOR</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VALUE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>VALUES</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>VALUE_OF</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VARBINARY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VARCHAR</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>VARIADIC</token></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VARYING</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>VAR_POP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VAR_SAMP</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VERBOSE</token></entry>
-    <entry>reserved (can be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VERSION</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VERSIONING</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VIEW</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>VIEWS</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>VOLATILE</token></entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WHEN</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>WHENEVER</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>WHERE</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>WHITESPACE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WIDTH_BUCKET</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WINDOW</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WITH</token></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>WITHIN</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WITHOUT</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WORK</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>WRAPPER</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>WRITE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>XML</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLAGG</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLATTRIBUTES</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLBINARY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLCAST</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLCOMMENT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLCONCAT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLDECLARATION</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLDOCUMENT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLELEMENT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLEXISTS</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLFOREST</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLITERATE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLNAMESPACES</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLPARSE</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLPI</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLQUERY</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLROOT</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry></entry>
-    <entry></entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLSCHEMA</token></entry>
-    <entry></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLSERIALIZE</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLTABLE</token></entry>
-    <entry>non-reserved (cannot be function or type)</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLTEXT</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>XMLVALIDATE</token></entry>
-    <entry></entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>YEAR</token></entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-    <entry>reserved</entry>
-   </row>
-   <row>
-    <entry><token>YES</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry></entry>
-   </row>
-   <row>
-    <entry><token>ZONE</token></entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>non-reserved</entry>
-    <entry>reserved</entry>
-   </row>
-  </tbody>
- </tgroup>
-</table>
-
+ &keywords-table;
 
 </appendix>
diff --git a/doc/src/sgml/keywords/sql1992-nonreserved.txt b/doc/src/sgml/keywords/sql1992-nonreserved.txt
new file mode 100644
index 0000000000..00abedaac7
--- /dev/null
+++ b/doc/src/sgml/keywords/sql1992-nonreserved.txt
@@ -0,0 +1,50 @@
+ADA
+C
+CATALOG_NAME
+CHARACTER_SET_CATALOG
+CHARACTER_SET_NAME
+CHARACTER_SET_SCHEMA
+CLASS_ORIGIN
+COBOL
+COLLATION_CATALOG
+COLLATION_NAME
+COLLATION_SCHEMA
+COLUMN_NAME
+COMMAND_FUNCTION
+COMMITTED
+CONDITION_NUMBER
+CONNECTION_NAME
+CONSTRAINT_CATALOG
+CONSTRAINT_NAME
+CONSTRAINT_SCHEMA
+CURSOR_NAME
+DATA
+DATETIME_INTERVAL_CODE
+DATETIME_INTERVAL_PRECISION
+DYNAMIC_FUNCTION
+FORTRAN
+LENGTH
+MESSAGE_LENGTH
+MESSAGE_OCTET_LENGTH
+MESSAGE_TEXT
+MORE
+MUMPS
+NAME
+NULLABLE
+NUMBER
+PASCAL
+PLI
+REPEATABLE
+RETURNED_LENGTH
+RETURNED_OCTET_LENGTH
+RETURNED_SQLSTATE
+ROW_COUNT
+SCALE
+SCHEMA_NAME
+SERIALIZABLE
+SERVER_NAME
+SUBCLASS_ORIGIN
+TABLE_NAME
+TYPE
+UNCOMMITTED
+UNNAMED
diff --git a/doc/src/sgml/keywords/sql1992-reserved.txt b/doc/src/sgml/keywords/sql1992-reserved.txt
new file mode 100644
index 0000000000..5bda21315f
--- /dev/null
+++ b/doc/src/sgml/keywords/sql1992-reserved.txt
@@ -0,0 +1,227 @@
+ABSOLUTE
+ACTION
+ADD
+ALL
+ALLOCATE
+ALTER
+AND
+ANY
+ARE
+AS
+ASC
+ASSERTION
+AT
+AUTHORIZATION
+AVG
+BEGIN
+BETWEEN
+BIT
+BIT_LENGTH
+BOTH
+BY
+CASCADE
+CASCADED
+CASE
+CAST
+CATALOG
+CHAR
+CHARACTER
+CHAR_LENGTH
+CHARACTER_LENGTH
+CHECK
+CLOSE
+COALESCE
+COLLATE
+COLLATION
+COLUMN
+COMMIT
+CONNECT
+CONNECTION
+CONSTRAINT
+CONSTRAINTS
+CONTINUE
+CONVERT
+CORRESPONDING
+COUNT
+CREATE
+CROSS
+CURRENT
+CURRENT_DATE
+CURRENT_TIME
+CURRENT_TIMESTAMP
+CURRENT_USER
+CURSOR
+DATE
+DAY
+DEALLOCATE
+DEC
+DECIMAL
+DECLARE
+DEFAULT
+DEFERRABLE
+DEFERRED
+DELETE
+DESC
+DESCRIBE
+DESCRIPTOR
+DIAGNOSTICS
+DISCONNECT
+DISTINCT
+DOMAIN
+DOUBLE
+DROP
+ELSE
+END
+END-EXEC
+ESCAPE
+EXCEPT
+EXCEPTION
+EXEC
+EXECUTE
+EXISTS
+EXTERNAL
+EXTRACT
+FALSE
+FETCH
+FIRST
+FLOAT
+FOR
+FOREIGN
+FOUND
+FROM
+FULL
+GET
+GLOBAL
+GO
+GOTO
+GRANT
+GROUP
+HAVING
+HOUR
+IDENTITY
+IMMEDIATE
+IN
+INDICATOR
+INITIALLY
+INNER
+INPUT
+INSENSITIVE
+INSERT
+INT
+INTEGER
+INTERSECT
+INTERVAL
+INTO
+IS
+ISOLATION
+JOIN
+KEY
+LANGUAGE
+LAST
+LEADING
+LEFT
+LEVEL
+LIKE
+LOCAL
+LOWER
+MATCH
+MAX
+MIN
+MINUTE
+MODULE
+MONTH
+NAMES
+NATIONAL
+NATURAL
+NCHAR
+NEXT
+NO
+NOT
+NULL
+NULLIF
+NUMERIC
+OCTET_LENGTH
+OF
+ON
+ONLY
+OPEN
+OPTION
+OR
+ORDER
+OUTER
+OUTPUT
+OVERLAPS
+PAD
+PARTIAL
+POSITION
+PRECISION
+PREPARE
+PRESERVE
+PRIMARY
+PRIOR
+PRIVILEGES
+PROCEDURE
+PUBLIC
+READ
+REAL
+REFERENCES
+RELATIVE
+RESTRICT
+REVOKE
+RIGHT
+ROLLBACK
+ROWS
+SCHEMA
+SCROLL
+SECOND
+SECTION
+SELECT
+SESSION
+SESSION_USER
+SET
+SIZE
+SMALLINT
+SOME
+SPACE
+SQL
+SQLCODE
+SQLERROR
+SQLSTATE
+SUBSTRING
+SUM
+SYSTEM_USER
+TABLE
+TEMPORARY
+THEN
+TIME
+TIMESTAMP
+TIMEZONE_HOUR
+TIMEZONE_MINUTE
+TO
+TRAILING
+TRANSACTION
+TRANSLATE
+TRANSLATION
+TRIM
+TRUE
+UNION
+UNIQUE
+UNKNOWN
+UPDATE
+UPPER
+USAGE
+USER
+USING
+VALUE
+VALUES
+VARCHAR
+VARYING
+VIEW
+WHEN
+WHENEVER
+WHERE
+WITH
+WORK
+WRITE
+YEAR
+ZONE
diff --git a/doc/src/sgml/keywords/sql2008-02-nonreserved.txt b/doc/src/sgml/keywords/sql2008-02-nonreserved.txt
new file mode 100644
index 0000000000..9c30628355
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2008-02-nonreserved.txt
@@ -0,0 +1,218 @@
+A
+ABSOLUTE
+ACTION
+ADA
+ADD
+ADMIN
+AFTER
+ALWAYS
+ASC
+ASSERTION
+ASSIGNMENT
+ATTRIBUTE
+ATTRIBUTES
+BEFORE
+BERNOULLI
+BREADTH
+C
+CASCADE
+CATALOG
+CATALOG_NAME
+CHAIN
+CHARACTER_SET_CATALOG
+CHARACTER_SET_NAME
+CHARACTER_SET_SCHEMA
+CHARACTERISTICS
+CHARACTERS
+CLASS_ORIGIN
+COBOL
+COLLATION
+COLLATION_CATALOG
+COLLATION_NAME
+COLLATION_SCHEMA
+COLUMN_NAME
+COMMAND_FUNCTION
+COMMAND_FUNCTION_CODE
+COMMITTED
+CONDITION_NUMBER
+CONNECTION
+CONNECTION_NAME
+CONSTRAINT_CATALOG
+CONSTRAINT_NAME
+CONSTRAINT_SCHEMA
+CONSTRAINTS
+CONSTRUCTOR
+CONTAINS
+CONTINUE
+CURSOR_NAME
+DATA
+DATETIME_INTERVAL_CODE
+DATETIME_INTERVAL_PRECISION
+DEFAULTS
+DEFERRABLE
+DEFERRED
+DEFINED
+DEFINER
+DEGREE
+DEPTH
+DERIVED
+DESC
+DESCRIPTOR
+DIAGNOSTICS
+DISPATCH
+DOMAIN
+DYNAMIC_FUNCTION
+DYNAMIC_FUNCTION_CODE
+EQUALS
+EXCLUDE
+EXCLUDING
+FINAL
+FIRST
+FLAG
+FOLLOWING
+FORTRAN
+FOUND
+G
+GENERAL
+GENERATED
+GO
+GOTO
+GRANTED
+HIERARCHY
+IGNORE
+IMMEDIATE
+IMPLEMENTATION
+INCLUDING
+INCREMENT
+INITIALLY
+INPUT
+INSTANCE
+INSTANTIABLE
+INSTEAD
+INVOKER
+ISOLATION
+K
+KEY
+KEY_MEMBER
+KEY_TYPE
+LAST
+LENGTH
+LEVEL
+LOCATOR
+M
+MAP
+MATCHED
+MAXVALUE
+MESSAGE_LENGTH
+MESSAGE_OCTET_LENGTH
+MESSAGE_TEXT
+MINVALUE
+MORE
+MUMPS
+NAME
+NAMES
+NESTING
+NEXT
+NFC
+NFD
+NFKC
+NFKD
+NORMALIZED
+NULLABLE
+NULLS
+NUMBER
+OBJECT
+OCTETS
+OPTION
+OPTIONS
+ORDERING
+ORDINALITY
+OTHERS
+OUTPUT
+OVERRIDING
+P
+PAD
+PARAMETER_MODE
+PARAMETER_NAME
+PARAMETER_ORDINAL_POSITION
+PARAMETER_SPECIFIC_CATALOG
+PARAMETER_SPECIFIC_NAME
+PARAMETER_SPECIFIC_SCHEMA
+PARTIAL
+PASCAL
+PATH
+PLACING
+PLI
+PRECEDING
+PRESERVE
+PRIOR
+PRIVILEGES
+PUBLIC
+READ
+RELATIVE
+REPEATABLE
+RESPECT
+RESTART
+RESTRICT
+RETURNED_CARDINALITY
+RETURNED_LENGTH
+RETURNED_OCTET_LENGTH
+RETURNED_SQLSTATE
+ROLE
+ROUTINE
+ROUTINE_CATALOG
+ROUTINE_NAME
+ROUTINE_SCHEMA
+ROW_COUNT
+SCALE
+SCHEMA
+SCHEMA_NAME
+SCOPE_CATALOG
+SCOPE_NAME
+SCOPE_SCHEMA
+SECTION
+SECURITY
+SELF
+SEQUENCE
+SERIALIZABLE
+SERVER_NAME
+SESSION
+SETS
+SIMPLE
+SIZE
+SOURCE
+SPACE
+SPECIFIC_NAME
+STATE
+STATEMENT
+STRUCTURE
+STYLE
+SUBCLASS_ORIGIN
+T
+TABLE_NAME
+TEMPORARY
+TIES
+TOP_LEVEL_COUNT
+TRANSACTION
+TRANSACTION_ACTIVE
+TRANSACTIONS_COMMITTED
+TRANSACTIONS_ROLLED_BACK
+TRANSFORM
+TRANSFORMS
+TRIGGER_CATALOG
+TRIGGER_NAME
+TRIGGER_SCHEMA
+TYPE
+UNBOUNDED
+UNCOMMITTED
+UNDER
+UNNAMED
+USAGE
+USER_DEFINED_TYPE_CATALOG
+USER_DEFINED_TYPE_CODE
+USER_DEFINED_TYPE_NAME
+USER_DEFINED_TYPE_SCHEMA
+VIEW
+WORK
+WRITE
+ZONE
diff --git a/doc/src/sgml/keywords/sql2008-02-reserved.txt b/doc/src/sgml/keywords/sql2008-02-reserved.txt
new file mode 100644
index 0000000000..b4a2c64af9
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2008-02-reserved.txt
@@ -0,0 +1,307 @@
+ABS
+ALL
+ALLOCATE
+ALTER
+AND
+ANY
+ARE
+ARRAY
+ARRAY_AGG
+AS
+ASENSITIVE
+ASYMMETRIC
+AT
+ATOMIC
+AUTHORIZATION
+AVG
+BEGIN
+BETWEEN
+BIGINT
+BINARY
+BLOB
+BOOLEAN
+BOTH
+BY
+CALL
+CALLED
+CARDINALITY
+CASCADED
+CASE
+CAST
+CEIL
+CEILING
+CHAR
+CHAR_LENGTH
+CHARACTER
+CHARACTER_LENGTH
+CHECK
+CLOB
+CLOSE
+COALESCE
+COLLATE
+COLLECT
+COLUMN
+COMMIT
+CONDITION
+CONNECT
+CONSTRAINT
+CONVERT
+CORR
+CORRESPONDING
+COUNT
+COVAR_POP
+COVAR_SAMP
+CREATE
+CROSS
+CUBE
+CUME_DIST
+CURRENT
+CURRENT_CATALOG
+CURRENT_DATE
+CURRENT_DEFAULT_TRANSFORM_GROUP
+CURRENT_PATH
+CURRENT_ROLE
+CURRENT_SCHEMA
+CURRENT_TIME
+CURRENT_TIMESTAMP
+CURRENT_TRANSFORM_GROUP_FOR_TYPE
+CURRENT_USER
+CURSOR
+CYCLE
+DATE
+DAY
+DEALLOCATE
+DEC
+DECIMAL
+DECLARE
+DEFAULT
+DELETE
+DENSE_RANK
+DEREF
+DESCRIBE
+DETERMINISTIC
+DISCONNECT
+DISTINCT
+DOUBLE
+DROP
+DYNAMIC
+EACH
+ELEMENT
+ELSE
+END
+END-EXEC
+ESCAPE
+EVERY
+EXCEPT
+EXEC
+EXECUTE
+EXISTS
+EXP
+EXTERNAL
+EXTRACT
+FALSE
+FETCH
+FILTER
+FIRST_VALUE
+FLOAT
+FLOOR
+FOR
+FOREIGN
+FREE
+FROM
+FULL
+FUNCTION
+FUSION
+GET
+GLOBAL
+GRANT
+GROUP
+GROUPING
+HAVING
+HOLD
+HOUR
+IDENTITY
+IN
+INDICATOR
+INNER
+INOUT
+INSENSITIVE
+INSERT
+INT
+INTEGER
+INTERSECT
+INTERSECTION
+INTERVAL
+INTO
+IS
+JOIN
+LAG
+LANGUAGE
+LARGE
+LAST_VALUE
+LATERAL
+LEAD
+LEADING
+LEFT
+LIKE
+LIKE_REGEX
+LN
+LOCAL
+LOCALTIME
+LOCALTIMESTAMP
+LOWER
+MATCH
+MAX
+MAX_CARDINALITY
+MEMBER
+MERGE
+METHOD
+MIN
+MINUTE
+MOD
+MODIFIES
+MODULE
+MONTH
+MULTISET
+NATIONAL
+NATURAL
+NCHAR
+NCLOB
+NEW
+NO
+NONE
+NORMALIZE
+NOT
+NTH_VALUE
+NTILE
+NULL
+NULLIF
+NUMERIC
+OCTET_LENGTH
+OCCURRENCES_REGEX
+OF
+OFFSET
+OLD
+ON
+ONLY
+OPEN
+OR
+ORDER
+OUT
+OUTER
+OVER
+OVERLAPS
+OVERLAY
+PARAMETER
+PARTITION
+PERCENT_RANK
+PERCENTILE_CONT
+PERCENTILE_DISC
+POSITION
+POSITION_REGEX
+POWER
+PRECISION
+PREPARE
+PRIMARY
+PROCEDURE
+RANGE
+RANK
+READS
+REAL
+RECURSIVE
+REF
+REFERENCES
+REFERENCING
+REGR_AVGX
+REGR_AVGY
+REGR_COUNT
+REGR_INTERCEPT
+REGR_R2
+REGR_SLOPE
+REGR_SXX
+REGR_SXY
+REGR_SYY
+RELEASE
+RESULT
+RETURN
+RETURNS
+REVOKE
+RIGHT
+ROLLBACK
+ROLLUP
+ROW
+ROW_NUMBER
+ROWS
+SAVEPOINT
+SCOPE
+SCROLL
+SEARCH
+SECOND
+SELECT
+SENSITIVE
+SESSION_USER
+SET
+SIMILAR
+SMALLINT
+SOME
+SPECIFIC
+SPECIFICTYPE
+SQL
+SQLEXCEPTION
+SQLSTATE
+SQLWARNING
+SQRT
+START
+STATIC
+STDDEV_POP
+STDDEV_SAMP
+SUBMULTISET
+SUBSTRING
+SUBSTRING_REGEX
+SUM
+SYMMETRIC
+SYSTEM
+SYSTEM_USER
+TABLE
+TABLESAMPLE
+THEN
+TIME
+TIMESTAMP
+TIMEZONE_HOUR
+TIMEZONE_MINUTE
+TO
+TRAILING
+TRANSLATE
+TRANSLATE_REGEX
+TRANSLATION
+TREAT
+TRIGGER
+TRUNCATE
+TRIM
+TRIM_ARRAY
+TRUE
+UESCAPE
+UNION
+UNIQUE
+UNKNOWN
+UNNEST
+UPDATE
+UPPER
+USER
+USING
+VALUE
+VALUES
+VAR_POP
+VAR_SAMP
+VARBINARY
+VARCHAR
+VARYING
+WHEN
+WHENEVER
+WHERE
+WIDTH_BUCKET
+WINDOW
+WITH
+WITHIN
+WITHOUT
+YEAR
diff --git a/doc/src/sgml/keywords/sql2008-09-nonreserved.txt b/doc/src/sgml/keywords/sql2008-09-nonreserved.txt
new file mode 100644
index 0000000000..b360f0ce86
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2008-09-nonreserved.txt
@@ -0,0 +1,23 @@
+BLOCKED
+CONTROL
+DB
+FILE
+FS
+INTEGRITY
+LIBRARY
+LIMIT
+LINK
+MAPPING
+OFF
+PASSTHROUGH
+PERMISSION
+RECOVERY
+REQUIRING
+RESTORE
+SELECTIVE
+SERVER
+TOKEN
+UNLINK
+VERSION
+WRAPPER
+YES
diff --git a/doc/src/sgml/keywords/sql2008-09-reserved.txt b/doc/src/sgml/keywords/sql2008-09-reserved.txt
new file mode 100644
index 0000000000..0205485766
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2008-09-reserved.txt
@@ -0,0 +1,13 @@
+DATALINK
+DLNEWCOPY
+DLPREVIOUSCOPY
+DLURLCOMPLETE
+DLURLCOMPLETEWRITE
+DLURLCOMPLETEONLY
+DLURLPATH
+DLURLPATHWRITE
+DLURLPATHONLY
+DLURLSCHEME
+DLURLSERVER
+DLVALUE
+IMPORT
diff --git a/doc/src/sgml/keywords/sql2008-14-nonreserved.txt b/doc/src/sgml/keywords/sql2008-14-nonreserved.txt
new file mode 100644
index 0000000000..317f651f0e
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2008-14-nonreserved.txt
@@ -0,0 +1,29 @@
+ABSENT
+ACCORDING
+BASE64
+BOM
+COLUMNS
+CONTENT
+DOCUMENT
+EMPTY
+ENCODING
+HEX
+ID
+INDENT
+LOCATION
+NAMESPACE
+NIL
+PASSING
+PATH
+PRESERVE
+RETURNING
+SEQUENCE
+STANDALONE
+STRIP
+UNTYPED
+URI
+VALID
+VERSION
+WHITESPACE
+XMLSCHEMA
+XMLDECLARATION
diff --git a/doc/src/sgml/keywords/sql2008-14-reserved.txt b/doc/src/sgml/keywords/sql2008-14-reserved.txt
new file mode 100644
index 0000000000..cf8052946f
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2008-14-reserved.txt
@@ -0,0 +1,20 @@
+XML
+XMLAGG
+XMLATTRIBUTES
+XMLBINARY
+XMLCAST
+XMLCOMMENT
+XMLCONCAT
+XMLDOCUMENT
+XMLELEMENT
+XMLEXISTS
+XMLFOREST
+XMLITERATE
+XMLNAMESPACES
+XMLPARSE
+XMLPI
+XMLQUERY
+XMLSERIALIZE
+XMLTABLE
+XMLTEXT
+XMLVALIDATE
diff --git a/doc/src/sgml/keywords/sql2011-02-nonreserved.txt b/doc/src/sgml/keywords/sql2011-02-nonreserved.txt
new file mode 100644
index 0000000000..b28a180f0b
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2011-02-nonreserved.txt
@@ -0,0 +1,219 @@
+A
+ABSOLUTE
+ACTION
+ADA
+ADD
+ADMIN
+AFTER
+ALWAYS
+ASC
+ASSERTION
+ASSIGNMENT
+ATTRIBUTE
+ATTRIBUTES
+BEFORE
+BERNOULLI
+BREADTH
+C
+CASCADE
+CATALOG
+CATALOG_NAME
+CHAIN
+CHARACTER_SET_CATALOG
+CHARACTER_SET_NAME
+CHARACTER_SET_SCHEMA
+CHARACTERISTICS
+CHARACTERS
+CLASS_ORIGIN
+COBOL
+COLLATION
+COLLATION_CATALOG
+COLLATION_NAME
+COLLATION_SCHEMA
+COLUMN_NAME
+COMMAND_FUNCTION
+COMMAND_FUNCTION_CODE
+COMMITTED
+CONDITION_NUMBER
+CONNECTION
+CONNECTION_NAME
+CONSTRAINT_CATALOG
+CONSTRAINT_NAME
+CONSTRAINT_SCHEMA
+CONSTRAINTS
+CONSTRUCTOR
+CONTINUE
+CURSOR_NAME
+DATA
+DATETIME_INTERVAL_CODE
+DATETIME_INTERVAL_PRECISION
+DEFAULTS
+DEFERRABLE
+DEFERRED
+DEFINED
+DEFINER
+DEGREE
+DEPTH
+DERIVED
+DESC
+DESCRIPTOR
+DIAGNOSTICS
+DISPATCH
+DOMAIN
+DYNAMIC_FUNCTION
+DYNAMIC_FUNCTION_CODE
+ENFORCED
+EXCLUDE
+EXCLUDING
+EXPRESSION
+FINAL
+FIRST
+FLAG
+FOLLOWING
+FORTRAN
+FOUND
+G
+GENERAL
+GENERATED
+GO
+GOTO
+GRANTED
+HIERARCHY
+IGNORE
+IMMEDIATE
+IMMEDIATELY
+IMPLEMENTATION
+INCLUDING
+INCREMENT
+INITIALLY
+INPUT
+INSTANCE
+INSTANTIABLE
+INSTEAD
+INVOKER
+ISOLATION
+K
+KEY
+KEY_MEMBER
+KEY_TYPE
+LAST
+LENGTH
+LEVEL
+LOCATOR
+M
+MAP
+MATCHED
+MAXVALUE
+MESSAGE_LENGTH
+MESSAGE_OCTET_LENGTH
+MESSAGE_TEXT
+MINVALUE
+MORE
+MUMPS
+NAME
+NAMES
+NESTING
+NEXT
+NFC
+NFD
+NFKC
+NFKD
+NORMALIZED
+NULLABLE
+NULLS
+NUMBER
+OBJECT
+OCTETS
+OPTION
+OPTIONS
+ORDERING
+ORDINALITY
+OTHERS
+OUTPUT
+OVERRIDING
+P
+PAD
+PARAMETER_MODE
+PARAMETER_NAME
+PARAMETER_ORDINAL_POSITION
+PARAMETER_SPECIFIC_CATALOG
+PARAMETER_SPECIFIC_NAME
+PARAMETER_SPECIFIC_SCHEMA
+PARTIAL
+PASCAL
+PATH
+PLACING
+PLI
+PRECEDING
+PRESERVE
+PRIOR
+PRIVILEGES
+PUBLIC
+READ
+RELATIVE
+REPEATABLE
+RESPECT
+RESTART
+RESTRICT
+RETURNED_CARDINALITY
+RETURNED_LENGTH
+RETURNED_OCTET_LENGTH
+RETURNED_SQLSTATE
+ROLE
+ROUTINE
+ROUTINE_CATALOG
+ROUTINE_NAME
+ROUTINE_SCHEMA
+ROW_COUNT
+SCALE
+SCHEMA
+SCHEMA_NAME
+SCOPE_CATALOG
+SCOPE_NAME
+SCOPE_SCHEMA
+SECTION
+SECURITY
+SELF
+SEQUENCE
+SERIALIZABLE
+SERVER_NAME
+SESSION
+SETS
+SIMPLE
+SIZE
+SOURCE
+SPACE
+SPECIFIC_NAME
+STATE
+STATEMENT
+STRUCTURE
+STYLE
+SUBCLASS_ORIGIN
+T
+TABLE_NAME
+TEMPORARY
+TIES
+TOP_LEVEL_COUNT
+TRANSACTION
+TRANSACTION_ACTIVE
+TRANSACTIONS_COMMITTED
+TRANSACTIONS_ROLLED_BACK
+TRANSFORM
+TRANSFORMS
+TRIGGER_CATALOG
+TRIGGER_NAME
+TRIGGER_SCHEMA
+TYPE
+UNBOUNDED
+UNCOMMITTED
+UNDER
+UNNAMED
+USAGE
+USER_DEFINED_TYPE_CATALOG
+USER_DEFINED_TYPE_CODE
+USER_DEFINED_TYPE_NAME
+USER_DEFINED_TYPE_SCHEMA
+VIEW
+WORK
+WRITE
+ZONE
diff --git a/doc/src/sgml/keywords/sql2011-02-reserved.txt b/doc/src/sgml/keywords/sql2011-02-reserved.txt
new file mode 100644
index 0000000000..95f99e7df2
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2011-02-reserved.txt
@@ -0,0 +1,324 @@
+ABS
+ALL
+ALLOCATE
+ALTER
+AND
+ANY
+ARE
+ARRAY
+ARRAY_AGG
+ARRAY_MAX_CARDINALITY
+AS
+ASENSITIVE
+ASYMMETRIC
+AT
+ATOMIC
+AUTHORIZATION
+AVG
+BEGIN
+BEGIN_FRAME
+BEGIN_PARTITION
+BETWEEN
+BIGINT
+BINARY
+BLOB
+BOOLEAN
+BOTH
+BY
+CALL
+CALLED
+CARDINALITY
+CASCADED
+CASE
+CAST
+CEIL
+CEILING
+CHAR
+CHAR_LENGTH
+CHARACTER
+CHARACTER_LENGTH
+CHECK
+CLOB
+CLOSE
+COALESCE
+COLLATE
+COLLECT
+COLUMN
+COMMIT
+CONDITION
+CONNECT
+CONSTRAINT
+CONTAINS
+CONVERT
+CORR
+CORRESPONDING
+COUNT
+COVAR_POP
+COVAR_SAMP
+CREATE
+CROSS
+CUBE
+CUME_DIST
+CURRENT
+CURRENT_CATALOG
+CURRENT_DATE
+CURRENT_DEFAULT_TRANSFORM_GROUP
+CURRENT_PATH
+CURRENT_ROLE
+CURRENT_ROW
+CURRENT_SCHEMA
+CURRENT_TIME
+CURRENT_TIMESTAMP
+CURRENT_TRANSFORM_GROUP_FOR_TYPE
+CURRENT_USER
+CURSOR
+CYCLE
+DATE
+DAY
+DEALLOCATE
+DEC
+DECIMAL
+DECLARE
+DEFAULT
+DELETE
+DENSE_RANK
+DEREF
+DESCRIBE
+DETERMINISTIC
+DISCONNECT
+DISTINCT
+DOUBLE
+DROP
+DYNAMIC
+EACH
+ELEMENT
+ELSE
+END
+END_FRAME
+END_PARTITION
+END-EXEC
+EQUALS
+ESCAPE
+EVERY
+EXCEPT
+EXEC
+EXECUTE
+EXISTS
+EXP
+EXTERNAL
+EXTRACT
+FALSE
+FETCH
+FILTER
+FIRST_VALUE
+FLOAT
+FLOOR
+FOR
+FOREIGN
+FRAME_ROW
+FREE
+FROM
+FULL
+FUNCTION
+FUSION
+GET
+GLOBAL
+GRANT
+GROUP
+GROUPING
+GROUPS
+HAVING
+HOLD
+HOUR
+IDENTITY
+IN
+INDICATOR
+INNER
+INOUT
+INSENSITIVE
+INSERT
+INT
+INTEGER
+INTERSECT
+INTERSECTION
+INTERVAL
+INTO
+IS
+JOIN
+LAG
+LANGUAGE
+LARGE
+LAST_VALUE
+LATERAL
+LEAD
+LEADING
+LEFT
+LIKE
+LIKE_REGEX
+LN
+LOCAL
+LOCALTIME
+LOCALTIMESTAMP
+LOWER
+MATCH
+MAX
+MEMBER
+MERGE
+METHOD
+MIN
+MINUTE
+MOD
+MODIFIES
+MODULE
+MONTH
+MULTISET
+NATIONAL
+NATURAL
+NCHAR
+NCLOB
+NEW
+NO
+NONE
+NORMALIZE
+NOT
+NTH_VALUE
+NTILE
+NULL
+NULLIF
+NUMERIC
+OCTET_LENGTH
+OCCURRENCES_REGEX
+OF
+OFFSET
+OLD
+ON
+ONLY
+OPEN
+OR
+ORDER
+OUT
+OUTER
+OVER
+OVERLAPS
+OVERLAY
+PARAMETER
+PARTITION
+PERCENT
+PERCENT_RANK
+PERCENTILE_CONT
+PERCENTILE_DISC
+PERIOD
+PORTION
+POSITION
+POSITION_REGEX
+POWER
+PRECEDES
+PRECISION
+PREPARE
+PRIMARY
+PROCEDURE
+RANGE
+RANK
+READS
+REAL
+RECURSIVE
+REF
+REFERENCES
+REFERENCING
+REGR_AVGX
+REGR_AVGY
+REGR_COUNT
+REGR_INTERCEPT
+REGR_R2
+REGR_SLOPE
+REGR_SXX
+REGR_SXY
+REGR_SYY
+RELEASE
+RESULT
+RETURN
+RETURNS
+REVOKE
+RIGHT
+ROLLBACK
+ROLLUP
+ROW
+ROW_NUMBER
+ROWS
+SAVEPOINT
+SCOPE
+SCROLL
+SEARCH
+SECOND
+SELECT
+SENSITIVE
+SESSION_USER
+SET
+SIMILAR
+SMALLINT
+SOME
+SPECIFIC
+SPECIFICTYPE
+SQL
+SQLEXCEPTION
+SQLSTATE
+SQLWARNING
+SQRT
+START
+STATIC
+STDDEV_POP
+STDDEV_SAMP
+SUBMULTISET
+SUBSTRING
+SUBSTRING_REGEX
+SUCCEEDS
+SUM
+SYMMETRIC
+SYSTEM
+SYSTEM_TIME
+SYSTEM_USER
+TABLE
+TABLESAMPLE
+THEN
+TIME
+TIMESTAMP
+TIMEZONE_HOUR
+TIMEZONE_MINUTE
+TO
+TRAILING
+TRANSLATE
+TRANSLATE_REGEX
+TRANSLATION
+TREAT
+TRIGGER
+TRUNCATE
+TRIM
+TRIM_ARRAY
+TRUE
+UESCAPE
+UNION
+UNIQUE
+UNKNOWN
+UNNEST
+UPDATE
+UPPER
+USER
+USING
+VALUE
+VALUES
+VALUE_OF
+VAR_POP
+VAR_SAMP
+VARBINARY
+VARCHAR
+VARYING
+VERSIONING
+WHEN
+WHENEVER
+WHERE
+WIDTH_BUCKET
+WINDOW
+WITH
+WITHIN
+WITHOUT
+YEAR
diff --git a/doc/src/sgml/keywords/sql2011-09-nonreserved.txt b/doc/src/sgml/keywords/sql2011-09-nonreserved.txt
new file mode 100644
index 0000000000..b360f0ce86
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2011-09-nonreserved.txt
@@ -0,0 +1,23 @@
+BLOCKED
+CONTROL
+DB
+FILE
+FS
+INTEGRITY
+LIBRARY
+LIMIT
+LINK
+MAPPING
+OFF
+PASSTHROUGH
+PERMISSION
+RECOVERY
+REQUIRING
+RESTORE
+SELECTIVE
+SERVER
+TOKEN
+UNLINK
+VERSION
+WRAPPER
+YES
diff --git a/doc/src/sgml/keywords/sql2011-09-reserved.txt b/doc/src/sgml/keywords/sql2011-09-reserved.txt
new file mode 100644
index 0000000000..0205485766
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2011-09-reserved.txt
@@ -0,0 +1,13 @@
+DATALINK
+DLNEWCOPY
+DLPREVIOUSCOPY
+DLURLCOMPLETE
+DLURLCOMPLETEWRITE
+DLURLCOMPLETEONLY
+DLURLPATH
+DLURLPATHWRITE
+DLURLPATHONLY
+DLURLSCHEME
+DLURLSERVER
+DLVALUE
+IMPORT
diff --git a/doc/src/sgml/keywords/sql2011-14-nonreserved.txt b/doc/src/sgml/keywords/sql2011-14-nonreserved.txt
new file mode 100644
index 0000000000..317f651f0e
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2011-14-nonreserved.txt
@@ -0,0 +1,29 @@
+ABSENT
+ACCORDING
+BASE64
+BOM
+COLUMNS
+CONTENT
+DOCUMENT
+EMPTY
+ENCODING
+HEX
+ID
+INDENT
+LOCATION
+NAMESPACE
+NIL
+PASSING
+PATH
+PRESERVE
+RETURNING
+SEQUENCE
+STANDALONE
+STRIP
+UNTYPED
+URI
+VALID
+VERSION
+WHITESPACE
+XMLSCHEMA
+XMLDECLARATION
diff --git a/doc/src/sgml/keywords/sql2011-14-reserved.txt b/doc/src/sgml/keywords/sql2011-14-reserved.txt
new file mode 100644
index 0000000000..cf8052946f
--- /dev/null
+++ b/doc/src/sgml/keywords/sql2011-14-reserved.txt
@@ -0,0 +1,20 @@
+XML
+XMLAGG
+XMLATTRIBUTES
+XMLBINARY
+XMLCAST
+XMLCOMMENT
+XMLCONCAT
+XMLDOCUMENT
+XMLELEMENT
+XMLEXISTS
+XMLFOREST
+XMLITERATE
+XMLNAMESPACES
+XMLPARSE
+XMLPI
+XMLQUERY
+XMLSERIALIZE
+XMLTABLE
+XMLTEXT
+XMLVALIDATE
-- 
2.21.0

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#1)
Re: generate documentation keywords table automatically

Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:

The SQL keywords table in the documentation had until now been generated
by me every year by some ad hoc scripting outside the source tree once
for each major release. This patch changes it to an automated process.

Didn't test this, but +1 for the concept.

Would it make more sense to have just one source file per SQL standard
version, and distinguish the keyword types by labels within the file?
The extreme version of that would be to format the standards-info files
just like parser/kwlist.h, which perhaps would even save a bit of
parsing code in the Perl script. I don't insist you have to go that
far, but lists of keywords-and-categories seem to make sense.

The thing in the back of my mind here is that at some point the SQL
standard might have more than two keyword categories. What you've got
here would take some effort to handle that, whereas it'd be an entirely
trivial data change in the scheme I'm thinking of.

A policy issue, independent of this mechanism, is how many different
SQL spec versions we want to show in the table. HEAD currently shows just
three (2011, 2008, SQL92), and it doesn't look to me like the table can
accommodate more than one or at most two more columns without getting
too wide for most output formats. We could buy back some space by making
the "cannot be X" annotations for PG keywords more compact, but I fear
that'd still not be enough for the seven spec versions you propose to
show in this patch. (And, presumably, the committee's not done.)
Can we pick a different table layout?

regards, tom lane

#3Peter Eisentraut
peter.eisentraut@2ndquadrant.com
In reply to: Tom Lane (#2)
Re: generate documentation keywords table automatically

On 2019-04-27 17:25, Tom Lane wrote:

Would it make more sense to have just one source file per SQL standard
version, and distinguish the keyword types by labels within the file?

The way I have written it, the lists can be compared directly with the
relevant standards by a human. Otherwise we'd need another level of
tooling to compose and verify those lists.

A policy issue, independent of this mechanism, is how many different
SQL spec versions we want to show in the table.

We had previously established that we want to show 92 and the latest
two. I don't propose to change that.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#4Chapman Flack
chap@anastigmatix.net
In reply to: Peter Eisentraut (#3)
Re: generate documentation keywords table automatically

On 4/29/19 2:45 PM, Peter Eisentraut wrote:

A policy issue, independent of this mechanism, is how many different
SQL spec versions we want to show in the table.

We had previously established that we want to show 92 and the latest
two. I don't propose to change that.

An annoying API requirement imposed by the JDBC spec applies to its
method DatabaseMetaData.getSQLKeywords():

It is required to return a list of the keywords supported by the DBMS
that are NOT also SQL:2003 keywords. [1]https://docs.oracle.com/en/java/javase/12/docs/api/java.sql/java/sql/DatabaseMetaData.html#getSQLKeywords()

Why? I have no idea. Were the JDBC spec authors afraid of infringing
ISO copyright if they specified a method that just returns all the
keywords?

So instead they implicitly require every JDBC developer to know just
what all the SQL:2003 keywords are, to make any practical use of the
JDBC method that returns only the keywords that aren't those.

To make it even goofier, the requirement in the JDBC spec has changed
(once, that I know of). It has been /all the keywords not in SQL:2003/
since JDBC 4 / Java SE 6 [2]https://docs.oracle.com/javase/6/docs/api/index.html?overview-summary.html, but before that, it (the same method!)
was spec'd to return /all the keywords not in SQL92/. [3]https://docs.oracle.com/javase/1.5.0/docs/api/index.html?overview-summary.html

So the ideal JDBC developer will know (a) exactly what keywords are
SQL92, (b) exactly what keywords are SQL:2003, and (c) which JDBC
version the driver in use is implementing (though, mercifully, drivers
from pre-4.0 should be rare by now).

If the reorganization happening in this thread were to make possible
run-time-enumerable keyword lists that could be filtered for SQL92ness
or SQL:2003ness, that might relieve an implementation headache that,
at present, both PgJDBC and PL/Java have to deal with.

Regards,
-Chap

[1]: https://docs.oracle.com/en/java/javase/12/docs/api/java.sql/java/sql/DatabaseMetaData.html#getSQLKeywords()
https://docs.oracle.com/en/java/javase/12/docs/api/java.sql/java/sql/DatabaseMetaData.html#getSQLKeywords()

[2]: https://docs.oracle.com/javase/6/docs/api/index.html?overview-summary.html
https://docs.oracle.com/javase/6/docs/api/index.html?overview-summary.html

[3]: https://docs.oracle.com/javase/1.5.0/docs/api/index.html?overview-summary.html
https://docs.oracle.com/javase/1.5.0/docs/api/index.html?overview-summary.html

#5Peter Eisentraut
peter.eisentraut@2ndquadrant.com
In reply to: Chapman Flack (#4)
Re: generate documentation keywords table automatically

On 2019-04-29 21:19, Chapman Flack wrote:

If the reorganization happening in this thread were to make possible
run-time-enumerable keyword lists that could be filtered for SQL92ness
or SQL:2003ness, that might relieve an implementation headache that,
at present, both PgJDBC and PL/Java have to deal with.

Good information, but probably too big of a change at this point.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services