Properly SerDes nested collections when protocol_version < 3
nested collections are only serialized with v3 encoding, regardless of protocol version in use.
v3 as a requirement is documented, but we should be able to detect and warn about this condition to avoid confusing silent failures.
This can be done during schema build.
More important now, as default protocol version is still v2.
This as been fixed. Test case is now added.
So I improved my test based on some feedback. I found an issue.
Here is a link to the improved TestCase.
It would appear that set types are not deserializing appropriately with protocol version 1 and 2. The result when using those protocol versions always contains an empty set. They are being inserted appropriately, as even when inserted with protocol v1, they can be read with protocol v3/v4, but the results of a select query never contain a populated set when using protocol v1/v2.
Here is the output from the test when the asserts are disabled.
+1 @ 3b10ce5 For better or worse this is what the cpp-driver does.