Re: Remove Value node struct

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, ilmari@ilmari.org
Cc: pgsql-hackers@postgresql.org
Date: 2021-09-07T09:22:24Z
Lists: pgsql-hackers

Attachments

On 30.08.21 04:13, Kyotaro Horiguchi wrote:
>> However, the patch adds:
>>
>>> +typedef struct Null
>>> +{
>>> +	NodeTag		type;
>>> +	char	   *val;
>>> +} Null;
>>
>> which doesn't seem to be used anywhere. Is that a leftoverf from an
>> intermediate development stage?
> 
> +1 Looks like so, it can be simply removed.

fixed

> 0002:
>    there's an "integer Value node" in gram.y: 7776.

fixed

> -			n = makeFloatConst(v->val.str, location);
> +			n = (Node *) makeFloatConst(castNode(Float, v)->val, location);
> 
> makeFloatConst is Node* so the cast doesn't seem needed. The same can
> be said for Int and String Consts.  This looks like a confustion with
> makeInteger and friends.

fixed

> +	else if (IsA(obj, Integer))
> +		_outInteger(str, (Integer *) obj);
> +	else if (IsA(obj, Float))
> +		_outFloat(str, (Float *) obj);
> 
> I felt that the type enames are a bit confusing as they might be too
> generic, or too close with the corresponding binary types.
> 
> 
> -	Node	   *arg;			/* a (Value *) or a (TypeName *) */
> +	Node	   *arg;
> 
> Mmm. It's a bit pity that we lose the generic name for the value nodes.

Not sure what you mean here.

Commits

  1. Remove Value node struct

  2. Remove useless casts