This is an automated email from the ASF dual-hosted git repository.
ferenc-csaky pushed a commit to branch v2.0
in repository https://gitbox.apache.org/repos/asf/flink-connector-mongodb.git
The following commit(s) were added to refs/heads/v2.0 by this push:
new 515e833 [FLINK-39098] Fix v2.0 CI: Bump testcontainers to 1.21.4,
Flink to 1.20.5 and drop 1.19
515e833 is described below
commit 515e833a1a87cf8e93c29392f12fe4dbb6cbd313
Author: Purushottam Sinha <[email protected]>
AuthorDate: Tue Oct 27 00:47:17 2026 +0530
[FLINK-39098] Fix v2.0 CI: Bump testcontainers to 1.21.4, Flink to 1.20.5
and drop 1.19
Co-authored-by: Rahul Teke <[email protected]>
Generated-by: Claude Code (claude-opus-5-5)
---
.github/workflows/push_pr.yml | 2 +-
docs/data/mongodb.yml | 2 +-
.../flink/tests/util/mongodb/MongoE2ECase.java | 8 +-
.../connector/mongodb/table/MongoTablePlanTest.xml | 98 +++++++++++-----------
pom.xml | 4 +-
5 files changed, 60 insertions(+), 54 deletions(-)
diff --git a/.github/workflows/push_pr.yml b/.github/workflows/push_pr.yml
index 37f8922..20124ed 100644
--- a/.github/workflows/push_pr.yml
+++ b/.github/workflows/push_pr.yml
@@ -29,7 +29,7 @@ jobs:
strategy:
matrix:
mongodb: [ mongodb4, mongodb5, mongodb6, mongodb7 ]
- flink: [ 1.19-SNAPSHOT, 1.20-SNAPSHOT ]
+ flink: [ 1.20-SNAPSHOT ]
jdk: [ '8, 11, 17, 21' ]
uses: apache/flink-connector-shared-utils/.github/workflows/ci.yml@ci_utils
diff --git a/docs/data/mongodb.yml b/docs/data/mongodb.yml
index bfb3a74..4f5654b 100644
--- a/docs/data/mongodb.yml
+++ b/docs/data/mongodb.yml
@@ -17,7 +17,7 @@
################################################################################
version: 2.0.0
-flink_compatibility: [1.19, 1.20]
+flink_compatibility: [1.20]
variants:
- maven: flink-connector-mongodb
sql_url:
https://repo.maven.apache.org/maven2/org/apache/flink/flink-sql-connector-mongodb/$full_version/flink-sql-connector-mongodb-$full_version.jar
diff --git
a/flink-connector-mongodb-e2e-tests/src/test/java/org/apache/flink/tests/util/mongodb/MongoE2ECase.java
b/flink-connector-mongodb-e2e-tests/src/test/java/org/apache/flink/tests/util/mongodb/MongoE2ECase.java
index 49e87be..bdb35cc 100644
---
a/flink-connector-mongodb-e2e-tests/src/test/java/org/apache/flink/tests/util/mongodb/MongoE2ECase.java
+++
b/flink-connector-mongodb-e2e-tests/src/test/java/org/apache/flink/tests/util/mongodb/MongoE2ECase.java
@@ -81,11 +81,17 @@ class MongoE2ECase {
.dependsOn(MONGO_CONTAINER)
.build();
+ // One TaskManager with two slots instead of two TaskManagers.
FlinkContainers builds an image
+ // per TaskManager under the same tag and starts them in parallel, which
intermittently fails
+ // with "pull access denied for flink-configured-taskmanager".
@RegisterExtension
private static final FlinkContainers FLINK =
FlinkContainers.builder()
.withFlinkContainersSettings(
-
FlinkContainersSettings.builder().numTaskManagers(2).build())
+ FlinkContainersSettings.builder()
+ .numTaskManagers(1)
+ .numSlotsPerTaskManager(2)
+ .build())
.withTestcontainersSettings(TESTCONTAINERS_SETTINGS)
.build();
diff --git
a/flink-connector-mongodb/src/test/resources/org/apache/flink/connector/mongodb/table/MongoTablePlanTest.xml
b/flink-connector-mongodb/src/test/resources/org/apache/flink/connector/mongodb/table/MongoTablePlanTest.xml
index b40cb1f..5ef0b10 100644
---
a/flink-connector-mongodb/src/test/resources/org/apache/flink/connector/mongodb/table/MongoTablePlanTest.xml
+++
b/flink-connector-mongodb/src/test/resources/org/apache/flink/connector/mongodb/table/MongoTablePlanTest.xml
@@ -16,75 +16,75 @@ See the License for the specific language governing
permissions and
limitations under the License.
-->
<Root>
- <TestCase name="testFilterPushdown">
- <Resource name="sql">
- <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo WHERE id = 900001
AND timestamp3_col <> TIMESTAMP '2022-09-07 10:25:28.127' OR double_col >=
-1000.23]]>
- </Resource>
- <Resource name="ast">
- <![CDATA[
+ <TestCase name="testFilterCannotPushdown">
+ <Resource name="sql">
+ <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo
WHERE id IS NOT NULL OR double_col = decimal_col]]>
+ </Resource>
+ <Resource name="ast">
+ <![CDATA[
LogicalProject(id=[$0], timestamp3_col=[$4], int_col=[$5])
-+- LogicalFilter(condition=[OR(AND(=($0, 900001), <>($4, CAST(2022-09-07
10:25:28.127:TIMESTAMP(3)):TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) NOT NULL)), >=($6,
-1000.23:DECIMAL(6, 2)))])
++- LogicalFilter(condition=[OR(IS NOT NULL($0), =($6, CAST($7):DOUBLE))])
+- LogicalTableScan(table=[[default_catalog, default_database, mongo]])
]]>
- </Resource>
- <Resource name="optimized exec plan">
- <![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, mongo,
filter=[and(OR(=(id, 900001:BIGINT), >=(double_col, -1000.23:DECIMAL(6, 2))),
OR(<>(timestamp3_col, 2022-09-07
10:25:28.127:TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)), >=(double_col,
-1000.23:DECIMAL(6, 2))))], project=[id, timestamp3_col, int_col]]],
fields=[id, timestamp3_col, int_col])
+ </Resource>
+ <Resource name="optimized exec plan">
+ <![CDATA[
+Calc(select=[id, timestamp3_col, int_col], where=[(id IS NOT NULL OR
(double_col = CAST(decimal_col AS DOUBLE)))])
++- TableSourceScan(table=[[default_catalog, default_database, mongo,
filter=[], project=[id, timestamp3_col, int_col, double_col, decimal_col]]],
fields=[id, timestamp3_col, int_col, double_col, decimal_col])
]]>
- </Resource>
- </TestCase>
- <TestCase name="testFilterPartialPushdown">
- <Resource name="sql">
- <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo WHERE id = 900001
AND boolean_col = (decimal_col > 2.0)]]>
- </Resource>
- <Resource name="ast">
- <![CDATA[
+ </Resource>
+ </TestCase>
+ <TestCase name="testFilterPartialPushdown">
+ <Resource name="sql">
+ <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo
WHERE id = 900001 AND boolean_col = (decimal_col > 2.0)]]>
+ </Resource>
+ <Resource name="ast">
+ <![CDATA[
LogicalProject(id=[$0], timestamp3_col=[$4], int_col=[$5])
+- LogicalFilter(condition=[AND(=($0, 900001), =($2, >($7, 2.0:DECIMAL(2,
1))))])
+- LogicalTableScan(table=[[default_catalog, default_database, mongo]])
]]>
- </Resource>
- <Resource name="optimized exec plan">
- <![CDATA[
+ </Resource>
+ <Resource name="optimized exec plan">
+ <![CDATA[
Calc(select=[CAST(900001 AS BIGINT) AS id, timestamp3_col, int_col],
where=[(boolean_col = (decimal_col > 2.0))])
+- TableSourceScan(table=[[default_catalog, default_database, mongo,
filter=[=(id, 900001:BIGINT)], project=[boolean_col, timestamp3_col, int_col,
decimal_col]]], fields=[boolean_col, timestamp3_col, int_col, decimal_col])
]]>
- </Resource>
- </TestCase>
- <TestCase name="testFilterCannotPushdown">
- <Resource name="sql">
- <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo WHERE id IS NOT
NULL OR double_col = decimal_col]]>
- </Resource>
- <Resource name="ast">
- <![CDATA[
+ </Resource>
+ </TestCase>
+ <TestCase name="testFilterPushdown">
+ <Resource name="sql">
+ <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo
WHERE id = 900001 AND timestamp3_col <> TIMESTAMP '2022-09-07 10:25:28.127' OR
double_col >= -1000.23]]>
+ </Resource>
+ <Resource name="ast">
+ <![CDATA[
LogicalProject(id=[$0], timestamp3_col=[$4], int_col=[$5])
-+- LogicalFilter(condition=[OR(IS NOT NULL($0), =($6, CAST($7):DOUBLE))])
++- LogicalFilter(condition=[OR(AND(=($0, 900001), <>($4, CAST(2022-09-07
10:25:28.127:TIMESTAMP(3)):TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) NOT NULL)), >=($6,
-1000.23:DECIMAL(6, 2)))])
+- LogicalTableScan(table=[[default_catalog, default_database, mongo]])
]]>
- </Resource>
- <Resource name="optimized exec plan">
- <![CDATA[
-Calc(select=[id, timestamp3_col, int_col], where=[(id IS NOT NULL OR
(double_col = CAST(decimal_col AS DOUBLE)))])
-+- TableSourceScan(table=[[default_catalog, default_database, mongo,
filter=[], project=[id, timestamp3_col, int_col, double_col, decimal_col]]],
fields=[id, timestamp3_col, int_col, double_col, decimal_col])
+ </Resource>
+ <Resource name="optimized exec plan">
+ <![CDATA[
+TableSourceScan(table=[[default_catalog, default_database, mongo,
filter=[and(OR(=(id, 900001:BIGINT), >=(double_col, -1000.23:DECIMAL(6, 2))),
OR(<>(timestamp3_col, 2022-09-07
10:25:28.127:TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)), >=(double_col,
-1000.23:DECIMAL(6, 2))))], project=[id, timestamp3_col, int_col]]],
fields=[id, timestamp3_col, int_col])
]]>
- </Resource>
- </TestCase>
- <TestCase name="testNeverFilterPushdown">
- <Resource name="sql">
- <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo WHERE id = 900001
AND decimal_col > 1.0]]>
- </Resource>
- <Resource name="ast">
- <![CDATA[
+ </Resource>
+ </TestCase>
+ <TestCase name="testNeverFilterPushdown">
+ <Resource name="sql">
+ <![CDATA[SELECT id, timestamp3_col, int_col FROM mongo
WHERE id = 900001 AND decimal_col > 1.0]]>
+ </Resource>
+ <Resource name="ast">
+ <![CDATA[
LogicalProject(id=[$0], timestamp3_col=[$4], int_col=[$5])
+- LogicalFilter(condition=[AND(=($0, 900001), >($7, 1.0:DECIMAL(2, 1)))])
+- LogicalTableScan(table=[[default_catalog, default_database, mongo]])
]]>
- </Resource>
- <Resource name="optimized exec plan">
- <![CDATA[
+ </Resource>
+ <Resource name="optimized exec plan">
+ <![CDATA[
Calc(select=[CAST(900001 AS BIGINT) AS id, timestamp3_col, int_col],
where=[((id = 900001) AND (decimal_col > 1.0))])
+- TableSourceScan(table=[[default_catalog, default_database, mongo,
filter=[], project=[id, timestamp3_col, int_col, decimal_col]]], fields=[id,
timestamp3_col, int_col, decimal_col])
]]>
- </Resource>
- </TestCase>
+ </Resource>
+ </TestCase>
</Root>
diff --git a/pom.xml b/pom.xml
index 1ca11c3..bfc5a19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,12 +57,12 @@ under the License.
<mongodb7.version>7.0.12</mongodb7.version>
<mongodb.version>${mongodb4.version}</mongodb.version>
- <flink.version>1.20.0</flink.version>
+ <flink.version>1.20.5</flink.version>
<scala.binary.version>2.12</scala.binary.version>
<scala-library.version>2.12.7</scala-library.version>
<junit5.version>5.8.1</junit5.version>
<assertj.version>3.21.0</assertj.version>
- <testcontainers.version>1.18.3</testcontainers.version>
+ <testcontainers.version>1.21.4</testcontainers.version>
<commons-compress.version>1.26.1</commons-compress.version>
<japicmp.skip>false</japicmp.skip>