Обсуждение: [BUGS] Segmentation fault with JSONB column from view passed into storedPL/PGSQL procedure that builds a new JSON return value

Поиск
Список
Период
Сортировка
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
On Thu, Oct 26, 2017 at 11:26 AM, Samuel Horwitz <samuelhorwitz@gmail.com> wrote:
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.


​Duplicate of Bug # 14876​

David J.