{"push_id":544304185,"size":1,"distinct_size":1,"ref":"refs/heads/context","head":"5d36d53d8629ae0f400ca7eed70ae7a7b07d96ba","before":"db63b250d19aab9c23a0835f29ec4a9fbd192bb4","commits":[{"sha":"5d36d53d8629ae0f400ca7eed70ae7a7b07d96ba","author":{"email":"9f1285ce769db85d55d71da62e9c988ee878d423@uber.com","name":"Peder Andersen"},"message":"connection: only commit on context exit if necessary\n\nThe current connection context manager issues either a 'commit' or a\n'rollback' command based on whether there were any exceptions\nthrown during the context execution.  In the case where no write\ncommands were issued to the server, there's no need to perform these\noperations, so at best they're just a (small) overhead.  However,\nin the wild we also observe a non-trivial number of cases where\nreading the return value from this no-op command actually results in\nan exception (select() indicates bytes are available on the read\nsocket, but recv() returns none) and this causes the entire context\nto appear to have failed.\n\nThis commit alters the connection context manager to only issue commit/\nrollback commands when there are outstanding changes when exiting.","distinct":true,"url":"https://api.github.com/repos/uber/vertica-python/commits/5d36d53d8629ae0f400ca7eed70ae7a7b07d96ba"}]}