2015-02-11 5 views
0

Postgres развития расширения

Я работаю с C API для Postgres-9.4, установленного с Ubuntu испытанного основного репозитория. Это может быть глупый вопрос, но, пожалуйста, несите меня.обработка jsonb PostgreSQL с C API

Я хотел бы использовать функцию, которая преобразует cstring в Jsonb* структуру, определенную в

http://doxygen.postgresql.org/jsonb_8h.html

Есть функции делают именно это уже определено в

http://doxygen.postgresql.org/jsonb_8c.html

А именно, функция Datum jsonb_in (PG_FUNCTION_ARGS), однако я не уверен, могу ли я позвонить эта функция от C API переносима и безопасна. Похоже, он предназначен для того, чтобы быть вызванным postgres с первого взгляда.

Я также мог бы использовать функцию jsonb_from_cstring

http://doxygen.postgresql.org/jsonb_8c.html#ab23eca28d5880f86a0943d71c90d6654

но она объявлена ​​и определена в jsonb.c и не декларируется в json.h, и, следовательно, связь с этой функцией не очень чистое решение. Я попытался найти символы для jsonb_from_cstring в libpq.so, однако их нет. Я предполагаю, что мне нужна нестандартная сборка postgres?

Итак, вопрос в том, что является лучшим способом преобразования cstring в структуру Jsonb* из C API?

Edit:

Расширение получает JSon данные в виде строки из внешнего источника и должен быть в состоянии хранить эту строку в Jsonb типа

+0

Вы разрабатываете расширение Postgres? Или пользовательская функция для запуска на сервере? Эти функции не из открытого интерфейса, и вы не должны использовать их в противном случае. – Tometzky

+0

@Tometzky Я разрабатываю расширение postgres – iggy

ответ

Смежные вопросы