aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/generate-keywords-table.pl
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/generate-keywords-table.pl')
-rw-r--r--doc/src/sgml/generate-keywords-table.pl13
1 files changed, 10 insertions, 3 deletions
diff --git a/doc/src/sgml/generate-keywords-table.pl b/doc/src/sgml/generate-keywords-table.pl
index 824b324ef78..6332d65aadc 100644
--- a/doc/src/sgml/generate-keywords-table.pl
+++ b/doc/src/sgml/generate-keywords-table.pl
@@ -1,6 +1,7 @@
#!/usr/bin/perl
#
-# Generate the keywords table file
+# Generate the keywords table for the documentation's SQL Key Words appendix
+#
# Copyright (c) 2019-2020, PostgreSQL Global Development Group
use strict;
@@ -11,8 +12,9 @@ my @sql_versions = reverse sort ('1992', '2011', '2016');
my $srcdir = $ARGV[0];
my %keywords;
+my %as_keywords;
-# read SQL keywords
+# read SQL-spec keywords
foreach my $ver (@sql_versions)
{
@@ -39,9 +41,10 @@ open my $fh, '<', "$srcdir/../../../src/include/parser/kwlist.h" or die;
while (<$fh>)
{
- if (/^PG_KEYWORD\("(\w+)", \w+, (\w+)_KEYWORD\)/)
+ if (/^PG_KEYWORD\("(\w+)", \w+, (\w+)_KEYWORD\, (\w+)\)/)
{
$keywords{ uc $1 }{'pg'}{ lc $2 } = 1;
+ $as_keywords{ uc $1 } = 1 if $3 eq 'AS_LABEL';
}
}
@@ -107,6 +110,10 @@ foreach my $word (sort keys %keywords)
{
print "reserved";
}
+ if ($as_keywords{$word})
+ {
+ print ", requires <literal>AS</literal>";
+ }
print "</entry>\n";
foreach my $ver (@sql_versions)