github-actions[bot] commented on code in PR #65647:
URL: https://github.com/apache/doris/pull/65647#discussion_r3593565393


##########
fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/streaming/StreamingInsertJob.java:
##########
@@ -288,6 +288,9 @@ private void checkRequiredSourceProperties() {
                 "password is required property");
         
Preconditions.checkArgument(sourceProperties.get(DataSourceConfigKeys.DATABASE) 
!= null,
                 "database is required property");
+        sourceProperties.put(DataSourceConfigKeys.JDBC_URL,

Review Comment:
   **[P2] Keep ALTER comparison and merge on the canonical URL**
   
   This persists `jdbc:mysql://host:port` as the parameterized canonical URL, 
but `AlterJobCommand.checkUnmodifiableSourceProperties()` later compares any 
submitted `jdbc_url` with exact `Objects.equals`. A user who pauses the job and 
resubmits the same raw URL while rotating credentials is therefore rejected 
with `The jdbc_url property cannot be modified`. The changed regression avoids 
the failure by hard-coding `normalizedJdbcUrl`, so it does not cover the 
caller-visible form. Please canonicalize ALTER source properties once and use 
that same value for both the identity comparison and the later merge (or ignore 
a semantically unchanged submitted identity field and retain the stored 
canonical URL), then add a raw CREATE -> raw ALTER credential-rotation case.



##########
fs_brokers/cdc_client/src/main/java/org/apache/doris/cdcclient/source/reader/mysql/MySqlSourceReader.java:
##########
@@ -1018,6 +1018,8 @@ private MySqlSourceConfig generateMySqlConfig(
 
         // Keep genuinely ancient (<100) DATE/DATETIME years; MySQL already 
completes 2-digit years.
         dbzProps.setProperty("enable.time.adjuster", "false");
+        dbzProps.setProperty("converters", "dorisYear");

Review Comment:
   **[P1] Gate this converter on the normalized-reader contract**
   
   This enables the new YEAR-zero behavior for every MySQL reader, including 
replayed jobs whose persisted URL intentionally remains unnormalized and 
upgraded BEs during a rolling upgrade. With Connector/J's default 
`yearIsDateType=true`, numeric YEAR 0 reaches snapshot conversion as a Date in 
year 2000, so this converter emits 2000 there but maps the binlog 
`Year.of(1900)` value to 0. During the BE-first mixed-version window, backend 
selection/binding also has no cdc-client capability filter, so old and new 
readers can produce different values for the same job. Please introduce an 
explicit FE/cdc-client opt-in and enable it only when effective properties are 
normalized and routing guarantees a compatible reader (or migrate legacy jobs 
coherently), with replay and mixed-version tests.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to