aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/catalog/genbki.sh28
-rw-r--r--src/bin/initdb/initdb.c14
-rw-r--r--src/tools/msvc/Genbki.pm18
3 files changed, 21 insertions, 39 deletions
diff --git a/src/backend/catalog/genbki.sh b/src/backend/catalog/genbki.sh
index a07af451670..f5445010854 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 cc2ea273ea5..a7ef3c9227d 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 d8fe3027961..f8a7294c7db 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;