FoundationDB/sql-layer — pull request #1021 by MMcM (2013-11-02 18:25:41+00:00)
Title: Protobuf storage format

Add a storage format for group rows that uses the recently added generated Protocol Buffers messages.

The schema manager is responsible for saving the generated format in its part of the database. I am certain that there are problem with the timing of this if the schema changes. But it seems like it might be best not to create more code to be converted to online DDL, since this is an experimental feature. I'm glad to make obvious corrections, of course.

In Persistit, this saves the table id of the group before the row message. This is solely to support display in the maintenance console, which may be a heavy price to pay. If Persistit could be changed, then a way to get from the Value passed to the customer Coder to the tree might avoid that. I am open to other suggestions.

Also includes a cleanup to StorageDescription.cloneForObject to consistently pass a second argument to the super constructor, even when the parent class happens not to have anything to copy. This consistency should avoid bugs where things don't get copied.