PostgreSQL 6.4.2: typeidTypeRelid error
I'd like to re-ask on this thread of a few days ago because I suspect
there is a deeper problem here that changing compilers simply "hides" in
some way.
I have a similar problem on Digital UNIX 4.0d with postgresql 6.4.2
compiled with vendor CC (V5.6 using "cc -std1" in compile).
% mv ${PGDATA} ${PGDATA}.foo
% mkdir $PGDATA
% initdb
% createdb test
% psql test
test=> create table val (v_num decimal);
test=> \d val
ERROR: typeidTypeRelid: Invalid type - oid = 0
I have the same problem in an existing database that actually has data
in it - queries (seem to) work ok, but using psql to examine tables and
such is impossible.
The last discussion of this was on AIX 4.3.2 compiled with gcc, and the
fix (if I read the resolution of that thread properly) was to use the
vendor xlC on AIX instead.
http://www.postgresql.org/mhonarc/pgsql-hackers/1999-03/msg00066.html
This doesn't help me on Digital UNIX.
A previous mention of something similar (with no resolution I can find
in the archives) was in:
http://www.postgresql.org/mhonarc/pgsql-general/1999-01/msg00230.html
with pgsql 6.4.2 on LinuxPPC R4.
And before that (again, no resolution I can find) in:
http://www.postgresql.org/mhonarc/pgsql-hackers/1998-11/msg00215.html
on 6.4 where the problem is in IRIX with vendor cc and mentioned on
Digital UNIX 4.0b with the same "cc -std1" that I am using.
Any advice greatly appreciated.
Erik Riedel
Carnegie Mellon University
riedel@cmu.edu
Erik Riedel wrote:
I'd like to re-ask on this thread of a few days ago because I suspect
there is a deeper problem here that changing compilers simply "hides" in
some way.I have a similar problem on Digital UNIX 4.0d with postgresql 6.4.2
compiled with vendor CC (V5.6 using "cc -std1" in compile).% mv ${PGDATA} ${PGDATA}.foo
% mkdir $PGDATA
% initdb
% createdb test
% psql test
test=> create table val (v_num decimal);
test=> \d val
ERROR: typeidTypeRelid: Invalid type - oid = 0I have the same problem in an existing database that actually has data
in it - queries (seem to) work ok, but using psql to examine tables and
such is impossible.The last discussion of this was on AIX 4.3.2 compiled with gcc, and the
fix (if I read the resolution of that thread properly) was to use the
vendor xlC on AIX instead.
This is correct. I changed two items.
1) switched from gcc to xlc
2) changed -qchars=unsigned (was -qchars=signed)
Most of the regression tests failed with -qchars=signed and all passed without
so much as a whimper when -qchars=unsigned. Don't know why this happened, or if
it makes any difference on your platform, but that's what AIX needs to work.