[
https://issues.apache.org/jira/browse/FLINK-38188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
tchivs resolved FLINK-38188.
----------------------------
Fix Version/s: cdc-3.5.0
Resolution: Fixed
> PostgreSQL connector database name validation logic is inverted in
> getValidateDatabaseName method
> -------------------------------------------------------------------------------------------------
>
> Key: FLINK-38188
> URL: https://issues.apache.org/jira/browse/FLINK-38188
> Project: Flink
> Issue Type: Bug
> Components: Flink CDC
> Affects Versions: cdc-3.4.0
> Environment: 1. Configure a PostgreSQL CDC source with multiple
> tables from the same database
> 2. Use table format like: `database.schema.table1,database.schema.table2`
> 3. Observe the IllegalStateException being thrown during validation
> Reporter: tchivs
> Priority: Major
> Labels: bug, easyfix, postgresql, pull-request-available,
> validation
> Fix For: cdc-3.5.0
>
> Original Estimate: 1m
> Remaining Estimate: 1m
>
> *Problem Description:*
> The `getValidateDatabaseName` method in `PostgresDataSourceFactory` has
> incorrect validation logic that causes it to throw an exception when all
> tables have the same database name, which is the opposite of the intended
> behavior.
> *Current Behavior:*
> When configuring multiple PostgreSQL tables with the same database name
> (e.g., `aia_test.public.table1,aia_test.public.table2`), the validation fails
> with:
> {code}
> java.lang.IllegalStateException: The value of option tables all table names
> must have the same database name
> {code}
> *Expected Behavior:*
> The validation should pass when all tables have the same database name and
> only fail when database names are inconsistent.
> *Root Cause:*
> In line 424 of `PostgresDataSourceFactory.java`, the condition is inverted:
> {code:java}
> checkState(
> !dbName.equals(currentDbName), // Should be dbName.equals(currentDbName)
> String.format(
> "The value of option %s all table names must have the same database
> name",
> TABLES.key()));
> {code}
> *Impact:*
> This prevents users from using multiple tables from the same PostgreSQL
> database in their CDC pipelines.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)