diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/QueryBuilder.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/QueryBuilder.java index ddca5bb260ab..50a458e29d9b 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/QueryBuilder.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/QueryBuilder.java @@ -147,7 +147,7 @@ protected String getRelation(RemoteTableName remoteTableName) protected String getProjection(List columns) { if (columns.isEmpty()) { - return "1"; + return "1 x"; } return columns.stream() .map(jdbcColumnHandle -> format("%s AS %s", jdbcColumnHandle.toSqlExpression(client::quoted), client.quoted(jdbcColumnHandle.getColumnName()))) diff --git a/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java b/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java index ed8f6a55b7ff..e60377040748 100644 --- a/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java +++ b/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java @@ -65,7 +65,6 @@ import java.util.Optional; import java.util.function.BiFunction; -import static com.google.common.base.Preconditions.checkArgument; import static com.microsoft.sqlserver.jdbc.SQLServerConnection.TRANSACTION_SNAPSHOT; import static io.airlift.slice.Slices.wrappedBuffer; import static io.trino.plugin.jdbc.JdbcErrorCode.JDBC_ERROR; @@ -348,11 +347,7 @@ private static Optional toTypeHandle(DecimalType decimalType) @Override protected Optional> limitFunction() { - return Optional.of((sql, limit) -> { - String start = "SELECT "; - checkArgument(sql.startsWith(start)); - return "SELECT TOP " + limit + " " + sql.substring(start.length()); - }); + return Optional.of((sql, limit) -> format("SELECT TOP %s * FROM (%s) o", limit, sql)); } @Override