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
- v2-0001-Remove-useless-casts.patch (text/plain) patch v2-0001
- v2-0002-Remove-Value-node-struct.patch (text/plain) patch v2-0002
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
-
Remove Value node struct
- 639a86e36aae 15.0 landed
-
Remove useless casts
- cbdf75bf8053 15.0 landed