Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(2049)

Issue 5785043: code review 5785043: database/sql{,driver}: add ErrBadConn (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
12 years, 8 months ago by bradfitz
Modified:
12 years, 8 months ago
Reviewers:
blake.mizerany, kr
CC:
golang-dev, rsc
Visibility:
Public.

Description

database/sql{,driver}: add ErrBadConn

Patch Set 1 #

Patch Set 2 : diff -r 8602e1593d53 https://go.googlecode.com/hg #

Patch Set 3 : diff -r 8602e1593d53 https://go.googlecode.com/hg #

Patch Set 4 : diff -r 8602e1593d53 https://go.googlecode.com/hg #

Patch Set 5 : diff -r 8602e1593d53 https://go.googlecode.com/hg #

Total comments: 14

Patch Set 6 : diff -r 9974201aa263 https://go.googlecode.com/hg/ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+86 lines, -34 lines) Patch
M src/pkg/database/sql/driver/driver.go View 1 2 3 4 5 1 chunk +11 lines, -0 lines 0 comments Download
M src/pkg/database/sql/sql.go View 1 2 3 4 5 8 chunks +75 lines, -34 lines 0 comments Download

Messages

Total messages: 21
bradfitz
Hello golang-dev@googlegroups.com, I'd like you to review this change to https://go.googlecode.com/hg
12 years, 8 months ago (2012-03-07 22:05:12 UTC) #1
rsc
What if it doesn't implement this?
12 years, 8 months ago (2012-03-07 22:06:06 UTC) #2
bradfitz
On Wed, Mar 7, 2012 at 2:06 PM, Russ Cox <rsc@golang.org> wrote: > What if ...
12 years, 8 months ago (2012-03-07 22:07:48 UTC) #3
bradfitz
Hello golang-dev@googlegroups.com, rsc@golang.org (cc: golang-dev@googlegroups.com), Please take another look.
12 years, 8 months ago (2012-03-07 23:29:34 UTC) #4
rsc
LGTM http://codereview.appspot.com/5785043/diff/6001/src/pkg/database/sql/driver/driver.go File src/pkg/database/sql/driver/driver.go (right): http://codereview.appspot.com/5785043/diff/6001/src/pkg/database/sql/driver/driver.go#newcode46 src/pkg/database/sql/driver/driver.go:46: // ErrBadConn should be returned by drivers to ...
12 years, 8 months ago (2012-03-08 15:26:13 UTC) #5
bradfitz
http://codereview.appspot.com/5785043/diff/6001/src/pkg/database/sql/driver/driver.go File src/pkg/database/sql/driver/driver.go (right): http://codereview.appspot.com/5785043/diff/6001/src/pkg/database/sql/driver/driver.go#newcode46 src/pkg/database/sql/driver/driver.go:46: // ErrBadConn should be returned by drivers to signal ...
12 years, 8 months ago (2012-03-08 18:07:23 UTC) #6
bradfitz
*** Submitted as http://code.google.com/p/go/source/detail?r=7a8c58d0b7b8 *** database/sql{,driver}: add ErrBadConn R=golang-dev, rsc CC=golang-dev http://codereview.appspot.com/5785043
12 years, 8 months ago (2012-03-08 18:09:51 UTC) #7
blake.mizerany
I see a problem with this: If the database returns a FATAL error to me, ...
12 years, 8 months ago (2012-03-08 21:50:28 UTC) #8
rsc
I don't understand. If you want the driver to try a new connection, return ErrBadConn. ...
12 years, 8 months ago (2012-03-08 21:57:44 UTC) #9
blake.mizerany
I'm saying I want to have my cake and eat it. I need to get ...
12 years, 8 months ago (2012-03-08 22:10:42 UTC) #10
rsc
On Thu, Mar 8, 2012 at 17:10, Blake Mizerany <blake.mizerany@gmail.com> wrote: > I need to ...
12 years, 8 months ago (2012-03-08 22:14:51 UTC) #11
bradfitz
Get this "FATAL" thing from Postgres, set a "broken" bit on your Conn type, return ...
12 years, 8 months ago (2012-03-08 22:15:16 UTC) #12
kr
I suggest letting the conn expose a flag to indicate whether it's ok to continue ...
12 years, 8 months ago (2012-03-08 23:25:05 UTC) #13
bradfitz
ErrBadConn never makes it to the user. On Fri, Mar 9, 2012 at 10:25 AM, ...
12 years, 8 months ago (2012-03-08 23:42:34 UTC) #14
blake.mizerany
Ah. I see that now. I apologize. On Thu, Mar 8, 2012 at 3:42 PM, ...
12 years, 8 months ago (2012-03-08 23:51:02 UTC) #15
kr
Is the flexibility of having a special-case error value worth the extra complexity? Do we ...
12 years, 8 months ago (2012-03-09 00:23:24 UTC) #16
rsc
> Also, I suspect the ErrBadConn strategy will > be more error-prone. Rerunning queries 10 ...
12 years, 8 months ago (2012-03-09 03:26:48 UTC) #17
kr
On Thu, Mar 8, 2012 at 7:26 PM, Russ Cox <rsc@golang.org> wrote: > There's an ...
12 years, 8 months ago (2012-03-09 04:57:02 UTC) #18
rsc
On Thu, Mar 8, 2012 at 23:56, Keith Rarick <kr@xph.us> wrote: > ErrBadConn has the ...
12 years, 8 months ago (2012-03-09 05:05:09 UTC) #19
kr
On Thu, Mar 8, 2012 at 9:05 PM, Russ Cox <rsc@golang.org> wrote: > If you ...
12 years, 8 months ago (2012-03-09 05:55:15 UTC) #20
rsc
12 years, 8 months ago (2012-03-09 19:11:02 UTC) #21
On Fri, Mar 9, 2012 at 00:55, Keith Rarick <kr@xph.us> wrote:
> Yes, a subset of errors make the conn unusable, and
> a subset of those errors can be safely retried.
> ErrBadConn has an advantage if it's desirable to
> hide that smaller subset from the user. Is that
> a goal? It might be preferable for the user to be
> able to see those errors. And, even if we want to
> hide those errors, is that smaller subset large
> enough to be worth the cost?
>
> (I'm not asking rhetorically; I honestly don't know.)

I don't know either.  However, the possible benefit seems
large - if this case comes up, we can handle it - and the
cost seems miniscule: people writing drivers have to write a
few more lines of code.  How many drivers will there ever be?
10?  50?

FWIW, I do think that the case comes up: if you have a
long-standing TCP connection to a database server and
an idle connection drops between calls, you can return ErrBadConn
from the next call and avoid showing that connection drop
to the user.

Russ
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b