[ 
https://issues.apache.org/jira/browse/FLINK-38188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-38188:
-----------------------------------
    Labels: bug easyfix postgresql pull-request-available validation  (was: bug 
easyfix postgresql validation)

> 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: Connectors / JDBC
>    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
>   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)

Reply via email to