You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
The Value node struct is a weird construct. It is its own node type,but most of the time, it actually has a node type of Integer, Float,String, or BitString. As a consequence, the struct name and the nodetype don't match most of the time, and so it has to be treatedspecially a lot. There doesn't seem to be any value in the specialconstruct. There is very little code that wants to accept all Valuevariants but nothing else (and even if it did, this doesn't provideany convenient way to check it), and most code wants either just oneparticular node type (usually String), or it accepts a broader set ofnode types besides just Value.This change removes the Value struct and node type and replaces themby separate Integer, Float, String, and BitString node types that areproper node types and structs of their own and behave mostly likenormal node types.Also, this removes the T_Null node tag, which was previously also apossible variant of Value but wasn't actually used outside of theValue contained in A_Const. Replace that by an isnull field inA_Const.Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>Discussion:https://www.postgresql.org/message-id/flat/5ba6bc5b-3f95-04f2-2419-f8ddb4c046fb@enterprisedb.com