99#
1010#
1111# IDENTIFICATION
12- # $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.23 2000/05/29 20:18:30 tgl Exp $
12+ # $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.24 2000/06/02 02:00:28 tgl Exp $
1313#
1414# NOTES
1515# Passes any -D options on to cpp prior to generating the list
@@ -82,7 +82,7 @@ cat > $OIDSFILE <<FuNkYfMgRsTuFf
8282 * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
8383 * Portions Copyright (c) 1994, Regents of the University of California
8484 *
85- *$Id : Gen_fmgrtab.sh.in,v 1.23 2000/05/29 20:18:30 tgl Exp $
85+ *$Id : Gen_fmgrtab.sh.in,v 1.24 2000/06/02 02:00:28 tgl Exp $
8686 *
8787 * NOTES
8888 *******************************
@@ -105,8 +105,8 @@ cat > $OIDSFILE <<FuNkYfMgRsTuFf
105105 *For example, we want to be able to assign different macro names to both
106106 *char_text() and int4_text() even though these both appear with proname
107107 *'text'. If the same C function appears in more than one pg_proc entry,
108- *its equivalent macro will be defined with the OIDof the entry appearing
109- *first in pg_proc.h .
108+ *its equivalent macro will be defined with thelowest OIDamong those
109+ *entries .
110110 */
111111FuNkYfMgRsTuFf
112112
@@ -139,7 +139,7 @@ cat > $TABLEFILE <<FuNkYfMgRtAbStUfF
139139 * Portions Copyright (c) 1994, Regents of the University of California
140140 *
141141 * IDENTIFICATION
142- *$Header : /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.23 2000/05/29 20:18:30 tgl Exp $
142+ *$Header : /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.24 2000/06/02 02:00:28 tgl Exp $
143143 *
144144 * NOTES
145145 *
@@ -170,11 +170,19 @@ cat >> $TABLEFILE <<FuNkYfMgRtAbStUfF
170170const FmgrBuiltin fmgr_builtins[] = {
171171FuNkYfMgRtAbStUfF
172172
173- awk' { printf (" { %d, \"%s\", %d, %s, %s, %s },\n"), \
174- $1, $(NF-1), $9, \
175- ($8 == "t") ? "true" : "false", \
176- ($4 == "11") ? "true" : "false", \
177- $(NF-1) }' $RAWFILE >> $TABLEFILE
173+ # Note: using awk arrays to translate from pg_proc values to fmgrtab values
174+ # may seem tedious, but avoid the temptation to write a quick x?y:z
175+ # conditional expression instead. Not all awks have conditional expressions.
176+
177+ awk' BEGIN {
178+ Strict["t"] = "true"
179+ Strict["f"] = "false"
180+ OldStyle["11"] = "true"
181+ OldStyle["12"] = "false"
182+ }
183+ { printf (" { %d, \"%s\", %d, %s, %s, %s },\n"), \
184+ $1, $(NF-1), $9, Strict[$8], OldStyle[$4], $(NF-1)
185+ }' $RAWFILE >> $TABLEFILE
178186
179187cat>> $TABLEFILE << FuNkYfMgRtAbStUfF
180188 /* dummy entry is easier than getting rid of comma after last real one */