1111import com .actiontech .dble .net .connection .AbstractConnection ;
1212import com .actiontech .dble .net .service .AbstractService ;
1313import com .actiontech .dble .net .service .WriteFlags ;
14+ import com .actiontech .dble .plan .common .field .FieldUtil ;
1415import com .actiontech .dble .statistic .sql .StatisticListener ;
1516import com .actiontech .dble .util .ByteUtil ;
1617import com .actiontech .dble .util .DateUtil ;
@@ -91,6 +92,7 @@ private void storeNullBitMap(int i) {
9192 private void convert (byte [] fv , FieldPacket fieldPk ) {
9293
9394 int fieldType = fieldPk .getType ();
95+ boolean unsigned = (fieldPk .getFlags () & FieldUtil .UNSIGNED_FLAG ) != 0 ;
9496 switch (fieldType ) {
9597 case Fields .FIELD_TYPE_STRING :
9698 case Fields .FIELD_TYPE_VARCHAR :
@@ -118,8 +120,14 @@ private void convert(byte[] fv, FieldPacket fieldPk) {
118120
119121 // Example
120122 // 01 00 00 00 00 00 00 00 -- int64 = 1
121- long longVar = ByteUtil .getLong (fv );
122- this .fieldValues .add (ByteUtil .getBytes (longVar ));
123+ if (unsigned ) {
124+ long longVar = ByteUtil .getUnsignedLong (fv );
125+ this .fieldValues .add (ByteUtil .getBytes (longVar ));
126+ } else {
127+ long longVar = ByteUtil .getLong (fv );
128+ this .fieldValues .add (ByteUtil .getBytes (longVar ));
129+ }
130+
123131 break ;
124132 case Fields .FIELD_TYPE_LONG :
125133 case Fields .FIELD_TYPE_INT24 :
@@ -128,8 +136,14 @@ private void convert(byte[] fv, FieldPacket fieldPk) {
128136
129137 // Example
130138 // 01 00 00 00 -- int32 = 1
131- int intVar = ByteUtil .getInt (fv );
132- this .fieldValues .add (ByteUtil .getBytes (intVar ));
139+ if (unsigned ) {
140+ int intVar = ByteUtil .getUnsignedInt (fv );
141+ this .fieldValues .add (ByteUtil .getBytes (intVar ));
142+ } else {
143+ int intVar = ByteUtil .getInt (fv );
144+ this .fieldValues .add (ByteUtil .getBytes (intVar ));
145+ }
146+
133147 break ;
134148 case Fields .FIELD_TYPE_SHORT :
135149 case Fields .FIELD_TYPE_YEAR :
0 commit comments