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

diqiu50 pushed a commit to branch trino-irc-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit 547fd665b2cb07c6ca7341a7ddd30291befb8e15
Merge: 9544a184db 5ccc043452
Author: yuhui <[email protected]>
AuthorDate: Fri Aug 28 02:33:16 2026 +0000

    Merge branch 'trino-err2' into trino-irc-1.3
    
    # Conflicts:
    #       
trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java

 docs/trino-connector/supported-catalog.md          |  80 ++++
 .../testsets/jdbc-mysql/00015_catalog_status.sql   |   3 +
 .../testsets/jdbc-mysql/00015_catalog_status.txt   |   3 +
 .../connector/GravitinoConnectorFactory440.java    |   6 +-
 .../connector/GravitinoSystemConnector440.java     |  12 +-
 .../connector/GravitinoConnectorFactory446.java    |   6 +-
 .../connector/GravitinoSystemConnector446.java     |  12 +-
 .../connector/GravitinoConnectorFactory452.java    |   6 +-
 .../connector/GravitinoSystemConnector452.java     |  12 +-
 .../connector/GravitinoConnectorFactory469.java    |   6 +-
 .../connector/GravitinoSystemConnector469.java     |  12 +-
 .../connector/GravitinoConnectorFactory478.java    |   6 +-
 .../connector/GravitinoSystemConnector478.java     |  12 +-
 .../trino/connector/GravitinoConnectorFactory.java |  52 ++-
 .../connector/catalog/CatalogConnectorManager.java | 410 ++++++++++++++++---
 .../trino/connector/catalog/CatalogRegister.java   |  18 +-
 .../catalog/CatalogRegistrationState.java          | 299 ++++++++++++++
 .../connector/system/GravitinoSystemConnector.java |  65 ++-
 .../system/GravitinoSystemConnectorMetadata.java   |  25 +-
 .../AlterCatalogStoredProcedure.java               |   8 +-
 .../CreateCatalogStoredProcedure.java              |   7 +-
 .../system/table/GravitinoSystemTable.java         |  35 ++
 .../system/table/GravitinoSystemTableCatalog.java  |  16 +-
 .../table/GravitinoSystemTableCatalogStatus.java   | 125 ++++++
 .../system/table/GravitinoSystemTableFactory.java  |  56 ++-
 .../table/GravitinoSystemTableLoadStatus.java      | 131 ++++++
 .../trino/connector/TestGravitinoConnector.java    |  49 ++-
 .../TestGravitinoConnectorFactoryInit.java         |  70 ++++
 .../TestGravitinoConnectorFactoryStart.java        |  18 +-
 .../catalog/TestCatalogConnectorManager.java       | 438 +++++++++++++++++++++
 .../system/TestGravitinoSystemConnector.java       |  46 +++
 .../table/TestGravitinoSystemStatusTables.java     | 164 ++++++++
 32 files changed, 2078 insertions(+), 130 deletions(-)

diff --cc 
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnectorFactoryStart.java
index cc189815df,b104b4d509..981caccac0
--- 
a/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnectorFactoryStart.java
+++ 
b/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnectorFactoryStart.java
@@@ -27,6 -26,6 +27,9 @@@ import static org.mockito.Mockito.mock
  import static org.mockito.Mockito.when;
  
  import com.google.common.collect.ImmutableMap;
++import io.trino.spi.HostAddress;
++import io.trino.spi.Node;
++import io.trino.spi.NodeManager;
  import io.trino.spi.connector.ConnectorContext;
  import java.nio.file.Path;
  import java.util.HashMap;
@@@ -68,9 -67,9 +71,16 @@@ public class TestGravitinoConnectorFact
      return config;
    }
  
++  @SuppressWarnings("deprecation")
    private static ConnectorContext mockContext() {
      ConnectorContext context = mock(ConnectorContext.class);
      when(context.getSpiVersion()).thenReturn("478");
++    Node node = mock(Node.class);
++    when(node.isCoordinator()).thenReturn(true);
++    when(node.getHostAndPort()).thenReturn(HostAddress.fromParts("127.0.0.1", 
8080));
++    NodeManager nodeManager = mock(NodeManager.class);
++    when(nodeManager.getCurrentNode()).thenReturn(node);
++    when(context.getNodeManager()).thenReturn(nodeManager);
      return context;
    }
  
@@@ -129,31 -128,16 +139,31 @@@
    }
  
    @Test
 -  public void testStartIsAttemptedOnlyOnce() {
 +  public void testFailedClientInitializationDoesNotPublishManager() {
 +    CoordinatorFactory factory = new CoordinatorFactory(null);
 +    Map<String, String> brokenDynamicConfig = dynamicConfig();
 +    brokenDynamicConfig.put("gravitino.client.authType", "oauth2");
 +
 +    assertThrows(
 +        Exception.class,
 +        () -> factory.create("broken_catalog", brokenDynamicConfig, 
mockContext()));
 +
 +    assertNull(factory.getCatalogConnectorManager());
 +    assertNotNull(factory.create("gravitino", staticConfig(), mockContext()));
 +    assertTrue(factory.isCatalogConnectorManagerStartTriggered());
 +  }
 +
 +  @Test
-   public void testStartIsAttemptedOnlyOnce() {
++  public void testFailedStartIsRetried() {
      CoordinatorFactory factory = newFactory();
  
      Map<String, String> brokenConfig = staticConfig();
      brokenConfig.put("catalog.config-dir", "/not/exists/catalog");
      assertThrows(Exception.class, () -> factory.create("gravitino", 
brokenConfig, mockContext()));
  
--    // Everything that makes start() fail is a configuration error, so the 
next create() must not
--    // try again: a second init() would open another connection and abandon 
the first one.
--    assertNotNull(factory.create("gravitino", brokenConfig, mockContext()));
++    // A failed initialization must not leave the shared manager marked as 
started. A later create
++    // retries initialization so a corrected configuration can recover 
without restarting Trino.
++    assertThrows(Exception.class, () -> factory.create("gravitino", 
brokenConfig, mockContext()));
    }
  
    @Test

Reply via email to