Neil Conway wrote:
On Thu, 2007-02-01 at 22:50 -0500, Bruce Momjian wrote:
Where are we on this?


I can commit to reviewing this. The patch looked fairly solid on a quick
glance through, but I won't have the cycles to review it properly for a
week or two.

I've brought this up to date with the operator family stuff now, and the attached patch once more applies cleanly against HEAD. Hopefully that'll make life a little easier when reviewing it. Thanks.

I got sick of manually shifting the new OID values every time someone had added something new to the catalogs, so I moved all of my OIDs up to the 9000 range. Attached is a hacky bash script which can move them back to something sane. The idea is to run unused_oids first, see where the main block of unused OIDs starts, and then run shift_oids on the (unzipped) patch file before applying the patch. We discussed something similar a while ago, but no-one ever got around to implementing the script.

I've attached the script and left the OIDs in my patch in the upper range rather than just running it myself before submitting the patch as I reckon that this might be a useful convention for authors of patches which add a non-trivial number of OIDs to the catalogs. If there's agreement then anyone can feel free to commit the script to CVS or put it on the wiki or whatever.

Cheers

Tom

Attachment: enums.patch.gz
Description: GNU Zip compressed data

#!/bin/sh

start=$1
end=$2
new_start=$3
filename=$4

if [ -z "$filename" ] ; then
        echo Usage: $0 start-oid end-oid new-start-oid filename
        exit 1
fi

if [ ! -f $filename ] ; then
        echo $0: $filename is not a file
        exit 1
fi

if [ $end -le $start ] ; then
        echo $0: End of OID range must be greater than or equal to the start
        exit 1
fi

start_len=`echo -n $start | wc -c`
end_len=`echo -n $end | wc -c`

if [ $start_len -ne 4 -o $end_len -ne 4 ] ; then
        echo $0: Source OID range must have 4 digits
        exit 1
fi

let new_end=$new_start+$end-$start
if [ $start -le $new_start -a $end -ge $new_start -o $new_start -le $start -a 
$new_end -ge $start ] ; then
        echo $0: OID ranges may not overlap
        exit 1
fi


i=$start
j=$new_start
while [ $i -le $end ] ; do
        #echo $i $j
        sed -i "s/$i/$j/g" $filename
        let i=i+1
        let j=j+1
done
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to