@@ -329,16 +329,10 @@ func (mc *mysqlConn) writeHandshakeResponsePacket(authResp []byte, plugin string
329329 }
330330
331331 // ClientFlags [32 bit]
332- data [4 ] = byte (clientFlags )
333- data [5 ] = byte (clientFlags >> 8 )
334- data [6 ] = byte (clientFlags >> 16 )
335- data [7 ] = byte (clientFlags >> 24 )
332+ binary .LittleEndian .PutUint32 (data [4 :], uint32 (clientFlags ))
336333
337334 // MaxPacketSize [32 bit] (none)
338- data [8 ] = 0x00
339- data [9 ] = 0x00
340- data [10 ] = 0x00
341- data [11 ] = 0x00
335+ binary .LittleEndian .PutUint32 (data [8 :], 0 )
342336
343337 // Collation ID [1 byte]
344338 data [12 ] = defaultCollationID
@@ -478,10 +472,7 @@ func (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error {
478472 data [4 ] = command
479473
480474 // Add arg [32 bit]
481- data [5 ] = byte (arg )
482- data [6 ] = byte (arg >> 8 )
483- data [7 ] = byte (arg >> 16 )
484- data [8 ] = byte (arg >> 24 )
475+ binary .LittleEndian .PutUint32 (data [5 :], arg )
485476
486477 // Send CMD packet
487478 return mc .writePacket (data )
@@ -955,14 +946,10 @@ func (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error {
955946 data [4 ] = comStmtSendLongData
956947
957948 // Add stmtID [32 bit]
958- data [5 ] = byte (stmt .id )
959- data [6 ] = byte (stmt .id >> 8 )
960- data [7 ] = byte (stmt .id >> 16 )
961- data [8 ] = byte (stmt .id >> 24 )
949+ binary .LittleEndian .PutUint32 (data [5 :], stmt .id )
962950
963951 // Add paramID [16 bit]
964- data [9 ] = byte (paramID )
965- data [10 ] = byte (paramID >> 8 )
952+ binary .LittleEndian .PutUint16 (data [9 :], uint16 (paramID ))
966953
967954 // Send CMD packet
968955 err := stmt .mc .writePacket (data [:4 + pktLen ])
@@ -1018,19 +1005,13 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
10181005 data [4 ] = comStmtExecute
10191006
10201007 // statement_id [4 bytes]
1021- data [5 ] = byte (stmt .id )
1022- data [6 ] = byte (stmt .id >> 8 )
1023- data [7 ] = byte (stmt .id >> 16 )
1024- data [8 ] = byte (stmt .id >> 24 )
1008+ binary .LittleEndian .PutUint32 (data [5 :], stmt .id )
10251009
10261010 // flags (0: CURSOR_TYPE_NO_CURSOR) [1 byte]
10271011 data [9 ] = 0x00
10281012
10291013 // iteration_count (uint32(1)) [4 bytes]
1030- data [10 ] = 0x01
1031- data [11 ] = 0x00
1032- data [12 ] = 0x00
1033- data [13 ] = 0x00
1014+ binary .LittleEndian .PutUint32 (data [10 :], 1 )
10341015
10351016 if len (args ) > 0 {
10361017 pos := minPktLen
@@ -1084,50 +1065,17 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
10841065 case int64 :
10851066 paramTypes [i + i ] = byte (fieldTypeLongLong )
10861067 paramTypes [i + i + 1 ] = 0x00
1087-
1088- if cap (paramValues )- len (paramValues )- 8 >= 0 {
1089- paramValues = paramValues [:len (paramValues )+ 8 ]
1090- binary .LittleEndian .PutUint64 (
1091- paramValues [len (paramValues )- 8 :],
1092- uint64 (v ),
1093- )
1094- } else {
1095- paramValues = append (paramValues ,
1096- uint64ToBytes (uint64 (v ))... ,
1097- )
1098- }
1068+ paramValues = binary .LittleEndian .AppendUint64 (paramValues , uint64 (v ))
10991069
11001070 case uint64 :
11011071 paramTypes [i + i ] = byte (fieldTypeLongLong )
11021072 paramTypes [i + i + 1 ] = 0x80 // type is unsigned
1103-
1104- if cap (paramValues )- len (paramValues )- 8 >= 0 {
1105- paramValues = paramValues [:len (paramValues )+ 8 ]
1106- binary .LittleEndian .PutUint64 (
1107- paramValues [len (paramValues )- 8 :],
1108- uint64 (v ),
1109- )
1110- } else {
1111- paramValues = append (paramValues ,
1112- uint64ToBytes (uint64 (v ))... ,
1113- )
1114- }
1073+ paramValues = binary .LittleEndian .AppendUint64 (paramValues , uint64 (v ))
11151074
11161075 case float64 :
11171076 paramTypes [i + i ] = byte (fieldTypeDouble )
11181077 paramTypes [i + i + 1 ] = 0x00
1119-
1120- if cap (paramValues )- len (paramValues )- 8 >= 0 {
1121- paramValues = paramValues [:len (paramValues )+ 8 ]
1122- binary .LittleEndian .PutUint64 (
1123- paramValues [len (paramValues )- 8 :],
1124- math .Float64bits (v ),
1125- )
1126- } else {
1127- paramValues = append (paramValues ,
1128- uint64ToBytes (math .Float64bits (v ))... ,
1129- )
1130- }
1078+ paramValues = binary .LittleEndian .AppendUint64 (paramValues , math .Float64bits (v ))
11311079
11321080 case bool :
11331081 paramTypes [i + i ] = byte (fieldTypeTiny )
0 commit comments