Re: Receive a string in Composite-type Arguments

From: Achilleas Mantzios <achill(at)matrix(dot)gatewaynet(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Receive a string in Composite-type Arguments
Date: 2017-08-11 14:39:24
Message-ID: 5f3b7c0a-f72d-5d2a-3712-8e0396e72ded@matrix.gatewaynet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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?
>
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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Pavel Stehule 2017-08-11 15:12:27 Re: Receive a string in Composite-type Arguments
Previous Message Murtuza Zabuawala 2017-08-11 14:15:29 Fwd: 2 process postgres -D for one instance