Browse Source

append LengthEncodedInteger directly to slice

Julien Schmidt 12 years ago
parent
commit
f41250e853
2 changed files with 11 additions and 11 deletions
  1. 6 6
      packets.go
  2. 5 5
      utils.go

+ 6 - 6
packets.go

@@ -918,8 +918,8 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
 				paramTypes[i+i+1] = 0x00
 
 				if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 {
-					paramValues = append(paramValues,
-						lengthEncodedIntegerToBytes(uint64(len(v)))...,
+					paramValues = appendLengthEncodedInteger(paramValues,
+						uint64(len(v)),
 					)
 					paramValues = append(paramValues, v...)
 				} else {
@@ -933,8 +933,8 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
 				paramTypes[i+i+1] = 0x00
 
 				if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 {
-					paramValues = append(paramValues,
-						lengthEncodedIntegerToBytes(uint64(len(v)))...,
+					paramValues = appendLengthEncodedInteger(paramValues,
+						uint64(len(v)),
 					)
 					paramValues = append(paramValues, v...)
 				} else {
@@ -954,8 +954,8 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
 					val = []byte(v.In(mc.cfg.loc).Format(timeFormat))
 				}
 
-				paramValues = append(paramValues,
-					lengthEncodedIntegerToBytes(uint64(len(val)))...,
+				paramValues = appendLengthEncodedInteger(paramValues,
+					uint64(len(val)),
 				)
 				paramValues = append(paramValues, val...)
 

+ 5 - 5
utils.go

@@ -668,16 +668,16 @@ func readLengthEncodedInteger(b []byte) (num uint64, isNull bool, n int) {
 	return
 }
 
-func lengthEncodedIntegerToBytes(n uint64) []byte {
+func appendLengthEncodedInteger(b []byte, n uint64) []byte {
 	switch {
 	case n <= 250:
-		return []byte{byte(n)}
+		return append(b, byte(n))
 
 	case n <= 0xffff:
-		return []byte{0xfc, byte(n), byte(n >> 8)}
+		return append(b, 0xfc, byte(n), byte(n>>8))
 
 	case n <= 0xffffff:
-		return []byte{0xfd, byte(n), byte(n >> 8), byte(n >> 16)}
+		return append(b, 0xfd, byte(n), byte(n>>8), byte(n>>16))
 	}
-	return nil
+	return b
 }