Re: Segmentation fault in volatile c function

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: Segmentation fault in volatile c function
Дата
Msg-id CAH2-Wznhw+iiW8BEjFFDRoPKF+M9C=DS9pqbYo2w+LeEvQW4iQ@mail.gmail.com
обсуждение исходный текст
Ответ на Segmentation fault in volatile c function  (Louise Grandjonc <louve.grandjonc@gmail.com>)
Ответы Re: Segmentation fault in volatile c function  (Louise Grandjonc <louve.grandjonc@gmail.com>)
Список pgsql-general
On Wed, Oct 27, 2021 at 12:39 PM Louise Grandjonc
<louve.grandjonc@gmail.com> wrote:
> I'm creating my first ever extension. The function that I'm trying to write takes the schema and name of a table, and
addsit in a table with all the tables the extension follows. 
> In that table I want the schema, name and oid of the table.
>
> I created a C function for that. Here is the code

I don't think that using cstring as an argument is appropriate here.
That's only used for "internal" functions that are called through C,
rather than being called through SQL.

It would probably be better to use a regclass argument instead. Take a
look at the example of (say) amcheck's bt_index_check() or
verify_heapam() functions to see how that's done. Not all C functions
use this built-in way of specifying a particular relation from SQL (a
few older ones really do just pass a string some other way), but it's
definitely considered the way to go.

Note that you can do stuff like this from SQL:

pg@regression:5432 [2999218]=# select 'pg_class'::regclass::oid;
  oid
───────
 1,259
(1 row)

--
Peter Geoghegan



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

Предыдущее
От: Louise Grandjonc
Дата:
Сообщение: Segmentation fault in volatile c function
Следующее
От: Jérémy Garniaux
Дата:
Сообщение: Re: psql could not connect to server after complete reinstallation [Ubuntu 21.10 / PostgreSQL 13]