Yeah, I have been thinking about this also.
The thing is, ConnectionInfo is an allocated struct per connection and it is the only place to put these 'connection-only' variables.  I create my own later, during the parse phase, an instance of ParseData.
That was a mistake. ParseData should have been a member of ConnectionInfo since its birth.
What I had to do in this PR, to marry Compound Values and the contextValue the compound belongs to was to add this ParseData pointer inside ConnectionInfo.
Really, I should send the entire ConnectionInfo to all the parsing routines.
That change will probably never be done ...