FoundationDB/sql-layer — pull request #1074 by nathanlws (2013-11-23 21:35:27+00:00)
Title: OnlineHelper caches transformation info

The previous metadata changes let the index and alter functions load the changes from storage instead of passing it. This set of changes actually caches the transformation information on the AIS in anticipation of concurrent sessions making use of it.

This mainly involves expanding RowTypesAndIndexes into the union of what is needed for both indexing and altering. The methods became a bit more general, by necessity, so multiple tables could actually be transformed in single pass now. That isn't exposed any higher yet, of course.

Next merge/future detail: I had initially thought both Store and DDLFunctions would call the static methods of OnlineHelper, but that's actually a little messy. Store doesn't really need to know about online changes. I actually have it reworked in the next branch for OnlineHelper to be a RowLIstener (hence the new instantiation). That seems fairly clean, but preemptive input welcome.