From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Patrick Handja <patrick(dot)bungama(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: How to get Relation tuples in C function |
Date: | 2021-02-13 21:23:40 |
Message-ID: | 1814477.1613251420@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Patrick Handja <patrick(dot)bungama(at)gmail(dot)com> writes:
> I would like to know if there is a better way to pass a relation or if the
> relation name (CString) as a parameter in a C function and thus be able to
> manipulate its tuples. The documentation is available here:
> https://www.postgresql.org/docs/13/xfunc-c.html#id-1.8.3.13.11. But it is
> not quite clear enough on how to retrieve tuples.
The thing I'd recommend you do is use SPI [1], which lets you execute
SQL queries from inside a C function. If you don't want to do that
for whatever reason, you need to open the relation, set up a scan,
and fetch tuples from the scan, relying on low-level APIs that tend
to change from version to version. contrib/pageinspect or
contrib/pgstattuple might offer usable sample code, although with any
prototype you might look at, it's going to be hard to see the forest
for the trees.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2021-02-13 21:39:30 | Re: WIP: WAL prefetch (another approach) |
Previous Message | Zhihong Yu | 2021-02-13 21:12:25 | Re: Possible dereference null return (src/backend/replication/logical/reorderbuffer.c) |