tchivs created FLINK-38188:
------------------------------

             Summary: 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


*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