[
https://issues.apache.org/jira/browse/FLINK-36579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-36579:
-----------------------------------
Labels: pull-request-available (was: )
> mysql cdc charset collation sort not equals java string compare.
> ----------------------------------------------------------------
>
> Key: FLINK-36579
> URL: https://issues.apache.org/jira/browse/FLINK-36579
> Project: Flink
> Issue Type: Improvement
> Components: Flink CDC
> Affects Versions: cdc-3.2.0
> Environment: mysql 8.0
> mysql-cdc 3.2
> Reporter: LIU
> Priority: Major
> Labels: pull-request-available
> Fix For: cdc-3.2.0
>
>
> Use id VARCHAR(255) NOT NULL PRIMARY KEY COLLATE utf8mb3_general_ci as
> ChunkSplitKey.
> Once data for id is
> {code:java}
> aGGGGGG
> GbGGGGG
> GGcGGGG
> GGGdGGG
> GGGGeGG
> GGGGGfG
> GGGGGGg{code}
> mysql sort order is unchanged.
> but java string compare sort becomes reverse order.
>
> {code:java}
> if (ObjectUtils.compare(chunkEnd, max) >= 0) {
> return null;
> } else {
> return chunkEnd;
> }
> public static int compare(Object obj1, Object obj2) {
> if (obj1 instanceof Comparable &&
> obj1.getClass().equals(obj2.getClass())) {
> return ((Comparable) obj1).compareTo(obj2);
> } else {
> return obj1.toString().compareTo(obj2.toString());
> }
> }
> {code}
>
> mysql-cdc queryNextChunkMax will return null. so current snapshotSplit is
> [null, null].
> It will cause the read task to read all data in the table. and make current
> read task hang out for a long time.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)