PatrickRen commented on code in PR #3186:
URL: https://github.com/apache/flink-cdc/pull/3186#discussion_r1560643635


##########
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-mysql/src/test/java/org/apache/flink/cdc/connectors/mysql/source/MySqlDataSourceFactoryTest.java:
##########
@@ -79,6 +80,49 @@ public void testNoMatchedTable() {
                 .hasMessageContaining("Cannot find any table by the option 
'tables' = " + tables);
     }
 
+    @Test
+    public void testExcludeTable() {
+        inventoryDatabase.createAndInitialize();
+        Map<String, String> options = new HashMap<>();
+        options.put(HOSTNAME.key(), MYSQL_CONTAINER.getHost());
+        options.put(PORT.key(), 
String.valueOf(MYSQL_CONTAINER.getDatabasePort()));
+        options.put(USERNAME.key(), TEST_USER);
+        options.put(PASSWORD.key(), TEST_PASSWORD);
+        // db has three tables , table.list= (products,orders shipments)
+        options.put(TABLES.key(), inventoryDatabase.getDatabaseName() + 
".prod\\.*");
+        String tableExcludeList = inventoryDatabase.getDatabaseName() + 
".prod\\.orders";

Review Comment:
   Here the inclusion pattern is `prod.*`, which matches only one table 
`products`. The exclusion pattern is `prod.orders`, which doesn't match any 
table, so I'm afraid this case doesn't truly test if the exclusion works as 
expected. 
   
   What about using `\\.*` for matching all tables in inclusion, and `orders` 
for exclusion? The expected output should be `products` and `shipments` after 
applying the filter.



##########
docs/content/docs/connectors/mysql.md:
##########
@@ -205,6 +205,16 @@ pipeline:
           <td>Integer</td>
           <td>The connection pool size.</td>
     </tr>
+    <tr>
+      <td>table.exclude.list</td>

Review Comment:
   Thanks for the input. With these examples I think it makes sense to support 
exclusions. 
   
   About the name of the config: what about `tables.exclude`? The value is not 
a list but a regex, and using plural form is to align with the option `tables`.
   
   And we need to explain to users about how we apply these filters: match 
using `tables` first, then drop tables matches `tables.exclude`.



-- 
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: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to