Skip to content

Commit 8416bd0

Browse files
committed
Remove unnecessary struct wrapping
1 parent 89c5b90 commit 8416bd0

File tree

5 files changed

+35
-43
lines changed

5 files changed

+35
-43
lines changed

connection.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,9 @@ func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) {
108108
return nil, err
109109
}
110110

111-
stmt := mysqlStmt{new(stmtContent)}
112-
stmt.mc = mc
111+
stmt := &mysqlStmt{
112+
mc: mc,
113+
}
113114

114115
// Read Result
115116
var columnCount uint16
@@ -202,11 +203,11 @@ func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, erro
202203
return nil, err
203204
}
204205

205-
rows := mysqlRows{&rowsContent{mc, false, nil, false}}
206+
rows := &mysqlRows{mc, false, nil, false}
206207

207208
if resLen > 0 {
208209
// Columns
209-
rows.content.columns, err = mc.readColumns(resLen)
210+
rows.columns, err = mc.readColumns(resLen)
210211
if err != nil {
211212
return nil, err
212213
}

packets.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ Prepare OK Packet
658658
(EOF packet)
659659
660660
*/
661-
func (stmt mysqlStmt) readPrepareResultPacket() (columnCount uint16, err error) {
661+
func (stmt *mysqlStmt) readPrepareResultPacket() (columnCount uint16, err error) {
662662
data, err := stmt.mc.readPacket()
663663
if err != nil {
664664
return
@@ -704,7 +704,7 @@ Bytes Name
704704
n*2 type of parameters
705705
n values for the parameters
706706
*/
707-
func (stmt mysqlStmt) buildExecutePacket(args *[]driver.Value) error {
707+
func (stmt *mysqlStmt) buildExecutePacket(args *[]driver.Value) error {
708708
argsLen := len(*args)
709709
if argsLen < stmt.paramCount {
710710
return fmt.Errorf(
@@ -838,7 +838,7 @@ func (stmt mysqlStmt) buildExecutePacket(args *[]driver.Value) error {
838838
}
839839

840840
// http://dev.mysql.com/doc/internals/en/prepared-statements.html#packet-ProtocolBinary::ResultsetRow
841-
func (mc *mysqlConn) readBinaryRow(rc *rowsContent) (*[]*[]byte, error) {
841+
func (mc *mysqlConn) readBinaryRow(rc *mysqlRows) (*[]*[]byte, error) {
842842
data, err := mc.readPacket()
843843
if err != nil {
844844
return nil, err

result.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//
33
// Copyright 2012 Julien Schmidt. All rights reserved.
44
// http://www.julienschmidt.com
5-
//
5+
//
66
// This Source Code Form is subject to the terms of the Mozilla Public
77
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
88
// You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -14,10 +14,10 @@ type mysqlResult struct {
1414
insertId int64
1515
}
1616

17-
func (res mysqlResult) LastInsertId() (int64, error) {
17+
func (res *mysqlResult) LastInsertId() (int64, error) {
1818
return res.insertId, nil
1919
}
2020

21-
func (res mysqlResult) RowsAffected() (int64, error) {
21+
func (res *mysqlResult) RowsAffected() (int64, error) {
2222
return res.affectedRows, nil
2323
}

rows.go

+16-21
Original file line numberDiff line numberDiff line change
@@ -21,38 +21,33 @@ type mysqlField struct {
2121
flags FieldFlag
2222
}
2323

24-
type rowsContent struct {
24+
type mysqlRows struct {
2525
mc *mysqlConn
2626
binary bool
2727
columns []mysqlField
2828
eof bool
2929
}
3030

31-
type mysqlRows struct {
32-
content *rowsContent
33-
}
34-
35-
func (rows mysqlRows) Columns() (columns []string) {
36-
columns = make([]string, len(rows.content.columns))
31+
func (rows *mysqlRows) Columns() (columns []string) {
32+
columns = make([]string, len(rows.columns))
3733
for i := 0; i < cap(columns); i++ {
38-
columns[i] = rows.content.columns[i].name
34+
columns[i] = rows.columns[i].name
3935
}
4036
return
4137
}
4238

43-
func (rows mysqlRows) Close() (err error) {
39+
func (rows *mysqlRows) Close() (err error) {
4440
defer func() {
45-
rows.content.mc = nil
46-
rows.content = nil
41+
rows.mc = nil
4742
}()
4843

4944
// Remove unread packets from stream
50-
if !rows.content.eof {
51-
if rows.content.mc == nil {
45+
if !rows.eof {
46+
if rows.mc == nil {
5247
return errors.New("Invalid Connection")
5348
}
5449

55-
_, err = rows.content.mc.readUntilEOF()
50+
_, err = rows.mc.readUntilEOF()
5651
if err != nil {
5752
return
5853
}
@@ -65,12 +60,12 @@ func (rows mysqlRows) Close() (err error) {
6560
// or []byte's for all other entries. Type conversion is done on rows.scan(),
6661
// when the dest type is know, which makes type conversion easier and avoids
6762
// unnecessary conversions.
68-
func (rows mysqlRows) Next(dest []driver.Value) error {
69-
if rows.content.eof {
63+
func (rows *mysqlRows) Next(dest []driver.Value) error {
64+
if rows.eof {
7065
return io.EOF
7166
}
7267

73-
if rows.content.mc == nil {
68+
if rows.mc == nil {
7469
return errors.New("Invalid Connection")
7570
}
7671

@@ -79,15 +74,15 @@ func (rows mysqlRows) Next(dest []driver.Value) error {
7974
// Fetch next row from stream
8075
var row *[]*[]byte
8176
var err error
82-
if rows.content.binary {
83-
row, err = rows.content.mc.readBinaryRow(rows.content)
77+
if rows.binary {
78+
row, err = rows.mc.readBinaryRow(rows)
8479
} else {
85-
row, err = rows.content.mc.readRow(columnsCount)
80+
row, err = rows.mc.readRow(columnsCount)
8681
}
8782

8883
if err != nil {
8984
if err == io.EOF {
90-
rows.content.eof = true
85+
rows.eof = true
9186
}
9287
return err
9388
}

statement.go

+8-12
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,24 @@ import (
1414
"errors"
1515
)
1616

17-
type stmtContent struct {
17+
type mysqlStmt struct {
1818
mc *mysqlConn
1919
id uint32
2020
paramCount int
2121
params []mysqlField
2222
}
2323

24-
type mysqlStmt struct {
25-
*stmtContent
26-
}
27-
28-
func (stmt mysqlStmt) Close() (err error) {
24+
func (stmt *mysqlStmt) Close() (err error) {
2925
err = stmt.mc.writeCommandPacket(COM_STMT_CLOSE, stmt.id)
3026
stmt.mc = nil
3127
return
3228
}
3329

34-
func (stmt mysqlStmt) NumInput() int {
30+
func (stmt *mysqlStmt) NumInput() int {
3531
return stmt.paramCount
3632
}
3733

38-
func (stmt mysqlStmt) Exec(args []driver.Value) (driver.Result, error) {
34+
func (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) {
3935
if stmt.mc == nil {
4036
return nil, errors.New(`Invalid Statement`)
4137
}
@@ -72,13 +68,13 @@ func (stmt mysqlStmt) Exec(args []driver.Value) (driver.Result, error) {
7268
return nil, err
7369
}
7470

75-
return mysqlResult{
71+
return &mysqlResult{
7672
affectedRows: int64(stmt.mc.affectedRows),
7773
insertId: int64(stmt.mc.insertId)},
7874
nil
7975
}
8076

81-
func (stmt mysqlStmt) Query(args []driver.Value) (driver.Rows, error) {
77+
func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) {
8278
if stmt.mc == nil {
8379
return nil, errors.New(`Invalid Statement`)
8480
}
@@ -96,11 +92,11 @@ func (stmt mysqlStmt) Query(args []driver.Value) (driver.Rows, error) {
9692
return nil, err
9793
}
9894

99-
rows := mysqlRows{&rowsContent{stmt.mc, true, nil, false}}
95+
rows := &mysqlRows{stmt.mc, true, nil, false}
10096

10197
if resLen > 0 {
10298
// Columns
103-
rows.content.columns, err = stmt.mc.readColumns(resLen)
99+
rows.columns, err = stmt.mc.readColumns(resLen)
104100
if err != nil {
105101
return nil, err
106102
}

0 commit comments

Comments
 (0)