Re: FailedAssertion("!OidIsValid(def->collOid)", File: "view.c",Line: 89)

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Re: FailedAssertion("!OidIsValid(def->collOid)", File: "view.c",Line: 89)
Дата
Msg-id CA+hUKGLYApN1sZ1193iyPP3SfCs_D7jviP3BzzgbHqm5BATsBw@mail.gmail.com
обсуждение исходный текст
Ответ на FailedAssertion("!OidIsValid(def->collOid)", File: "view.c", Line: 89)  (Manuel Rigger <rigger.manuel@gmail.com>)
Ответы Re: FailedAssertion("!OidIsValid(def->collOid)", File: "view.c",Line: 89)  (Manuel Rigger <rigger.manuel@gmail.com>)
Re: FailedAssertion("!OidIsValid(def->collOid)", File: "view.c",Line: 89)  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Список pgsql-bugs
On Mon, Dec 2, 2019 at 12:32 PM Manuel Rigger <rigger.manuel@gmail.com> wrote:
> CREATE TABLE t0(c0 TEXT COLLATE "POSIX");
> CREATE VIEW v0(c0) AS (SELECT (t0.c0 COLLATE "C")::INT FROM t0); --
> FailedAssertion("!OidIsValid(def->collOid)", File: "view.c", Line: 89)
>
> When building without assertions, the CREATE VIEW statement results in
> an error instead:
>
> ERROR: collations are not supported by type integer

I think the options are to add a check and ereport() instead of an
assertion, or just remove the assertion and let BuildDescForRelation()
report the error as it does in non-assert builds.  I think the latter
is better, since it seems well established that BuildDescForRelation()
will complain about that via its call to GetColumnDefCollation().
Here's a patch to do that.

> TRAP: FailedAssertion("!OidIsValid(def->collOid)", File: "view.c", Line: 89)
> postgres: postgres testdb [local] CREATE
> VIEW(ExceptionalCondition+0x76)[0x563c55747066]
> postgres: postgres testdb [local] CREATE VIEW(DefineView+0x4cb)[0x563c55487cdb]
> ...

I'm loving these new back traces.

Вложения

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

Предыдущее
От: Manuel Rigger
Дата:
Сообщение: FailedAssertion("!OidIsValid(def->collOid)", File: "view.c", Line: 89)
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: logical replication: could not create file "state.tmp": Fileexists