Transactional Query issues (#1444)
Transactional Query issues (#1444)

This fixes two issues:

Issue #1:
"Cannot deserialize; kj::Exception: expected segment != nullptr &&
 segment->checkObject(segment->getStartPtr(), ONE * WORDS); Message
 did not contain a root pointer."}

This a one-line fix where we must reset the original buffers offset
after writing to it.

Issue #2:
Before attempting to deserialize a query, we serialize the current
state as a backup. If the deserialization of the new query fails,
we deserialize the backup to ensure that the query object leaves
the 'query_deserialize()' in its original state. Deserializing
the backup is failing on a 'memcpy' when we attempt to copy the
first incoming attribute buffer into the backup query. This fails
because we are only deserializing the query object and do not
provide any concatenated data buffers.

The easiest fix is to add a path to ignore attribute buffer processing
entirely in the 'do_query_deserialize' path. This allows us to revert
the Query object to its original state, leaving the data buffers untouched.
This is OK because we also revert the 'copy_state', so we can have extra,
incomplete data at the end of the data buffers.
TileDB-Inc/TileDB,TileDB-Inc/TileDB,TileDB-Inc/TileDB,TileDB-Inc/TileDB