2017-08-11 16:39 GMT+02:00 Achilleas Mantzios <ach...@matrix.gatewaynet.com>
:

> On 11/08/2017 16:09, Fabiana Zioti wrote:
>
> Hi!
>
> I am studying how to program extensions for PostgreSQL in C language.
>
> In the example to return to return Composite-type Arguments, from the
> PostgreSQL 9.6 documentation, I could not make the cash from a cstring to
> the HeapTupleHeader type.
>
> That is, instead of the function receive as a parameter a table:
>
> CREATE FUNCTION c_overpaid (emp, integer) RETURNS boolean
> AS DIRECTORY
>
> SELECT name, c_overpaid (emp, 1500) AS overpaid
>      From emp
>      WHERE name = 'Bill' OR name = 'Sam';
>
> And in the code in C receive the argument as:
>
> HeapTupleHeader t = PG_GETARG_HEAPTUPLEHEADER (0);
>
>
> The sql function would be defined as:
>
> CREATE FUNCTION c_overpaid (cstring, integer) RETURNS boolean
>      AS 'DIRECTORY / funcs', 'c_overpaid'
>      LANGUAGE C STRICT;
>
> But how would I receive this argument, for example:
> Char * str = PG_GETARG_CSTRING (0),
>
> And do the conversion to the HeapTupleHeader type?
>
>
Hi

you have to build tuple first. Later you can got a HeapTupleHeader

pl_toolbox has some functions for composite types

https://github.com/okbob/pltoolbox

Regards

Pavel Stehule


>
> Why do you want to convert this to HeapTupleHeader since this is *not* a
> tuple but a string value? What do you want to achieve? IMHO you better
> start with simpler examples, make them run, and proceed as you understand
> more and more.
>
>
> What do you guys suggest?
>
> Thanks in advance
>
>
> --
> Achilleas Mantzios
> IT DEV Lead
> IT DEPT
> Dynacom Tankers Mgmt
>
>

Reply via email to