3 # Generate the errcodes.h header from errcodes.txt
4 # Copyright (c) 2000-2011, PostgreSQL Global Development Group
9 print "/* autogenerated from src/backend/utils/errcodes.txt, do not edit */\n";
10 print "/* there is deliberately not an #ifndef ERRCODES_H here */\n";
12 open my $errcodes, $ARGV[0] or die;
21 # Emit a comment for each section header
22 if (/^Section:(.*)/) {
25 print "\n/* $header */\n";
29 die "unable to parse errcodes.txt" unless /^([^\s]{5})\s+[EWS]\s+([^\s]+)/;
31 (my $sqlstate, my $errcode_macro) = ($1, $2);
33 # Split the sqlstate letters
34 $sqlstate = join ",", split "", $sqlstate;
36 $sqlstate =~ s/([^,])/'$1'/g;
38 print "#define $errcode_macro MAKE_SQLSTATE($sqlstate)\n";