Thank you! I used that. The segmentation fault came from a later code in my hook. But that helped. > On Oct 27, 2021, at 12:47 PM, Peter Geoghegan <pg@xxxxxxx> wrote: > > On Wed, Oct 27, 2021 at 12:39 PM Louise Grandjonc > <louve.grandjonc@xxxxxxxxx> 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 adds it 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