Функция jsonb не существует в Greenplum - PullRequest
0 голосов
/ 30 января 2020

При импорте схемы fhirbase в базу данных Greenplum выдается сообщение об ошибке, что для одной из необходимых функций требуется другая, которой нет в базе данных:

CREATE OR REPLACE FUNCTION _fhirbase_to_resource(x _resource)
RETURNS jsonb AS $$
 select x.resource || jsonb_build_object(
  'resourceType', x.resource_type,
  'id', x.id,
  'meta', coalesce(x.resource->'meta', '{}'::jsonb) || jsonb_build_object(
    'lastUpdated', x.ts,
    'versionId', x.txid::text
  )
 );
$$ LANGUAGE sql;

Возвращено сообщение об ошибке и подсказка :

LINE 6: ...ta', coalesce(x.resource->'meta', '{}'::jsonb) || jsonb_buil...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Можно ли вообще переопределить эту функцию?

  • Ubuntu-Server 18.04
  • База данных Greenplum: 6.3.0

1 Ответ

0 голосов
/ 30 января 2020

Документы для fhirbase говорят "Любая версия выше 9.6 должна подойти", поэтому похоже, что ваша версия Postgresql не поддерживается. Одной из причин этого является то, что функция jsonb_build_object() была введена в Postgresql9.5 .

Является ли обновление до Postgresql 9.6 или новее опцией?

Источник для jsonb_build_object находится в jsonb. c, поэтому я думаю, что возможно вернуться назад перенести его, но поскольку последний выпуск для 9.4 будет , в следующем месяце обновление может быть лучшим вариантом.

...