<pre class="notranslate">I did a goinstall of a command and it installed it in (and created!) $GOROOT/bin instead
of using my $GOBIN setting.</pre>
<p dir="auto">by <strong><a href="mailto:beyondmj0.student@sina.com">beyondmj0.student@sina.com</a></strong>:</p>
<pre class="notranslate">go version go1.3 darwin/amd64


when reuse stmt struct to do "Query", "Exec", "QueryRow"
seems has bug.

mysql:
show global status like '%stmt%';
| Prepared_stmt_count        | 7598   |
| Prepared_stmt_count        | 7600   |
| Prepared_stmt_count        | 7603   |
| Prepared_stmt_count        | 7607   |


can't reuse prepared statement, the prepared_stmt_count increment till exceed
max_prepare_stmt in mysql.


<a href="http://golang.org/src/pkg/database/sql/sql.go?s=32373:33023#L1338" rel="nofollow">http://golang.org/src/pkg/database/sql/sql.go?s=32373:33023#L1338</a>
if all connection busy, then 
<a href="http://golang.org/src/pkg/database/sql/sql.go?s=32373:33023#L1358" rel="nofollow">http://golang.org/src/pkg/database/sql/sql.go?s=32373:33023#L1358</a>
get a connection from pool, then call prepareLocked the prepare a new stmt .

but!!!!
if the connection in pool was just released by a another goroutine with a prepared stmt
stored in dc.openStmt,
then 
<a href="http://golang.org/src/pkg/database/sql/sql.go?s=32373:33023#L251" rel="nofollow">http://golang.org/src/pkg/database/sql/sql.go?s=32373:33023#L251</a>
create a duplicate one....

codes:
<a href="http://play.golang.org/p/hxq1tyHS4e" rel="nofollow">http://play.golang.org/p/hxq1tyHS4e</a></pre>