|
18 | 18 | import com.pingcap.tikv.codec.Codec;
|
19 | 19 | import com.pingcap.tikv.codec.CodecDataInput;
|
20 | 20 | import com.pingcap.tikv.codec.CodecDataOutput;
|
| 21 | +<<<<<<< HEAD:tikv-client/src/main/java/com/pingcap/tikv/key/CommonHandle.java |
21 | 22 | import com.pingcap.tikv.exception.CodecException;
|
22 | 23 | import com.pingcap.tikv.types.Converter;
|
| 24 | +======= |
| 25 | +import com.pingcap.tikv.key.Key; |
| 26 | +>>>>>>> 47d082c7c (Compatible with TiDB mater (v6.5.0) (#2598)):tikv-client/src/main/java/com/pingcap/tikv/handle/CommonHandle.java |
23 | 27 | import com.pingcap.tikv.types.DataType;
|
24 | 28 | import com.pingcap.tikv.types.MySQLType;
|
25 | 29 | import com.pingcap.tikv.util.FastByteComparisons;
|
26 | 30 | import java.sql.Date;
|
27 | 31 | import java.sql.Timestamp;
|
| 32 | +import java.text.SimpleDateFormat; |
28 | 33 | import java.util.ArrayList;
|
29 | 34 | import java.util.Arrays;
|
30 | 35 | import java.util.List;
|
| 36 | +import java.util.TimeZone; |
31 | 37 | import java.util.stream.Collectors;
|
32 | 38 | import org.joda.time.Days;
|
33 | 39 | import org.joda.time.LocalDate;
|
@@ -69,16 +75,16 @@ public static CommonHandle newCommonHandle(
|
69 | 75 | // When indexScan or tableScan, it will pass `Long` object.
|
70 | 76 | // It's a compromise here since we don't have a good way to make them consistent.
|
71 | 77 | if (data[i] instanceof Date) {
|
72 |
| - days = Days.daysBetween(new LocalDate(0), new LocalDate(data[i])).getDays(); |
| 78 | + days = Days.daysBetween(new LocalDate(1970, 1, 1), new LocalDate(data[i])).getDays(); |
73 | 79 | } else {
|
74 | 80 | days = (long) data[i];
|
75 | 81 | }
|
76 | 82 |
|
77 |
| - // Convert to UTC days for row key. |
78 |
| - if (Converter.getLocalTimezone().getOffset(0) < 0) { |
79 |
| - days += 1; |
80 |
| - } |
81 |
| - dataTypes[i].encode(cdo, DataType.EncodeType.KEY, new Date((days) * MS_OF_ONE_DAY)); |
| 83 | + SimpleDateFormat utcFmt = new SimpleDateFormat("yyyy-MM-dd"); |
| 84 | + utcFmt.setTimeZone(TimeZone.getTimeZone("UTC")); |
| 85 | + |
| 86 | + dataTypes[i].encode( |
| 87 | + cdo, DataType.EncodeType.KEY, Date.valueOf(utcFmt.format(days * MS_OF_ONE_DAY))); |
82 | 88 | } else {
|
83 | 89 | if (prefixLengthes[i] > 0 && data[i] instanceof String) {
|
84 | 90 | String source = (String) data[i];
|
|
0 commit comments