Tom Lane wrote:
>
> 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?
A valid numeric 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.
pg_id without parameters returns uid=484(MGR.BIXBY), which matches what I get
from MPE's native id command.
The pg_id -n and -u options behave as expected.
> 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.
I just hacked src/test/regress/run_check.sh to invoke initdb with --show. The
user name/id is behaving "correctly" for an MPE machine:
SUPERUSERNAME: MGR.BIXBY
SUPERUSERID: 484
The initdb -i option will only override the SUPERUSERID, but it's already
correct.
--
mark@bixby.org
Remainder of .sig suppressed to conserve scarce California electrons...