I believe that there were original plans for the PI Adapters to support an initial value from the snapshot, but it didn't go in to the final product.
So now I am facing the fact that I am pulling two stream from PI, one slower than the other. For the slow one I need an initial value because of the stream join I am using; the slower stream is a flag needed to determine if the quality from the slower stream is inherited by the fast stream.
Just scratching around now for other ways of pushing an initial value through the query to be held in memory, otherwise each pair won't be pushed to the output until the slow stream has a value. I could use AF SDK to get snapshot values (I'm not too concerned about the time difference of signing up to the update manager and the snapshot value I retrieve), create a query based on them but I then want those values to expire when new values start coming via the adapters - I no longer need to be reliant on the original "snapshot" stream.
I am shaking the snapshots (ha, I even named my method "shakeSnapshots") of the slower stream to force events through the update manager and into my query. Just needed to start the query, wait for the adapters to be up and running then update shake the snapshots of my slow points with their current snapshot event & time + replaceDuplicates. Works a treat and I have the expected behaviour in my query now.