cached plan must not change result type

Поиск
Список
Период
Сортировка
От Jan Bilek
Тема cached plan must not change result type
Дата
Msg-id SYXPR01MB0701122A755200ECF78A8405B5D80@SYXPR01MB0701.ausprd01.prod.outlook.com
обсуждение исходный текст
Ответы Re: cached plan must not change result type
Список pgsql-general
Hi all,

Our client noticed a problem which occurred so far twice, but might be having quite significant impact on our application processing in production: ResStatus: PGRES_FATAL_ERROR transaction. ErrorMessage: ERROR: cached plan must not change result type.

Reading through the documentation problem is quite understood on our side, while most probably caused by our implementation of Virtual Partitioning on postgresql, by triggering database schema update through the application upgrade procedure or simply by altering one of the tables manually - so far so good.

Now, our developers came with a solution where we check return value from PQresultStatus(x) for PGRES_FATAL_ERROR and then if the error message from PQresultErrorMessage(x) contains "cached plan must not change result type" we delete statement and prepare it again.

I would like to ask, would you see this solution in general as fine, or is there any better way to achieve this? I particularly dislike the part when we are trying matching return string on "cached plan must not change result type" as error messages might change (e.g. situations using different locales), is there any way how to get around this e.g. with enumerator?

Thank you,
Jan

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

Предыдущее
От: Tiffany Thang
Дата:
Сообщение: Prefixing schema name
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Prefixing schema name