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 <p...@bowt.ie> wrote:
> 
> On Wed, Oct 27, 2021 at 12:39 PM Louise Grandjonc
> <louve.grandj...@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 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



Reply via email to