@@ -329,16 +329,10 @@ func (mc *mysqlConn) writeHandshakeResponsePacket(authResp []byte, plugin string
329
329
}
330
330
331
331
// 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 ))
336
333
337
334
// 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 )
342
336
343
337
// Collation ID [1 byte]
344
338
data [12 ] = defaultCollationID
@@ -478,10 +472,7 @@ func (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error {
478
472
data [4 ] = command
479
473
480
474
// 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 )
485
476
486
477
// Send CMD packet
487
478
return mc .writePacket (data )
@@ -955,14 +946,10 @@ func (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error {
955
946
data [4 ] = comStmtSendLongData
956
947
957
948
// 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 )
962
950
963
951
// Add paramID [16 bit]
964
- data [9 ] = byte (paramID )
965
- data [10 ] = byte (paramID >> 8 )
952
+ binary .LittleEndian .PutUint16 (data [9 :], uint16 (paramID ))
966
953
967
954
// Send CMD packet
968
955
err := stmt .mc .writePacket (data [:4 + pktLen ])
@@ -1018,19 +1005,13 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
1018
1005
data [4 ] = comStmtExecute
1019
1006
1020
1007
// 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 )
1025
1009
1026
1010
// flags (0: CURSOR_TYPE_NO_CURSOR) [1 byte]
1027
1011
data [9 ] = 0x00
1028
1012
1029
1013
// 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 )
1034
1015
1035
1016
if len (args ) > 0 {
1036
1017
pos := minPktLen
@@ -1084,50 +1065,17 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
1084
1065
case int64 :
1085
1066
paramTypes [i + i ] = byte (fieldTypeLongLong )
1086
1067
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 ))
1099
1069
1100
1070
case uint64 :
1101
1071
paramTypes [i + i ] = byte (fieldTypeLongLong )
1102
1072
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 ))
1115
1074
1116
1075
case float64 :
1117
1076
paramTypes [i + i ] = byte (fieldTypeDouble )
1118
1077
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 ))
1131
1079
1132
1080
case bool :
1133
1081
paramTypes [i + i ] = byte (fieldTypeTiny )
0 commit comments