diff --git a/src/backend/catalog/genbki.sh b/src/backend/catalog/genbki.sh index a07af45167..f544501085 100644 --- a/src/backend/catalog/genbki.sh +++ b/src/backend/catalog/genbki.sh @@ -11,7 +11,7 @@ # # # IDENTIFICATION -# $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.44 2008/04/21 00:26:45 tgl Exp $ +# $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.45 2008/07/19 04:01:29 tgl Exp $ # # NOTES # non-essential whitespace is removed from the generated file. @@ -59,7 +59,7 @@ do echo " $CMDNAME [ -I dir ] --set-version=VERSION -o prefix files..." echo echo "Options:" - echo " -I path to pg_config_manual.h file" + echo " -I path to include files" echo " -o prefix of output files" echo " --set-version PostgreSQL version number for initdb cross-check" echo @@ -106,22 +106,11 @@ TMPFILE="genbkitmp$$.c" trap "rm -f $TMPFILE ${OUTPUT_PREFIX}.bki.$$ ${OUTPUT_PREFIX}.description.$$ ${OUTPUT_PREFIX}.shdescription.$$" 0 1 2 3 15 -# Get NAMEDATALEN from pg_config_manual.h -for dir in $INCLUDE_DIRS; do - if [ -f "$dir/pg_config_manual.h" ]; then - NAMEDATALEN=`grep '^#define[ ]*NAMEDATALEN' $dir/pg_config_manual.h | $AWK '{ print $3 }'` - break - fi -done - -# Get FLOAT4PASSBYVAL and FLOAT8PASSBYVAL from pg_config.h -for dir in $INCLUDE_DIRS; do - if [ -f "$dir/pg_config.h" ]; then - FLOAT4PASSBYVAL=`grep '^#define[ ]*FLOAT4PASSBYVAL' $dir/pg_config.h | $AWK '{ print $3 }'` - FLOAT8PASSBYVAL=`grep '^#define[ ]*FLOAT8PASSBYVAL' $dir/pg_config.h | $AWK '{ print $3 }'` - break - fi -done +# CAUTION: be wary about what symbols you substitute into the .bki file here! +# It's okay to substitute things that are expected to be really constant +# within a given Postgres release, such as fixed OIDs. Do not substitute +# anything that could depend on platform or configuration. (The right place +# to handle those sorts of things is in initdb.c's bootstrap_template1().) # Get BOOTSTRAP_SUPERUSERID from catalog/pg_authid.h for dir in $INCLUDE_DIRS; do @@ -172,9 +161,6 @@ sed -e "s/;[ ]*$//g" \ -e "s/^TransactionId/xid/g" \ -e "s/(TransactionId/(xid/g" \ -e "s/PGUID/$BOOTSTRAP_SUPERUSERID/g" \ - -e "s/NAMEDATALEN/$NAMEDATALEN/g" \ - -e "s/FLOAT4PASSBYVAL/$FLOAT4PASSBYVAL/g" \ - -e "s/FLOAT8PASSBYVAL/$FLOAT8PASSBYVAL/g" \ -e "s/PGNSP/$PG_CATALOG_NAMESPACE/g" \ | $AWK ' # ---------------- diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index cc2ea273ea..a7ef3c9227 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -42,7 +42,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * Portions taken from FreeBSD. * - * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.157 2008/06/26 01:35:45 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.158 2008/07/19 04:01:29 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1313,6 +1313,7 @@ bootstrap_template1(char *short_version) char *talkargs = ""; char **bki_lines; char headerline[MAXPGPATH]; + char buf[64]; printf(_("creating template1 database in %s/base/1 ... "), pg_data); fflush(stdout); @@ -1337,6 +1338,17 @@ bootstrap_template1(char *short_version) exit_nicely(); } + /* Substitute for various symbols used in the BKI file */ + + sprintf(buf, "%d", NAMEDATALEN); + bki_lines = replace_token(bki_lines, "NAMEDATALEN", buf); + + bki_lines = replace_token(bki_lines, "FLOAT4PASSBYVAL", + FLOAT4PASSBYVAL ? "true" : "false"); + + bki_lines = replace_token(bki_lines, "FLOAT8PASSBYVAL", + FLOAT8PASSBYVAL ? "true" : "false"); + bki_lines = replace_token(bki_lines, "POSTGRES", username); bki_lines = replace_token(bki_lines, "ENCODING", encodingid); diff --git a/src/tools/msvc/Genbki.pm b/src/tools/msvc/Genbki.pm index d8fe302796..f8a7294c7d 100644 --- a/src/tools/msvc/Genbki.pm +++ b/src/tools/msvc/Genbki.pm @@ -11,7 +11,7 @@ # # # IDENTIFICATION -# $PostgreSQL: pgsql/src/tools/msvc/Genbki.pm,v 1.4 2008/04/21 00:26:47 tgl Exp $ +# $PostgreSQL: pgsql/src/tools/msvc/Genbki.pm,v 1.5 2008/07/19 04:01:29 tgl Exp $ # #------------------------------------------------------------------------- @@ -33,19 +33,6 @@ sub genbki $version =~ /^(\d+\.\d+)/ || die "Bad format verison $version\n"; my $majorversion = $1; - my $pgext = read_file("src/include/pg_config_manual.h"); - $pgext =~ /^#define\s+NAMEDATALEN\s+(\d+)$/mg - || die "Could not read NAMEDATALEN from pg_config_manual.h\n"; - my $namedatalen = $1; - - my $pgconf = read_file("src/include/pg_config.h"); - $pgconf =~ /^#define\s+FLOAT4PASSBYVAL\s+(\w+)$/mg - || die "Could not read FLOAT4PASSBYVAL from pg_config.h\n"; - my $float4passbyval = $1; - $pgconf =~ /^#define\s+FLOAT8PASSBYVAL\s+(\w+)$/mg - || die "Could not read FLOAT8PASSBYVAL from pg_config.h\n"; - my $float8passbyval = $1; - my $pgauthid = read_file("src/include/catalog/pg_authid.h"); $pgauthid =~ /^#define\s+BOOTSTRAP_SUPERUSERID\s+(\d+)$/mg || die "Could not read BOOTSTRAUP_SUPERUSERID from pg_authid.h\n"; @@ -78,9 +65,6 @@ sub genbki $indata =~ s{^TransactionId}{xid}gm; $indata =~ s{\(TransactionId}{(xid}g; $indata =~ s{PGUID}{$bootstrapsuperuserid}g; - $indata =~ s{NAMEDATALEN}{$namedatalen}g; - $indata =~ s{FLOAT4PASSBYVAL}{$float4passbyval}g; - $indata =~ s{FLOAT8PASSBYVAL}{$float8passbyval}g; $indata =~ s{PGNSP}{$pgcatalognamespace}g; #print $indata;