Skip to content

fix(cdc): normalize zero length varchar metadata#4558

Open
hutiefang76 wants to merge 1 commit into
DataLinkDC:devfrom
hutiefang76:codex/dinky-4556-enum-varchar-length
Open

fix(cdc): normalize zero length varchar metadata#4558
hutiefang76 wants to merge 1 commit into
DataLinkDC:devfrom
hutiefang76:codex/dinky-4556-enum-varchar-length

Conversation

@hutiefang76

Copy link
Copy Markdown

Purpose

Fixes #4556.

When CDC metadata contains a string-like column with length 0 (for example from a MySQL ENUM column), DataTypeConverter#getLogicalType passed that value directly to Flink's VarCharType. Flink rejects VARCHAR(0) and throws:

Variable character string length must be between 1 and 2147483647

Changes

  • Normalize null or invalid varchar lengths to VarCharType.MAX_LENGTH before creating the Flink logical type.
  • Add a regression test for a zero-length varchar column mapped through DataTypeConverter.

Verification

Ran locally with JDK 17:

./mvnw -Pflink-single-version,flink-1.18 \
  -pl dinky-flink,dinky-client,dinky-cdc/dinky-cdc-core \
  -am -Dtest=DataTypeConverterTest -DfailIfNoTests=false test

Result: build success, DataTypeConverterTest passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] MySQL ENUM type mapping fails during CDC job build: ValidationException (StringLength must be >= 1)

1 participant