diff --git a/presto-benchmark-driver/src/main/java/com/facebook/presto/benchmark/driver/BenchmarkDriverOptions.java b/presto-benchmark-driver/src/main/java/com/facebook/presto/benchmark/driver/BenchmarkDriverOptions.java index c54d4b0a030f8..1aa867549324a 100644 --- a/presto-benchmark-driver/src/main/java/com/facebook/presto/benchmark/driver/BenchmarkDriverOptions.java +++ b/presto-benchmark-driver/src/main/java/com/facebook/presto/benchmark/driver/BenchmarkDriverOptions.java @@ -85,6 +85,9 @@ public class BenchmarkDriverOptions @Option(name = "--client-request-timeout", title = "client request timeout", description = "Client request timeout (default: 2m)") public Duration clientRequestTimeout = new Duration(2, MINUTES); + @Option(name = "--disable-compression", title = "disable response compression", description = "Disable compression of query results") + public boolean disableCompression; + public ClientSession getClientSession() { return new ClientSession( @@ -104,7 +107,8 @@ public ClientSession getClientSession() ImmutableMap.of(), ImmutableMap.of(), null, - clientRequestTimeout); + clientRequestTimeout, + disableCompression); } private static URI parseServer(String server) diff --git a/presto-cli/src/main/java/com/facebook/presto/cli/ClientOptions.java b/presto-cli/src/main/java/com/facebook/presto/cli/ClientOptions.java index 0f3d265dc8f78..490fdee0bffb2 100644 --- a/presto-cli/src/main/java/com/facebook/presto/cli/ClientOptions.java +++ b/presto-cli/src/main/java/com/facebook/presto/cli/ClientOptions.java @@ -140,6 +140,9 @@ public class ClientOptions @Option(name = "--ignore-errors", title = "ignore errors", description = "Continue processing in batch mode when an error occurs (default is to exit immediately)") public boolean ignoreErrors; + @Option(name = "--disable-compression", title = "disable response compression", description = "Disable compression of query results") + public boolean disableCompression; + public enum OutputFormat { ALIGNED, @@ -170,7 +173,8 @@ public ClientSession toClientSession() emptyMap(), toExtraCredentials(extraCredentials), null, - clientRequestTimeout); + clientRequestTimeout, + disableCompression); } public static URI parseServer(String server) diff --git a/presto-cli/src/test/java/com/facebook/presto/cli/TestClientOptions.java b/presto-cli/src/test/java/com/facebook/presto/cli/TestClientOptions.java index 08d020e66a150..979d24fd52a08 100644 --- a/presto-cli/src/test/java/com/facebook/presto/cli/TestClientOptions.java +++ b/presto-cli/src/test/java/com/facebook/presto/cli/TestClientOptions.java @@ -23,6 +23,7 @@ import static io.airlift.airline.SingleCommand.singleCommand; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; public class TestClientOptions { @@ -125,6 +126,14 @@ public void testSessionProperties() assertEquals(new ClientSessionProperty("foo="), new ClientSessionProperty(Optional.empty(), "foo", "")); } + @Test + public void testDisableCompression() + { + Console console = singleCommand(Console.class).parse("--disable-compression"); + assertTrue(console.clientOptions.disableCompression); + assertTrue(console.clientOptions.toClientSession().isCompressionDisabled()); + } + @Test(expectedExceptions = IllegalArgumentException.class) public void testThreePartPropertyName() { diff --git a/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java b/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java index 562214edcc700..1333a90f538ab 100644 --- a/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java +++ b/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java @@ -99,7 +99,8 @@ public void testCookie() ImmutableMap.of(), ImmutableMap.of(), null, - new Duration(2, MINUTES))); + new Duration(2, MINUTES), + true)); try (Query query = queryRunner.startQuery("first query will introduce a cookie")) { query.renderOutput(new PrintStream(nullOutputStream()), CSV, false); } diff --git a/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java b/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java index ed9ce5619556c..d96ec6492c4d5 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java +++ b/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java @@ -51,6 +51,7 @@ public class ClientSession private final Map extraCredentials; private final String transactionId; private final Duration clientRequestTimeout; + private final boolean compressionDisabled; public static Builder builder(ClientSession clientSession) { @@ -81,7 +82,8 @@ public ClientSession( Map roles, Map extraCredentials, String transactionId, - Duration clientRequestTimeout) + Duration clientRequestTimeout, + boolean compressionDisabled) { this.server = requireNonNull(server, "server is null"); this.user = user; @@ -100,6 +102,7 @@ public ClientSession( this.roles = ImmutableMap.copyOf(requireNonNull(roles, "roles is null")); this.extraCredentials = ImmutableMap.copyOf(requireNonNull(extraCredentials, "extraCredentials is null")); this.clientRequestTimeout = clientRequestTimeout; + this.compressionDisabled = compressionDisabled; for (String clientTag : clientTags) { checkArgument(!clientTag.contains(","), "client tag cannot contain ','"); @@ -223,6 +226,11 @@ public Duration getClientRequestTimeout() return clientRequestTimeout; } + public boolean isCompressionDisabled() + { + return compressionDisabled; + } + @Override public String toString() { @@ -261,6 +269,7 @@ public static final class Builder private Map credentials; private String transactionId; private Duration clientRequestTimeout; + private boolean compressionDisabled; private Builder(ClientSession clientSession) { @@ -282,6 +291,7 @@ private Builder(ClientSession clientSession) credentials = clientSession.getExtraCredentials(); transactionId = clientSession.getTransactionId(); clientRequestTimeout = clientSession.getClientRequestTimeout(); + compressionDisabled = clientSession.isCompressionDisabled(); } public Builder withCatalog(String catalog) @@ -332,6 +342,12 @@ public Builder withoutTransactionId() return this; } + public Builder withCompressionDisabled(boolean compressionDisabled) + { + this.compressionDisabled = compressionDisabled; + return this; + } + public ClientSession build() { return new ClientSession( @@ -351,7 +367,8 @@ public ClientSession build() roles, credentials, transactionId, - clientRequestTimeout); + clientRequestTimeout, + compressionDisabled); } } } diff --git a/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java b/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java index a21a3f01c6fe3..e17e41393c4f9 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java +++ b/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java @@ -72,6 +72,7 @@ import static com.facebook.presto.client.PrestoHeaders.PRESTO_USER; import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.Preconditions.checkState; +import static com.google.common.net.HttpHeaders.ACCEPT_ENCODING; import static com.google.common.net.HttpHeaders.USER_AGENT; import static java.lang.String.format; import static java.net.HttpURLConnection.HTTP_OK; @@ -107,6 +108,7 @@ class StatementClientV1 private final TimeZoneKey timeZone; private final Duration requestTimeoutNanos; private final String user; + private final boolean compressionDisabled; private final AtomicReference state = new AtomicReference<>(State.RUNNING); @@ -121,6 +123,7 @@ public StatementClientV1(OkHttpClient httpClient, ClientSession session, String this.query = query; this.requestTimeoutNanos = session.getClientRequestTimeout(); this.user = session.getUser(); + this.compressionDisabled = session.isCompressionDisabled(); Request request = buildQueryRequest(session, query); @@ -313,10 +316,14 @@ public boolean isClearTransactionId() private Request.Builder prepareRequest(HttpUrl url) { - return new Request.Builder() + Request.Builder builder = new Request.Builder() .addHeader(PRESTO_USER, user) .addHeader(USER_AGENT, USER_AGENT_VALUE) .url(url); + if (compressionDisabled) { + builder.header(ACCEPT_ENCODING, "identity"); + } + return builder; } @Override diff --git a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ConnectionProperties.java b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ConnectionProperties.java index 862f89a3afdc5..18e863dba8762 100644 --- a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ConnectionProperties.java +++ b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ConnectionProperties.java @@ -37,6 +37,7 @@ final class ConnectionProperties public static final ConnectionProperty SOCKS_PROXY = new SocksProxy(); public static final ConnectionProperty HTTP_PROXY = new HttpProxy(); public static final ConnectionProperty APPLICATION_NAME_PREFIX = new ApplicationNamePrefix(); + public static final ConnectionProperty DISABLE_COMPRESSION = new DisableCompression(); public static final ConnectionProperty SSL = new Ssl(); public static final ConnectionProperty SSL_KEY_STORE_PATH = new SslKeyStorePath(); public static final ConnectionProperty SSL_KEY_STORE_PASSWORD = new SslKeyStorePassword(); @@ -58,6 +59,7 @@ final class ConnectionProperties .add(SOCKS_PROXY) .add(HTTP_PROXY) .add(APPLICATION_NAME_PREFIX) + .add(DISABLE_COMPRESSION) .add(SSL) .add(SSL_KEY_STORE_PATH) .add(SSL_KEY_STORE_PASSWORD) @@ -155,6 +157,15 @@ public ApplicationNamePrefix() } } + private static class DisableCompression + extends AbstractConnectionProperty + { + public DisableCompression() + { + super("disableCompression", NOT_REQUIRED, ALLOWED, BOOLEAN_CONVERTER); + } + } + private static class Ssl extends AbstractConnectionProperty { diff --git a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoConnection.java b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoConnection.java index e238ef52924be..9463d9182d042 100644 --- a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoConnection.java +++ b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoConnection.java @@ -84,6 +84,7 @@ public class PrestoConnection private final URI jdbcUri; private final URI httpUri; private final String user; + private final boolean compressionDisabled; private final Map extraCredentials; private final Map sessionProperties; private final Optional applicationNamePrefix; @@ -104,6 +105,7 @@ public class PrestoConnection this.catalog.set(uri.getCatalog()); this.user = uri.getUser(); this.applicationNamePrefix = uri.getApplicationNamePrefix(); + this.compressionDisabled = uri.isCompressionDisabled(); this.extraCredentials = uri.getExtraCredentials(); this.sessionProperties = new ConcurrentHashMap<>(uri.getSessionProperties()); @@ -709,7 +711,8 @@ else if (applicationName != null) { ImmutableMap.copyOf(roles), extraCredentials, transactionId.get(), - timeout); + timeout, + compressionDisabled); return queryExecutor.startQuery(session, sql); } diff --git a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java index 1e8f318d213d7..11d97e4b8eb11 100644 --- a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java +++ b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java @@ -44,6 +44,7 @@ import static com.facebook.presto.client.OkHttpUtil.tokenAuth; import static com.facebook.presto.jdbc.ConnectionProperties.ACCESS_TOKEN; import static com.facebook.presto.jdbc.ConnectionProperties.APPLICATION_NAME_PREFIX; +import static com.facebook.presto.jdbc.ConnectionProperties.DISABLE_COMPRESSION; import static com.facebook.presto.jdbc.ConnectionProperties.EXTRA_CREDENTIALS; import static com.facebook.presto.jdbc.ConnectionProperties.HTTP_PROXY; import static com.facebook.presto.jdbc.ConnectionProperties.KERBEROS_CONFIG_PATH; @@ -155,6 +156,12 @@ public Map getSessionProperties() return SESSION_PROPERTIES.getValue(properties).orElse(ImmutableMap.of()); } + public boolean isCompressionDisabled() + throws SQLException + { + return DISABLE_COMPRESSION.getValue(properties).orElse(false); + } + public void setupClient(OkHttpClient.Builder builder) throws SQLException { diff --git a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriverUri.java b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriverUri.java index 2559d8b0aee0d..3cd1bb1c6dac4 100644 --- a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriverUri.java +++ b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriverUri.java @@ -22,6 +22,7 @@ import java.sql.SQLException; import java.util.Properties; +import static com.facebook.presto.jdbc.ConnectionProperties.DISABLE_COMPRESSION; import static com.facebook.presto.jdbc.ConnectionProperties.EXTRA_CREDENTIALS; import static com.facebook.presto.jdbc.ConnectionProperties.HTTP_PROXY; import static com.facebook.presto.jdbc.ConnectionProperties.SESSION_PROPERTIES; @@ -32,6 +33,7 @@ import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; public class TestPrestoDriverUri @@ -164,6 +166,15 @@ void testUriWithHttpProxy() assertEquals(properties.getProperty(HTTP_PROXY.getKey()), "localhost:5678"); } + @Test + public void testUriWithoutCompression() + throws SQLException + { + PrestoDriverUri parameters = createDriverUri("presto://localhost:8080/blackhole?disableCompression=true"); + assertTrue(parameters.isCompressionDisabled()); + assertEquals(parameters.getProperties().getProperty(DISABLE_COMPRESSION.getKey()), "true"); + } + @Test public void testUriWithoutSsl() throws SQLException diff --git a/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java b/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java index c6bf957cf069d..835c5c617085d 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java @@ -28,6 +28,7 @@ public class ServerConfig private boolean includeExceptionInResponse = true; private Duration gracePeriod = new Duration(2, MINUTES); private boolean enhancedErrorReporting = true; + private boolean queryResultsCompressionEnabled = true; public boolean isCoordinator() { @@ -106,4 +107,16 @@ public ServerConfig setEnhancedErrorReporting(boolean value) this.enhancedErrorReporting = value; return this; } + + public boolean isQueryResultsCompressionEnabled() + { + return queryResultsCompressionEnabled; + } + + @Config("query-results.compression-enabled") + public ServerConfig setQueryResultsCompressionEnabled(boolean queryResultsCompressionEnabled) + { + this.queryResultsCompressionEnabled = queryResultsCompressionEnabled; + return this; + } } diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java index 57c111f9e1f1d..dd5b84aa5390b 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java @@ -15,6 +15,7 @@ import com.facebook.airlift.concurrent.BoundedExecutor; import com.facebook.presto.server.ForStatementResource; +import com.facebook.presto.server.ServerConfig; import com.facebook.presto.spi.QueryId; import com.google.common.collect.Ordering; import com.google.common.util.concurrent.ListenableFuture; @@ -59,14 +60,17 @@ public class ExecutingStatementResource private final BoundedExecutor responseExecutor; private final LocalQueryProvider queryProvider; + private final boolean compressionEnabled; @Inject public ExecutingStatementResource( @ForStatementResource BoundedExecutor responseExecutor, - LocalQueryProvider queryProvider) + LocalQueryProvider queryProvider, + ServerConfig serverConfig) { this.responseExecutor = requireNonNull(responseExecutor, "responseExecutor is null"); this.queryProvider = requireNonNull(queryProvider, "queryProvider is null"); + this.compressionEnabled = requireNonNull(serverConfig, "serverConfig is null").isQueryResultsCompressionEnabled(); } @GET @@ -96,7 +100,7 @@ public void getQueryResults( Query query = queryProvider.getQuery(queryId, slug); ListenableFuture queryResultsFuture = transform( query.waitForResults(token, uriInfo, proto, wait, targetResultSize), - results -> toResponse(query, results), + results -> toResponse(query, results, compressionEnabled), directExecutor()); bindAsyncResponse(asyncResponse, queryResultsFuture, responseExecutor); } diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/QueryResourceUtil.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/QueryResourceUtil.java index 5e8a7002fb99e..b504d936d5b06 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/QueryResourceUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/QueryResourceUtil.java @@ -49,7 +49,7 @@ public final class QueryResourceUtil { private QueryResourceUtil() {} - public static Response toResponse(Query query, QueryResults queryResults) + public static Response toResponse(Query query, QueryResults queryResults, boolean compressionEnabled) { Response.ResponseBuilder response = Response.ok(queryResults); @@ -90,6 +90,10 @@ public static Response toResponse(Query query, QueryResults queryResults) response.header(PRESTO_CLEAR_TRANSACTION_ID, true); } + if (!compressionEnabled) { + response.encoding("identity"); + } + return response.build(); } diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/QueuedStatementResource.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/QueuedStatementResource.java index cf8d4be544655..fcd5927e4a351 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/QueuedStatementResource.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/QueuedStatementResource.java @@ -23,6 +23,7 @@ import com.facebook.presto.execution.ExecutionFailureInfo; import com.facebook.presto.execution.QueryState; import com.facebook.presto.server.HttpRequestSessionContext; +import com.facebook.presto.server.ServerConfig; import com.facebook.presto.server.SessionContext; import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.QueryId; @@ -110,6 +111,7 @@ public class QueuedStatementResource private final ConcurrentMap queries = new ConcurrentHashMap<>(); private final ScheduledExecutorService queryPurger = newSingleThreadScheduledExecutor(threadsNamed("dispatch-query-purger")); + private final boolean compressionEnabled; private final SqlParserOptions sqlParserOptions; @@ -118,11 +120,13 @@ public QueuedStatementResource( DispatchManager dispatchManager, DispatchExecutor executor, LocalQueryProvider queryResultsProvider, - SqlParserOptions sqlParserOptions) + SqlParserOptions sqlParserOptions, + ServerConfig serverConfig) { this.dispatchManager = requireNonNull(dispatchManager, "dispatchManager is null"); this.queryResultsProvider = queryResultsProvider; this.sqlParserOptions = requireNonNull(sqlParserOptions, "sqlParserOptions is null"); + this.compressionEnabled = requireNonNull(serverConfig, "serverConfig is null").isQueryResultsCompressionEnabled(); this.responseExecutor = requireNonNull(executor, "responseExecutor is null").getExecutor(); this.timeoutExecutor = requireNonNull(executor, "timeoutExecutor is null").getScheduledExecutor(); @@ -174,7 +178,7 @@ public Response postStatement( Query query = new Query(statement, sessionContext, dispatchManager, queryResultsProvider, timeoutExecutor); queries.put(query.getQueryId(), query); - return Response.ok(query.getInitialQueryResults(uriInfo, xForwardedProto)).build(); + return withCompressionConfiguration(Response.ok(query.getInitialQueryResults(uriInfo, xForwardedProto)), compressionEnabled).build(); } @GET @@ -201,7 +205,7 @@ public void getStatus( // when state changes, fetch the next result ListenableFuture queryResultsFuture = transformAsync( futureStateChange, - ignored -> query.toResponse(token, uriInfo, xForwardedProto, WAIT_ORDERING.min(MAX_WAIT_TIME, maxWait)), + ignored -> query.toResponse(token, uriInfo, xForwardedProto, WAIT_ORDERING.min(MAX_WAIT_TIME, maxWait), compressionEnabled), responseExecutor); bindAsyncResponse(asyncResponse, queryResultsFuture, responseExecutor); } @@ -291,6 +295,14 @@ private static WebApplicationException badRequest(Status status, String message) .build()); } + private static Response.ResponseBuilder withCompressionConfiguration(Response.ResponseBuilder builder, boolean compressionEnabled) + { + if (!compressionEnabled) { + builder.encoding("identity"); + } + return builder; + } + private static final class Query { private final String query; @@ -362,7 +374,7 @@ public synchronized QueryResults getInitialQueryResults(UriInfo uriInfo, String DispatchInfo.queued(NO_DURATION, NO_DURATION)); } - public ListenableFuture toResponse(long token, UriInfo uriInfo, String xForwardedProto, Duration maxWait) + public ListenableFuture toResponse(long token, UriInfo uriInfo, String xForwardedProto, Duration maxWait, boolean compressionEnabled) { long lastToken = this.lastToken.get(); // token should be the last token or the next token @@ -380,7 +392,7 @@ public ListenableFuture toResponse(long token, UriInfo uriInfo, String uriInfo, xForwardedProto, DispatchInfo.queued(NO_DURATION, NO_DURATION)); - return immediateFuture(Response.ok(queryResults).build()); + return immediateFuture(withCompressionConfiguration(Response.ok(queryResults), compressionEnabled).build()); } } @@ -393,7 +405,7 @@ public ListenableFuture toResponse(long token, UriInfo uriInfo, String } if (!waitForDispatched().isDone()) { - return immediateFuture(Response.ok(createQueryResults(token + 1, uriInfo, xForwardedProto, dispatchInfo.get())).build()); + return immediateFuture(withCompressionConfiguration(Response.ok(createQueryResults(token + 1, uriInfo, xForwardedProto, dispatchInfo.get())), compressionEnabled).build()); } com.facebook.presto.server.protocol.Query query; @@ -401,13 +413,13 @@ public ListenableFuture toResponse(long token, UriInfo uriInfo, String query = queryProvider.getQuery(queryId, slug); } catch (WebApplicationException e) { - return immediateFuture(Response.ok(createQueryResults(token + 1, uriInfo, xForwardedProto, dispatchInfo.get())).build()); + return immediateFuture(withCompressionConfiguration(Response.ok(createQueryResults(token + 1, uriInfo, xForwardedProto, dispatchInfo.get())), compressionEnabled).build()); } // If this future completes successfully, the next URI will redirect to the executing statement endpoint. // Hence it is safe to hardcode the token to be 0. return transform( query.waitForResults(0, uriInfo, getScheme(xForwardedProto, uriInfo), maxWait, TARGET_RESULT_SIZE), - results -> QueryResourceUtil.toResponse(query, results), + results -> QueryResourceUtil.toResponse(query, results, compressionEnabled), directExecutor()); } diff --git a/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java b/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java index d2cd18da833da..a829e50239124 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java @@ -35,7 +35,8 @@ public void testDefaults() .setDataSources(null) .setIncludeExceptionInResponse(true) .setGracePeriod(new Duration(2, MINUTES)) - .setEnhancedErrorReporting(true)); + .setEnhancedErrorReporting(true) + .setQueryResultsCompressionEnabled(true)); } @Test @@ -48,6 +49,7 @@ public void testExplicitPropertyMappings() .put("http.include-exception-in-response", "false") .put("shutdown.grace-period", "5m") .put("sql.parser.enhanced-error-reporting", "false") + .put("query-results.compression-enabled", "false") .build(); ServerConfig expected = new ServerConfig() @@ -56,7 +58,8 @@ public void testExplicitPropertyMappings() .setDataSources("jmx") .setIncludeExceptionInResponse(false) .setGracePeriod(new Duration(5, MINUTES)) - .setEnhancedErrorReporting(false); + .setEnhancedErrorReporting(false) + .setQueryResultsCompressionEnabled(false); assertFullMapping(properties, expected); } diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java index 7e9e64b6c12cd..a8c32c8a379b4 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java @@ -155,7 +155,8 @@ private static ClientSession toClientSession(Session session, URI server, Durati session.getIdentity().getRoles(), session.getIdentity().getExtraCredentials(), session.getTransactionId().map(Object::toString).orElse(null), - clientRequestTimeout); + clientRequestTimeout, + true); } public List listTables(Session session, String catalog, String schema) diff --git a/presto-tests/src/test/java/com/facebook/presto/execution/TestFinalQueryInfo.java b/presto-tests/src/test/java/com/facebook/presto/execution/TestFinalQueryInfo.java index 9f364201f6065..63ef23e37088f 100644 --- a/presto-tests/src/test/java/com/facebook/presto/execution/TestFinalQueryInfo.java +++ b/presto-tests/src/test/java/com/facebook/presto/execution/TestFinalQueryInfo.java @@ -79,7 +79,8 @@ private static QueryId startQuery(String sql, DistributedQueryRunner queryRunner ImmutableMap.of(), ImmutableMap.of(), null, - new Duration(2, MINUTES)); + new Duration(2, MINUTES), + true); // start query StatementClient client = newStatementClient(httpClient, clientSession, sql);