Re: pg_dumpall -> fails

Поиск
Список
Период
Сортировка
От Oliver Elphick
Тема Re: pg_dumpall -> fails
Дата
Msg-id 200102281252.f1SCqAH15843@linda.lfix.co.uk
обсуждение исходный текст
Ответ на pg_dumpall -> fails  (will trillich <will@serensoft.com>)
Ответы Re: pg_dumpall -> fails  (will trillich <will@serensoft.com>)
Список pgsql-general
will trillich wrote:
  >so i've got my data recovered (thanks to oliver) and now
  >i wanna back it up with a pg_dumpall...
  >
  >instead, i get 'failed sanity check, type with oid 779927 was no
  >found' in the oddest places...

More than 1 place?

  >CREATE FUNCTION "get_failed sanity check, type with oid 779927 was not found
  >disid" (text,text ) RETURNS int4 AS '
  >    SELECT
  >        get_disid( get_eduid($1), $2 )
  >    ;
  >' LANGUAGE 'SQL';
  >[snip]
  >
  >CREATE FUNCTION "get_studentid" (varchar ) RETURNS int4 AS '
  >    SELECT
  >        who
  >    FROM
  >        _student
  >    WHERE
  >        _student.who = _who.id
  >        AND
  >        _who.login = $1;
  >' LANGUAGE 'SQL';
  >\connect - will
  >pg_dump failed on ed, exiting
  >
  >
  >so what does 'sanity check' mean, and why does it appear
  >in the middle of 'get_disid'?

pg_dump is dumping your functions and for each function it looks up
the argument type by the oid of the type.  For one function there
is a type whose oid is 779927, but there is no row in pg_type with
that oid.

I don't think that get_disid(text,text) is necessarily the
culprit, because the routine aborts pg_dump as soon as it hits that
error (src/bin/pg_dump/common.c:findTypeByOid()), whereas you seem
to be getting a lot of text after the error.  I suspect that
stderr is getting sent and then the stdout buffer is flushed as
the program exits.

Look in pg_proc for a function that tries to use a type of 779927:

 select proname, proargtypes, prorettype from pg_proc;

That will be the one that is causing the problem.  (Of course the
next question is how it got that way.)

--
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47  6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "These things have I written unto you that believe on
      the name of the Son of God; that ye may know that ye
      have eternal life, and that ye may believe on the name
      of the Son of God."        I John 5:13



В списке pgsql-general по дате отправления:

Предыдущее
От: Renaud Tthonnart
Дата:
Сообщение: Re: Object
Следующее
От: Juan Ramón Cortabitarte
Дата:
Сообщение: store procedure in pl/pgsql