#!/bin/sh # # duplicate_oids # # src/include/catalog/duplicate_oids # # finds manually-assigned oids that are duplicated in the system tables. # # run this script in src/include/catalog. # # note: we exclude BKI_BOOTSTRAP relations since they are expected to have # matching DATA lines in pg_class.h and pg_type.h cat pg_*.h toasting.h indexing.h | \ egrep -v -e '^CATALOG\(.*BKI_BOOTSTRAP' | \ sed -n -e 's/^DATA(insert *OID *= *\([0-9][0-9]*\).*$/\1/p' \ -e 's/^CATALOG([^,]*, *\([0-9][0-9]*\).*BKI_ROWTYPE_OID(\([0-9][0-9]*\)).*$/\1,\2/p' \ -e 's/^CATALOG([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ -e 's/^DECLARE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ -e 's/^DECLARE_UNIQUE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ -e 's/^DECLARE_TOAST([^,]*, *\([0-9][0-9]*\), *\([0-9][0-9]*\).*$/\1,\2/p' | \ tr ',' '\n' | \ sort -n | \ uniq -d | \ grep '.' # nonzero exit code if lines were produced [ $? -eq 1 ] exit