Re: ​function arguments are not PG_FUNCTION_ARGS, how to pass Node *escontext

From: jian he <jian(dot)universality(at)gmail(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ​function arguments are not PG_FUNCTION_ARGS, how to pass Node *escontext
Date: 2023-06-26 13:32:02
Message-ID: CACJufxF6uS4oT7U1Nj-6ypfJtQwv5toZSgoqYZ=sb1a+EHwtAg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jun 26, 2023 at 7:50 PM Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
>
>
> On 2023-06-26 Mo 07:20, jian he wrote:
>
> static
> Datum return_numeric_datum(char *token)
> {
> Datum numd;
> Node *escontext;
>
> if (!DirectInputFunctionCallSafe(numeric_in, token,
> InvalidOid, -1,
> escontext,
> &numd));
> elog(INFO,"something is wrong");
> return numd;
> }
>
>
> To start with, the semicolon at the end of that if appears bogus. The elog is indented to look like it's conditioned by the if but the semicolon makes it not be.
>
> There are compiler switches in modern gcc at least that help you detect things like this.
>
>
> cheers
>
>
> andrew
>
> --
> Andrew Dunstan
> EDB: https://www.enterprisedb.com

sorry. It was my mistake.

> Node *escontext;
> if (!DirectInputFunctionCallSafe(numeric_in, token,
> InvalidOid, -1,
> escontext,
> &numd))
> elog(INFO,"something is wrong");

I wonder about the implication of just declaring Node *escontext in here.
In this DirectInputFunctionCallSafe, what does escontext point to.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hayato Kuroda (Fujitsu) 2023-06-26 13:44:32 RE: [Patch] Use *other* indexes on the subscriber when REPLICA IDENTITY is FULL
Previous Message Ashutosh Bapat 2023-06-26 13:18:59 Re: logical decoding and replication of sequences, take 2