瀏覽代碼

fix packet appending

#91
Julien Schmidt 12 年之前
父節點
當前提交
334103f0cc
共有 2 個文件被更改,包括 11 次插入5 次删除
  1. 6 2
      driver_test.go
  2. 5 3
      packets.go

+ 6 - 2
driver_test.go

@@ -612,7 +612,7 @@ func TestLongData(t *testing.T) {
 
 		dbt.mustExec("CREATE TABLE test (value LONGBLOB)")
 
-		in := strings.Repeat(`0`, maxAllowedPacketSize+1)
+		in := strings.Repeat(`a`, maxAllowedPacketSize+1)
 		var out string
 		var rows *sql.Rows
 
@@ -648,7 +648,11 @@ func TestLongData(t *testing.T) {
 				dbt.Error("LONGBLOB: unexpexted row")
 			}
 		} else {
-			dbt.Fatalf("LONGBLOB: no data")
+			if err = rows.Err(); err != nil {
+				dbt.Fatalf("LONGBLOB: no data (err: %s)", err.Error())
+			} else {
+				dbt.Fatal("LONGBLOB: no data (err: <nil>)")
+			}
 		}
 	})
 }

+ 5 - 3
packets.go

@@ -57,11 +57,13 @@ func (mc *mysqlConn) readPacket() (data []byte, err error) {
 			return data, nil
 		}
 
+		var buf []byte
+		buf = append(buf, data...)
+
 		// More data
-		var data2 []byte
-		data2, err = mc.readPacket()
+		data, err = mc.readPacket()
 		if err == nil {
-			return append(data, data2...), nil
+			return append(buf, data...), nil
 		}
 	}
 	errLog.Print(err.Error())