#!/usr/bin/perl # # Generate the keywords table for the documentation's SQL Key Words appendix # # Copyright (c) 2019-2025, PostgreSQL Global Development Group
use strict;
use warnings FATAL => 'all';
my @sql_versions = reverse sort ('1992', '2016', '2023');
my $srcdir = $ARGV[0];
my %keywords;
my %as_keywords;
# read SQL-spec 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;
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)
{ # Insert zwsp's into very long keywords, so that they can be broken # into multiple lines in PDF format (or narrow HTML windows).
my $printword = $word;
$printword =~ s/_/_&zwsp;/g if (length($printword) > 20);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.