Re: [GENERAL] Re: INIT DB FAILURE - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [GENERAL] Re: INIT DB FAILURE
Date
Msg-id 14130.979680091@sss.pgh.pa.us
Whole thread Raw
List pgsql-hackers
"Mike Miller" <temp6453@hotmail.com> writes:
> mv global.bki global.bki.old; mv template1.bki template1.bki.old
> cat global.bki.old | sed s/" ame"/" name"/ > global.bki
> cat template1.bki.old | sed s/" ame"/" name"/ > global.bki

> Solution is pretty simple actually (did figure this one out).  I did find
> other people complaining about this, but no solutions.  But I just did the
> install on an older slackware system and diffed the bki files to find some
> as 'ame' and others as 'name' - so I used the lines above and managed to get
> it to work just fine.

OK, so the breakage is not in the bootstrap parser but in the generation
of the .bki files.  This is done by the shell script
src/backend/catalog/genbki.sh, and in looking it over, I notice with
suspicion the step

sed -e "s/;[     ]*$//g" \
    -e "s/^[     ]*//" \
    -e "s/[     ]Oid/\ oid/g" \
    -e "s/[     ]NameData/\ name/g" \
    -e "s/^Oid/oid/g" \
    -e "s/^NameData/\name/g" \
    -e "s/(NameData/(name/g" \
    -e "s/(Oid/(oid/g" \
    -e "s/NAMEDATALEN/$NAMEDATALEN/g" \
    -e "s/INDEX_MAX_KEYS\*2/$INDEXMAXKEYS2/g" \
    -e "s/INDEX_MAX_KEYS\*4/$INDEXMAXKEYS4/g" \
    -e "s/INDEX_MAX_KEYS/$INDEXMAXKEYS/g" \
    -e "s/FUNC_MAX_ARGS\*2/$INDEXMAXKEYS2/g" \
    -e "s/FUNC_MAX_ARGS\*4/$INDEXMAXKEYS4/g" \
    -e "s/FUNC_MAX_ARGS/$INDEXMAXKEYS/g" \
| $AWK '

In particular that "\name" looks pretty bogus.  Would you try removing
that backslash and see if the script works then?  I'll betcha that some
versions of sed convert the \n to a newline ...

BTW, what version of sed do you have, exactly?

            regards, tom lane

pgsql-hackers by date:

Previous
From: "Mikheev, Vadim"
Date:
Subject: RE: SIGTERM -> elog(FATAL) -> proc_exit() is probably a bad idea
Next
From: "Mikheev, Vadim"
Date:
Subject: RE: SIGTERM -> elog(FATAL) -> proc_exit() is probably a bad idea