Mark Bixby <mark@bixby.org> writes:
> MPE is a proprietary OS with a POSIX layer on top. The concept of
> POSIX uids and gids has been mapped to the concept of MPE usernames
> and MPE accountnames. An example MPE username would be "MGR.BIXBY",
> and if you do a POSIX getpwuid(getuid()), the contents of pw_name will
> be the same "MGR.BIXBY".
Hm. And what is returned in pw_uid?
I think you are getting burnt by initdb's attempt to assign the postgres
superuser's numeric ID to be the same as the Unix userid number of the
user running initdb. Look at the uses of pg_id in the initdb script,
and experiment with running pg_id by hand to see what it produces.
A quick and dirty experiment would be to run "initdb -i 42" (or
whatever) to override the result of pg_id. If that succeeds, the
real answer may be that pg_id needs a patch to behave reasonably on MPE.
Let us know...
regards, tom lane