having a shadow db, with the real app schema, in the proxy would be convenient..
Merge branch 'master' of g.csail.mit.edu:cryptdb
 - avoid decoding string-to-ZZ in the HOM add latency loop; it was
   accounting for about half the time.
 - divide by the correct number of iterations, otherwise the latency
   was 100 times too high.
we have SqlItem now
tidying AccessManager
count sub-selects
slight optimization in AM; to access unCached key, the number of queries is at worst the number of tables that contain unCached keys
Merge branch 'master' of g.csail.mit.edu:cryptdb
find join conditions and call rewrite() on them.
(although nothing actually gets rewritten now -- rewrite is
presumably going to be used for analysis at the moment..)
Merge branch 'master' of g.csail.mit.edu:cryptdb
a few more AM optimizations
Merge branch 'master' of g.csail.mit.edu:cryptdb
added tests for multiple connections; multi has problems with LAST_INSERT_ID()
ai added to util, ConnectWrapper, etc
simplify port allocation, so that even "test queries proxy-plain proxy-plain" works
Merge branch 'master' of g.csail.mit.edu:cryptdb
support for sending back autoinc to proxy -- apparently we need to do so because last_insert_id only holds the relevant value if the db used the auto inc for that insert (and in the case of multi it does not because we are inserting it)
only test LAST_INSERT_ID that mySQL actually defines the behavior for (those immediately following INSERT queries using auto inc); ConnectWrapper returns three nils for an error
more auto inc debugging -- the app can get last_insert_id in two ways (1) call last_insert_id() on the connection (2) issue SELECT last_insert_id() ; (1) works for us because at the end of each insert, the proxy is adding the last insert in the return; (2) does not work for us because the SELECT is passed to the end DB
Only test last_insert_id() when running through the proxy; test it only with Connect->last_insert_id()