I wonder if we can avoid making MERGE_ACTION a keyword.
I think we could parse it initially as a function and then transform it
to a more special node later. In the attached patch, I'm doing this in
parse analysis. We could try to do it even later and actually execute
it as a function, if we could get the proper context passed into it somehow.
I'm thinking about this with half an eye on future features. For
example, row pattern recognition might introduce similar magic functions
match_number() and classifier() (somewhat the inspiration for the
merge_action() syntax), which could use similar treatment.
Thoughts?