[BUGS] Segmentation fault with JSONB column from view passed into storedPL/PGSQL procedure that builds a new JSON return value

Поиск
Список
Период
Сортировка
От Samuel Horwitz
Тема [BUGS] Segmentation fault with JSONB column from view passed into storedPL/PGSQL procedure that builds a new JSON return value
Дата
Msg-id CA+JV_JOGeA202=dTyRMtpmxOWs7yzf5HCy-8jAj+ac2x_Ju1Hw@mail.gmail.com
обсуждение исходный текст
Ответы Re: [BUGS] Segmentation fault with JSONB column from view passed intostored PL/PGSQL procedure that builds a new JSON return value
Список pgsql-bugs
Postgres Version: 9.6.5

I have a table that includes a JSONB column. I have a view that is based on this table that reflects this JSONB column. I have yet another view, based on the first view, that passes rows from the first view into a stored PL/PGSQL procedure as anyelement. This stored procedure builds a JSON object from it's input and returns that new JSON object. One of the values on the new JSON object is the value of the JSONB column that has gone through two views by this point, into the procedure.

At this point everything works. Selecting from the second view is fine.

However, if I alter the stored procedure's resulting JSON in any way, this will cause selecting from the second view to trigger a segfault.

The solution is easy: regenerate the second view by just CREATE OR REPLACEing it with the existing definition.

I have created a public Gist with reproduction steps and dumps, attached here: https://gist.github.com/samuelhorwitz/0bc77a517238914512fc8cdf50d217cd

Please scroll to the bottom (or click here https://gist.github.com/samuelhorwitz/0bc77a517238914512fc8cdf50d217cd#gistcomment-2240442) to see my steps.

Samuel Horwitz

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

Предыдущее
От: bouellette@mixpo.com
Дата:
Сообщение: [BUGS] BUG #14875: pg_createcluster fails to load --createclusterconf
Следующее
От: samuel.horwitz@gmail.com
Дата:
Сообщение: [BUGS] BUG #14876: Segmentation fault with JSONB column used in store procthat gets used by view and later altered