Is there any difference between calling conn.Close() before every return (as you seem to have) and just defer-ing it? Or are you anticipating conn.Close() changing (per below TODO)?