I recently changed locale in my machine and PostgreSQL build broke.
The reason is that Gen_fmgrtab.sh uses [^A-Z] expression to sed
and the GNU people in their infinite wisdom made that locale-dependant.

As the script uses the complicated pipeline only for fmgroids.h -> FMGROIDS_H
conversion, it seems simpler to just make it explicitly set, instead to
try to work around GNU sed.

I grepped around source and did not find other instances of this.
The A-Z experssion was only in perl scripts or in configure and
configure should be fine as it explicitly resets locale.

--
marko
Index: src/backend/utils/Gen_fmgrtab.sh
===================================================================
RCS file: /opt/cvs/pgsql/src/backend/utils/Gen_fmgrtab.sh,v
retrieving revision 1.32
diff -u -c -r1.32 Gen_fmgrtab.sh
*** src/backend/utils/Gen_fmgrtab.sh	5 Mar 2006 15:58:40 -0000	1.32
--- src/backend/utils/Gen_fmgrtab.sh	5 Sep 2006 08:45:55 -0000
***************
*** 62,69 ****
  fi
  
  SORTEDFILE="$$-fmgr.data"
- OIDSFILE=fmgroids.h
  TABLEFILE=fmgrtab.c
  
  
  trap 'echo "Caught signal." ; cleanup ; exit 1' 1 2 15
--- 62,70 ----
  fi
  
  SORTEDFILE="$$-fmgr.data"
  TABLEFILE=fmgrtab.c
+ OIDSFILE=fmgroids.h
+ OIDSFILE_DEFINE=FMGROIDS_H
  
  
  trap 'echo "Caught signal." ; cleanup ; exit 1' 1 2 15
***************
*** 89,95 ****
  fi
  
  
- cpp_define=`echo $OIDSFILE | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | sed -e 's/[^A-Z]/_/g'`
  
  #
  # Generate fmgroids.h
--- 90,95 ----
***************
*** 116,123 ****
   *
   *-------------------------------------------------------------------------
   */
! #ifndef	$cpp_define
! #define $cpp_define
  
  /*
   *	Constant macros for the OIDs of entries in pg_proc.
--- 116,123 ----
   *
   *-------------------------------------------------------------------------
   */
! #ifndef $OIDSFILE_DEFINE
! #define $OIDSFILE_DEFINE
  
  /*
   *	Constant macros for the OIDs of entries in pg_proc.
***************
*** 147,153 ****
  
  cat >> "$$-$OIDSFILE" <<FuNkYfMgRsTuFf
  
! #endif	/* $cpp_define */
  FuNkYfMgRsTuFf
  
  #
--- 147,153 ----
  
  cat >> "$$-$OIDSFILE" <<FuNkYfMgRsTuFf
  
! #endif	/* $OIDSFILE_DEFINE */
  FuNkYfMgRsTuFf
  
  #
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to