This is an automated email from the ASF dual-hosted git repository.

MartijnVisser pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git


The following commit(s) were added to refs/heads/main by this push:
     new cfd909a8 [FLINK-40733][connector-jdbc] Re-enable the Trino tests
cfd909a8 is described below

commit cfd909a81516344f54c9d641f087cb500db7ad92
Author: Purushottam Sinha <[email protected]>
AuthorDate: Tue Oct 27 20:07:42 2026 +0530

    [FLINK-40733][connector-jdbc] Re-enable the Trino tests
    
    The Trino container did not start on Linux CI because its catalog file was
    a 0600 temp file bind mounted into a container that reads it as uid 1000.
    Copy the file into the container instead.
    
    The primary key tests create their tables directly in the Postgres database
    behind Trino, so they only needed the Postgres driver on the test classpath
    and dropTable() instead of deleteTable() for cleanup.
    
    Generated-by: Claude Code (Claude Opus 5.5)
---
 flink-connector-jdbc-trino/pom.xml                  |  7 +++++++
 .../trino/database/dialect/TrinoDialectTest.java    |  3 ---
 .../trino/table/TrinoDynamicTableSinkITCase.java    | 21 +++++++--------------
 .../trino/table/TrinoDynamicTableSourceITCase.java  |  3 ---
 .../jdbc/trino/testutils/TrinoDatabase.java         | 16 ++++++----------
 5 files changed, 20 insertions(+), 30 deletions(-)

diff --git a/flink-connector-jdbc-trino/pom.xml 
b/flink-connector-jdbc-trino/pom.xml
index 67650ecb..33f8c135 100644
--- a/flink-connector-jdbc-trino/pom.xml
+++ b/flink-connector-jdbc-trino/pom.xml
@@ -117,6 +117,13 @@ under the License.
             <artifactId>testcontainers-postgresql</artifactId>
             <scope>test</scope>
         </dependency>
+        <!-- The sink tests create tables with a primary key in the Postgres 
database behind Trino -->
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <version>${postgres.version}</version>
+            <scope>test</scope>
+        </dependency>
 
     </dependencies>
 
diff --git 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/database/dialect/TrinoDialectTest.java
 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/database/dialect/TrinoDialectTest.java
index 336c22c4..95bbca27 100644
--- 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/database/dialect/TrinoDialectTest.java
+++ 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/database/dialect/TrinoDialectTest.java
@@ -21,13 +21,10 @@ package 
org.apache.flink.connector.jdbc.trino.database.dialect;
 import org.apache.flink.connector.jdbc.core.database.dialect.JdbcDialectTest;
 import org.apache.flink.connector.jdbc.trino.TrinoTestBase;
 
-import org.junit.jupiter.api.Disabled;
-
 import java.util.Arrays;
 import java.util.List;
 
 /** The Oracle params for {@link JdbcDialectTest}. */
-@Disabled("Not working on jenkins as container not start.")
 class TrinoDialectTest extends JdbcDialectTest implements TrinoTestBase {
 
     @Override
diff --git 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSinkITCase.java
 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSinkITCase.java
index bc552811..ff03332c 100644
--- 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSinkITCase.java
+++ 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSinkITCase.java
@@ -24,7 +24,6 @@ import org.apache.flink.connector.jdbc.testutils.TableManaged;
 import org.apache.flink.connector.jdbc.trino.TrinoTestBase;
 import org.apache.flink.connector.jdbc.trino.database.dialect.TrinoDialect;
 
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import java.sql.Connection;
@@ -32,19 +31,16 @@ import java.util.Arrays;
 import java.util.List;
 
 /** The Table Sink ITCase for {@link TrinoDialect}. */
-@Disabled("Not working on jenkins as container not start.")
 class TrinoDynamicTableSinkITCase extends JdbcDynamicTableSinkITCase 
implements TrinoTestBase {
 
+    // Trino cannot declare a primary key, so the tests using 
upsertOutputTable or
+    // userOutputTable create them in the Postgres database behind Trino.
     @Override
     public List<TableManaged> getManagedTables() {
         return Arrays.asList(
-                // upsertOutputTable,
-                appendOutputTable, batchOutputTable, realOutputTable, 
checkpointOutputTable
-                // userOutputTable
-                );
+                appendOutputTable, batchOutputTable, realOutputTable, 
checkpointOutputTable);
     }
 
-    @Disabled("Trino dont allow create tables with PK")
     @Test
     @Override
     protected void testUpsert() throws Exception {
@@ -54,12 +50,11 @@ class TrinoDynamicTableSinkITCase extends 
JdbcDynamicTableSinkITCase implements
                 upsertOutputTable.createTable(conn);
                 super.testUpsert();
             } finally {
-                upsertOutputTable.deleteTable(conn);
+                upsertOutputTable.dropTable(conn);
             }
         }
     }
 
-    @Disabled("Trino dont allow create tables with PK")
     @Test
     @Override
     protected void testReadingFromChangelogSource() throws Exception {
@@ -68,12 +63,11 @@ class TrinoDynamicTableSinkITCase extends 
JdbcDynamicTableSinkITCase implements
                 userOutputTable.createTable(conn);
                 super.testReadingFromChangelogSource();
             } finally {
-                userOutputTable.deleteTable(conn);
+                userOutputTable.dropTable(conn);
             }
         }
     }
 
-    @Disabled("Trino dont allow create tables with PK")
     @Test
     @Override
     protected void testChangelogReducedWithinOneBuffer() throws Exception {
@@ -82,12 +76,11 @@ class TrinoDynamicTableSinkITCase extends 
JdbcDynamicTableSinkITCase implements
                 userOutputTable.createTable(conn);
                 super.testChangelogReducedWithinOneBuffer();
             } finally {
-                userOutputTable.deleteTable(conn);
+                userOutputTable.dropTable(conn);
             }
         }
     }
 
-    @Disabled("Trino dont allow create tables with PK")
     @Test
     @Override
     protected void testChangelogWithSinkParallelismAboveOne() throws Exception 
{
@@ -96,7 +89,7 @@ class TrinoDynamicTableSinkITCase extends 
JdbcDynamicTableSinkITCase implements
                 userOutputTable.createTable(conn);
                 super.testChangelogWithSinkParallelismAboveOne();
             } finally {
-                userOutputTable.deleteTable(conn);
+                userOutputTable.dropTable(conn);
             }
         }
     }
diff --git 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSourceITCase.java
 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSourceITCase.java
index 3c7df607..d94bedc4 100644
--- 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSourceITCase.java
+++ 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/table/TrinoDynamicTableSourceITCase.java
@@ -25,8 +25,6 @@ import 
org.apache.flink.connector.jdbc.trino.database.dialect.TrinoDialect;
 import org.apache.flink.table.api.DataTypes;
 import org.apache.flink.types.Row;
 
-import org.junit.jupiter.api.Disabled;
-
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -40,7 +38,6 @@ import static 
org.apache.flink.connector.jdbc.testutils.tables.TableBuilder.fiel
 import static 
org.apache.flink.connector.jdbc.testutils.tables.TableBuilder.tableRow;
 
 /** The Table Source ITCase for {@link TrinoDialect}. */
-@Disabled("Not working on jenkins as container not start.")
 class TrinoDynamicTableSourceITCase extends JdbcDynamicTableSourceITCase 
implements TrinoTestBase {
 
     @Override
diff --git 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/testutils/TrinoDatabase.java
 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/testutils/TrinoDatabase.java
index f56d3d48..962e926b 100644
--- 
a/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/testutils/TrinoDatabase.java
+++ 
b/flink-connector-jdbc-trino/src/test/java/org/apache/flink/connector/jdbc/trino/testutils/TrinoDatabase.java
@@ -26,15 +26,12 @@ import 
org.apache.flink.connector.jdbc.testutils.DatabaseResource;
 import org.apache.flink.connector.jdbc.testutils.resources.DockerResource;
 import org.apache.flink.util.FlinkRuntimeException;
 
-import org.testcontainers.containers.BindMode;
 import org.testcontainers.containers.Network;
 import org.testcontainers.containers.PostgreSQLContainer;
 import org.testcontainers.containers.TrinoContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.images.builder.Transferable;
 
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
 import java.util.Arrays;
 
 /** A Trino database for testing. */
@@ -90,7 +87,6 @@ public class TrinoDatabase extends DatabaseExtension 
implements TrinoImages, Pos
                 try {
                     CONTAINER_DB.start();
 
-                    Path tempFile = Files.createTempFile(null, null);
                     String postgresContent =
                             "connector.name=postgresql\n"
                                     + String.format(
@@ -100,14 +96,14 @@ public class TrinoDatabase extends DatabaseExtension 
implements TrinoImages, Pos
                                             "connection-user=%s\n", 
CONTAINER_DB.getUsername())
                                     + String.format(
                                             "connection-password=%s\n", 
CONTAINER_DB.getPassword());
-                    Files.write(tempFile, 
postgresContent.getBytes(StandardCharsets.UTF_8));
 
+                    // Copied rather than bind mounted: Trino runs as uid 1000 
and cannot read a
+                    // 0600 temp file owned by another build user on Linux.
                     CONTAINER
                             .withDatabaseName("postgres/public")
-                            .withFileSystemBind(
-                                    tempFile.toFile().getAbsolutePath(),
-                                    "/etc/trino/catalog/postgres.properties",
-                                    BindMode.READ_WRITE)
+                            .withCopyToContainer(
+                                    Transferable.of(postgresContent),
+                                    "/etc/trino/catalog/postgres.properties")
                             
.waitingFor(Wait.forHttp("/ui/login.html").forStatusCode(200));
                     CONTAINER.start();
                 } catch (Exception e) {

Reply via email to