Rebase after pg_indent. Besides, off the list there was a suggestion that this could be useful to accept more than one data type as a key for subscripting. E.g. for jsonb it probably makes sense to understand both a simple key name and jsonpath:
jsonb['a'] and jsonb['$.a']
While to implement it can be technically relatively straightforward I guess, I wonder if there is any opinion about how valuable it could be and what it should looks like from the syntax point of view (since I believe a user needs to specify which type needs to be used).
It is difficult decision - possibility to use jsonpath looks great, but necessity to cast every time is not friendly.
Probably there can be preferred type if subscripting is of unknown type. There can be similar rules to function's parameters.
so jsonb['a'] -- key
jsonb['$.a'] -- key
jsonb['$.a'::jsonpath'] -- json path
but it can be source of bad issues - so I think we don't need this feature in this moment. This feature can be implemented later, I think.