王玉恒 created FLINK-39492:
---------------------------

             Summary: [Bug][StarRocks Connector] TIMESTAMP/TIMESTAMP_LTZ 
precision (microseconds) lost when sinking to StarRocks
                 Key: FLINK-39492
                 URL: https://issues.apache.org/jira/browse/FLINK-39492
             Project: Flink
          Issue Type: Bug
          Components: Flink CDC
    Affects Versions: cdc-3.6.0
            Reporter: 王玉恒


Describe the bug

When using Flink CDC Pipeline mode to sync MySQL TIMESTAMP(6) to StarRocks, the 
microsecond precision is lost. StarRocks receives only second-level precision
(e.g. 2026-03-27 15:20:29 instead of 2026-03-27 15:20:29.921550).

Root Cause

In StarRocksUtils.java, the DATETIME_FORMATTER is hardcoded as "yyyy-MM-dd 
HH:mm:ss" without fractional seconds:

java
private static final DateTimeFormatter DATETIME_FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

Both TIMESTAMP_WITHOUT_TIME_ZONE and TIMESTAMP_WITH_LOCAL_TIME_ZONE use this 
formatter, ignoring the precision parameter.

In contrast, TIME type correctly handles precision via timeFormatter(int 
precision) with appendFraction(ChronoField.NANO_OF_SECOND, ...).

Expected behavior

The DATETIME formatter should respect the precision of TIMESTAMP types, similar 
to how TIME is handled. For example:
 * TIMESTAMP(0) → "2026-03-27 15:20:29"
 * TIMESTAMP(6) → "2026-03-27 15:20:29.921550"

Suggested fix

Add a datetimeFormatter(int precision) method similar to timeFormatter:

java
private static DateTimeFormatter datetimeFormatter(int precision) {
if (precision <= 0) {
return DATETIME_FORMATTER;
}
return new DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd HH:mm:ss")
.appendFraction(ChronoField.NANO_OF_SECOND, precision, precision, true)
.toFormatter();
}

Environment
 * Flink CDC: 3.6.0
 * Flink: 1.20.1
 * StarRocks: 3.4.8
 * MySQL source field: TIMESTAMP(6)
 * Pipeline mode with schema.change.behavior: evolve

Source code reference

[https://github.com/apache/flink-cdc/blob/master/flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-starrocks/src/main/java/org/]
apache/flink/cdc/connectors/starrocks/sink/StarRocksUtils.java



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to