Bruce Momjian <pgman@candle.pha.pa.us> writes:
> OK, different solution. I decided there is no need to be dumping out
> zeros to pad the type.
Oh, that's a thought. You haven't really gained anything in generality,
since the code is still treating zero as a special case; but I agree it
looks nicer (and is easier to check for too many values).
Only worry I have is whether it will interoperate comfortably with the
old code. Let's see:
* old dump to new: no problem, unless you've reduced MAX_INDEX_KEYS below 8 (doesn't seem likely).
* new to old: fails for every case except where there's exactly 8 non zero entries.
The latter is a bit bothersome, but may not be a big deal --- in reality
we don't dump and reload pg_index this way.
BTW, be sure you are only suppressing *trailing* zeroes not *embedded*
zeroes. I know that oid8 has to deal with embedded zeroes (some of
the pg_proc entries look like that); int28 might not, but the code
should probably act the same for both.
regards, tom lane