Skip to content

Commit fd05b0a

Browse files
committed
Retry listing operations on deadlock in SQL Server
1 parent d2d4d34 commit fd05b0a

File tree

2 files changed

+21
-24
lines changed

2 files changed

+21
-24
lines changed

plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777
import io.trino.spi.connector.JoinCondition;
7878
import io.trino.spi.connector.JoinStatistics;
7979
import io.trino.spi.connector.JoinType;
80+
import io.trino.spi.connector.RelationColumnsMetadata;
81+
import io.trino.spi.connector.RelationCommentMetadata;
8082
import io.trino.spi.connector.SchemaTableName;
8183
import io.trino.spi.connector.TableNotFoundException;
8284
import io.trino.spi.expression.ConnectorExpression;
@@ -121,6 +123,7 @@
121123
import java.time.format.DateTimeFormatterBuilder;
122124
import java.util.Collection;
123125
import java.util.HashMap;
126+
import java.util.Iterator;
124127
import java.util.List;
125128
import java.util.Map;
126129
import java.util.Optional;
@@ -428,6 +431,24 @@ protected boolean isTableLockNeeded(ConnectorSession session)
428431
return isBulkCopyForWrite(session) && isBulkCopyForWriteLockDestinationTable(session);
429432
}
430433

434+
@Override
435+
public List<RelationCommentMetadata> getAllTableComments(ConnectorSession session, Optional<String> schema)
436+
{
437+
return retryOnDeadlock(() -> super.getAllTableComments(session, schema), "error when getting all table comments for '%s'".formatted(schema));
438+
}
439+
440+
@Override
441+
public Iterator<RelationColumnsMetadata> getAllTableColumns(ConnectorSession session, Optional<String> schema)
442+
{
443+
return retryOnDeadlock(() -> super.getAllTableColumns(session, schema), "error when getting all table columns for '%s'".formatted(schema));
444+
}
445+
446+
@Override
447+
public List<JdbcColumnHandle> getColumns(ConnectorSession session, SchemaTableName schemaTableName, RemoteTableName remoteTableName)
448+
{
449+
return retryOnDeadlock(() -> super.getColumns(session, schemaTableName, remoteTableName), "error when getting columns for table '%s'".formatted(remoteTableName));
450+
}
451+
431452
@Override
432453
protected void verifyTableName(DatabaseMetaData databaseMetadata, String tableName)
433454
throws SQLException

plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -276,28 +276,4 @@ private List<String> testTableNameTestData()
276276
.add("close]bracket")
277277
.build();
278278
}
279-
280-
@Test
281-
@Override
282-
public void testSelectInformationSchemaTables()
283-
{
284-
// Isolate this test to avoid problem described in https://github.com/trinodb/trino/issues/10846
285-
executeExclusively(super::testSelectInformationSchemaTables);
286-
}
287-
288-
@Test
289-
@Override
290-
public void testSelectInformationSchemaColumns()
291-
{
292-
// Isolate this test to avoid problem described in https://github.com/trinodb/trino/issues/10846
293-
executeExclusively(super::testSelectInformationSchemaColumns);
294-
}
295-
296-
@Test
297-
@Override
298-
public void testBulkColumnListingOptions()
299-
{
300-
// Isolate this test to avoid problem described in https://github.com/trinodb/trino/issues/10846
301-
executeExclusively(super::testBulkColumnListingOptions);
302-
}
303279
}

0 commit comments

Comments
 (0)