On Mon, Jun 26, 2023 at 7:50 PM Andrew Dunstan <andrew@dunslane.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
bythe 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.