)]}'
{"keystone/common/sql/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"def81fefe6cf3199ace922ec2d2a1f3571bd512c","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            engine \u003d sql.create_engine(CONF.sql.connection, **engine_config)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"            if \u0027mysql\u0027 in connection_dict.drivername:"},{"line_number":239,"context_line":"                sql.event.listen(engine, \u0027checkout\u0027, ping_listener)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"            return engine"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fmjk%3D","line":238,"updated":"2013-06-26 22:11:18.000000000","message":"i don\u0027t think the driver name (e.g. \"mysql+whatever\") really matters? isn\u0027t it the engine name that you want to base this on?\n\n  if engine.name \u003d\u003d \u0027mysql\u0027:","commit_id":"81b1baa23fc5a9f3dfd26636b204e74e1583500d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"fd03d275d182a72e3729275354616357364bd3d7","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            engine \u003d sql.create_engine(CONF.sql.connection, **engine_config)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"            if \u0027mysql\u0027 in connection_dict.drivername:"},{"line_number":239,"context_line":"                sql.event.listen(engine, \u0027checkout\u0027, ping_listener)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"            return engine"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fmd4%3D","line":238,"in_reply_to":"AAAAPn%2F%2Fmhs%3D","updated":"2013-06-26 22:41:45.000000000","message":"the two cases that came to mind were custom drivers with names like:\n\n  # includes \u0027mysql\u0027 in the name but provides a sqlite engine\n  \u0027sqlite+better-than-mysql\u0027\n\n  # poorly named but provides a mysql engine\n  \u0027companyx-proprietary\u0027","commit_id":"81b1baa23fc5a9f3dfd26636b204e74e1583500d"},{"author":{"_account_id":7891,"name":"Anthony Dodd","email":"Dodd.AnthonyJosiah@gmail.com","username":"TheDodd"},"change_message_id":"7c44ee32f719fb814f01b4de47f34c5378b9c70c","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            engine \u003d sql.create_engine(CONF.sql.connection, **engine_config)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"            if \u0027mysql\u0027 in connection_dict.drivername:"},{"line_number":239,"context_line":"                sql.event.listen(engine, \u0027checkout\u0027, ping_listener)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"            return engine"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fmhs%3D","line":238,"in_reply_to":"AAAAPn%2F%2Fmjk%3D","updated":"2013-06-26 22:20:38.000000000","message":"Dolph, I can\u0027t imagine that `drivername` would have entries for both \u0027mysql\u0027 and \u0027sqlite\u0027. If such was the case, then yes, I think that the code you mentioned is probably a better approach.","commit_id":"81b1baa23fc5a9f3dfd26636b204e74e1583500d"},{"author":{"_account_id":7891,"name":"Anthony Dodd","email":"Dodd.AnthonyJosiah@gmail.com","username":"TheDodd"},"change_message_id":"3be882bced94bf670a4f12a2cd17dce46640d775","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            engine \u003d sql.create_engine(CONF.sql.connection, **engine_config)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"            if \u0027mysql\u0027 in connection_dict.drivername:"},{"line_number":239,"context_line":"                sql.event.listen(engine, \u0027checkout\u0027, ping_listener)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"            return engine"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FtGQ%3D","line":239,"updated":"2013-06-24 21:38:58.000000000","message":"Line 239 seemed to be straight forward. If anyone has any advice on how this could be improved, please let me know.","commit_id":"81b1baa23fc5a9f3dfd26636b204e74e1583500d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3bb72b50a2baa03ad159e52303b84282f7789f7b","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        #return local.iteritems()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"def ping_listener(dbapi_conn, connection_rec, connection_proxy):"},{"line_number":180,"context_line":"    \"\"\"Ensures that MySQL connections checked out of the pool are alive."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    Borrowed from:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FhEE%3D","line":179,"updated":"2013-06-28 17:42:50.000000000","message":"I\u0027d prefer this is called \"mysql_on_checkout\" rather than \"ping_listener\"","commit_id":"76b296c0d94a51069c035d4af2ce9d3f0fc5eccb"},{"author":{"_account_id":7891,"name":"Anthony Dodd","email":"Dodd.AnthonyJosiah@gmail.com","username":"TheDodd"},"change_message_id":"3ded914820cc9b0100cecc4b4d4ca7fc48302b81","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        #return local.iteritems()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"def ping_listener(dbapi_conn, connection_rec, connection_proxy):"},{"line_number":180,"context_line":"    \"\"\"Ensures that MySQL connections checked out of the pool are alive."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    Borrowed from:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fe7Y%3D","line":179,"in_reply_to":"AAAAPn%2F%2FhEE%3D","updated":"2013-06-30 16:52:36.000000000","message":"I can go for that! I will make the change and push it to review on Monday.","commit_id":"76b296c0d94a51069c035d4af2ce9d3f0fc5eccb"}]}
