Skip to content

Commit 10d4200

Browse files
findinpathchenjian2664
authored andcommitted
Expose rollbacks for the creation tables in StatisticsAwareJdbcClient
1 parent 8b4d17f commit 10d4200

File tree

9 files changed

+50
-1
lines changed

9 files changed

+50
-1
lines changed

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/BaseJdbcClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,8 @@ public JdbcOutputTableHandle beginCreateTable(ConnectorSession session, Connecto
851851
}
852852
}
853853

854-
protected void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
854+
@Override
855+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
855856
{
856857
dropTable(session, remoteTableName, false);
857858
}

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/CachingJdbcClient.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,12 @@ public void dropTable(ConnectorSession session, JdbcTableHandle jdbcTableHandle)
447447
invalidateTableCaches(jdbcTableHandle.asPlainTable().getSchemaTableName());
448448
}
449449

450+
@Override
451+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
452+
{
453+
delegate.rollbackDestinationTableCreation(session, remoteTableName);
454+
}
455+
450456
@Override
451457
public void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle)
452458
{

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/ForwardingJdbcClient.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,12 @@ public void dropTable(ConnectorSession session, JdbcTableHandle jdbcTableHandle)
311311
delegate().dropTable(session, jdbcTableHandle);
312312
}
313313

314+
@Override
315+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
316+
{
317+
delegate().rollbackDestinationTableCreation(session, remoteTableName);
318+
}
319+
314320
@Override
315321
public void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle)
316322
{

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,8 @@ default void finishMerge(ConnectorSession session, JdbcMergeTableHandle handle,
235235

236236
void dropTable(ConnectorSession session, JdbcTableHandle jdbcTableHandle);
237237

238+
void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName);
239+
238240
void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle);
239241

240242
boolean supportsRetries();

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/RetryingJdbcClient.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,13 @@ public void dropTable(ConnectorSession session, JdbcTableHandle jdbcTableHandle)
421421
delegate.dropTable(session, jdbcTableHandle);
422422
}
423423

424+
@Override
425+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
426+
{
427+
// no retrying as it could be not idempotent operation
428+
delegate.rollbackDestinationTableCreation(session, remoteTableName);
429+
}
430+
424431
@Override
425432
public void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle)
426433
{

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/jmx/JdbcClientStats.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public final class JdbcClientStats
6161
private final JdbcApiStats dropNotNullConstraint = new JdbcApiStats();
6262
private final JdbcApiStats renameTable = new JdbcApiStats();
6363
private final JdbcApiStats setTableProperties = new JdbcApiStats();
64+
private final JdbcApiStats rollbackDestinationTableCreation = new JdbcApiStats();
6465
private final JdbcApiStats rollbackTemporaryTableCreation = new JdbcApiStats();
6566
private final JdbcApiStats schemaExists = new JdbcApiStats();
6667
private final JdbcApiStats toTrinoType = new JdbcApiStats();
@@ -376,6 +377,13 @@ public JdbcApiStats getSetTableProperties()
376377
return setTableProperties;
377378
}
378379

380+
@Managed
381+
@Nested
382+
public JdbcApiStats getRollbackDestinationTableCreation()
383+
{
384+
return rollbackDestinationTableCreation;
385+
}
386+
379387
@Managed
380388
@Nested
381389
public JdbcApiStats getRollbackTemporaryTableCreation()

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/jmx/StatisticsAwareJdbcClient.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,12 @@ public void dropTable(ConnectorSession session, JdbcTableHandle jdbcTableHandle)
399399
stats.getDropTable().wrap(() -> delegate().dropTable(session, jdbcTableHandle));
400400
}
401401

402+
@Override
403+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
404+
{
405+
stats.getRollbackDestinationTableCreation().wrap(() -> delegate().rollbackDestinationTableCreation(session, remoteTableName));
406+
}
407+
402408
@Override
403409
public void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle)
404410
{

plugin/trino-druid/src/main/java/io/trino/plugin/druid/DruidJdbcClient.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,12 @@ public void truncateTable(ConnectorSession session, JdbcTableHandle handle)
542542
throw new TrinoException(NOT_SUPPORTED, "This connector does not support truncating tables");
543543
}
544544

545+
@Override
546+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
547+
{
548+
throw new TrinoException(NOT_SUPPORTED, "This connector does not support creating tables");
549+
}
550+
545551
@Override
546552
public void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle)
547553
{

plugin/trino-exasol/src/main/java/io/trino/plugin/exasol/ExasolClient.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import io.trino.plugin.jdbc.LongReadFunction;
3232
import io.trino.plugin.jdbc.LongWriteFunction;
3333
import io.trino.plugin.jdbc.QueryBuilder;
34+
import io.trino.plugin.jdbc.RemoteTableName;
3435
import io.trino.plugin.jdbc.SliceReadFunction;
3536
import io.trino.plugin.jdbc.SliceWriteFunction;
3637
import io.trino.plugin.jdbc.WriteFunction;
@@ -159,6 +160,12 @@ public void dropTable(ConnectorSession session, JdbcTableHandle handle)
159160
throw new TrinoException(NOT_SUPPORTED, "This connector does not support dropping tables");
160161
}
161162

163+
@Override
164+
public void rollbackDestinationTableCreation(ConnectorSession session, RemoteTableName remoteTableName)
165+
{
166+
throw new TrinoException(NOT_SUPPORTED, "This connector does not support creating tables");
167+
}
168+
162169
@Override
163170
public void rollbackTemporaryTableCreation(ConnectorSession session, JdbcOutputTableHandle handle)
164171
{

0 commit comments

Comments
 (0)