From 950a56c23c21b2b7d4ffaad5d04a93fe9da13bca Mon Sep 17 00:00:00 2001 From: David Phillips Date: Thu, 27 Dec 2018 17:02:31 -0800 Subject: [PATCH] Remove SPI as dependency for JDBC driver --- presto-cli/pom.xml | 7 --- .../io/prestosql/cli/TestQueryRunner.java | 4 +- presto-client/pom.xml | 11 +++-- .../prestosql/client/ClientStandardTypes.java | 48 +++++++++++++++++++ .../prestosql/client/ClientTypeSignature.java | 6 +-- .../io/prestosql/client/FixJsonDataUtils.java | 48 +++++++++---------- 6 files changed, 83 insertions(+), 41 deletions(-) create mode 100644 presto-client/src/main/java/io/prestosql/client/ClientStandardTypes.java diff --git a/presto-cli/pom.xml b/presto-cli/pom.xml index f81de5f9c744e..80e99a337bcba 100644 --- a/presto-cli/pom.xml +++ b/presto-cli/pom.xml @@ -88,13 +88,6 @@ okhttp - - - io.prestosql - presto-spi - runtime - - org.testng diff --git a/presto-cli/src/test/java/io/prestosql/cli/TestQueryRunner.java b/presto-cli/src/test/java/io/prestosql/cli/TestQueryRunner.java index 471c1cffd6317..d81ff9ac11b52 100644 --- a/presto-cli/src/test/java/io/prestosql/cli/TestQueryRunner.java +++ b/presto-cli/src/test/java/io/prestosql/cli/TestQueryRunner.java @@ -23,7 +23,6 @@ import io.prestosql.client.Column; import io.prestosql.client.QueryResults; import io.prestosql.client.StatementStats; -import io.prestosql.spi.type.StandardTypes; import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.MockWebServer; import org.testng.annotations.AfterMethod; @@ -43,6 +42,7 @@ import static com.google.common.net.HttpHeaders.SET_COOKIE; import static io.airlift.json.JsonCodec.jsonCodec; import static io.prestosql.cli.ClientOptions.OutputFormat.CSV; +import static io.prestosql.client.ClientStandardTypes.BIGINT; import static java.util.concurrent.TimeUnit.MINUTES; import static org.testng.Assert.assertEquals; @@ -119,7 +119,7 @@ private String createResults() server.url("/query.html?20160128_214710_00012_rk68b").uri(), null, null, - ImmutableList.of(new Column("_col0", StandardTypes.BIGINT, new ClientTypeSignature(StandardTypes.BIGINT))), + ImmutableList.of(new Column("_col0", BIGINT, new ClientTypeSignature(BIGINT))), ImmutableList.of(ImmutableList.of(123)), StatementStats.builder().setState("FINISHED").build(), //new StatementStats("FINISHED", false, true, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, null), diff --git a/presto-client/pom.xml b/presto-client/pom.xml index 30bf1ba8836e7..5b1c1a02631bc 100644 --- a/presto-client/pom.xml +++ b/presto-client/pom.xml @@ -16,11 +16,6 @@ - - io.prestosql - presto-spi - - com.google.code.findbugs jsr305 @@ -73,6 +68,12 @@ + + io.prestosql + presto-spi + test + + org.testng testng diff --git a/presto-client/src/main/java/io/prestosql/client/ClientStandardTypes.java b/presto-client/src/main/java/io/prestosql/client/ClientStandardTypes.java new file mode 100644 index 0000000000000..12e13425d1544 --- /dev/null +++ b/presto-client/src/main/java/io/prestosql/client/ClientStandardTypes.java @@ -0,0 +1,48 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.prestosql.client; + +public final class ClientStandardTypes +{ + public static final String BIGINT = "bigint"; + public static final String INTEGER = "integer"; + public static final String SMALLINT = "smallint"; + public static final String TINYINT = "tinyint"; + public static final String BOOLEAN = "boolean"; + public static final String DATE = "date"; + public static final String DECIMAL = "decimal"; + public static final String REAL = "real"; + public static final String DOUBLE = "double"; + public static final String HYPER_LOG_LOG = "HyperLogLog"; + public static final String QDIGEST = "qdigest"; + public static final String P4_HYPER_LOG_LOG = "P4HyperLogLog"; + public static final String INTERVAL_DAY_TO_SECOND = "interval day to second"; + public static final String INTERVAL_YEAR_TO_MONTH = "interval year to month"; + public static final String TIMESTAMP = "timestamp"; + public static final String TIMESTAMP_WITH_TIME_ZONE = "timestamp with time zone"; + public static final String TIME = "time"; + public static final String TIME_WITH_TIME_ZONE = "time with time zone"; + public static final String VARBINARY = "varbinary"; + public static final String VARCHAR = "varchar"; + public static final String CHAR = "char"; + public static final String ROW = "row"; + public static final String ARRAY = "array"; + public static final String MAP = "map"; + public static final String JSON = "json"; + public static final String IPADDRESS = "ipaddress"; + public static final String GEOMETRY = "Geometry"; + public static final String BING_TILE = "BingTile"; + + private ClientStandardTypes() {} +} diff --git a/presto-client/src/main/java/io/prestosql/client/ClientTypeSignature.java b/presto-client/src/main/java/io/prestosql/client/ClientTypeSignature.java index 19efa16b2d292..1a7321e4b05c9 100644 --- a/presto-client/src/main/java/io/prestosql/client/ClientTypeSignature.java +++ b/presto-client/src/main/java/io/prestosql/client/ClientTypeSignature.java @@ -16,7 +16,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; -import io.prestosql.spi.type.StandardTypes; import javax.annotation.concurrent.Immutable; @@ -31,6 +30,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.toImmutableList; +import static io.prestosql.client.ClientStandardTypes.ROW; import static java.lang.String.format; import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; @@ -71,7 +71,7 @@ public ClientTypeSignature( requireNonNull(literalArguments, "literalArguments is null"); ImmutableList.Builder convertedArguments = ImmutableList.builder(); // Talking to a legacy server (< 0.133) - if (rawType.equals(StandardTypes.ROW)) { + if (rawType.equals(ROW)) { checkArgument(typeArguments.size() == literalArguments.size()); for (int i = 0; i < typeArguments.size(); i++) { Object value = literalArguments.get(i); @@ -158,7 +158,7 @@ public List getLiteralArguments() @Override public String toString() { - if (rawType.equals(StandardTypes.ROW)) { + if (rawType.equals(ROW)) { return rowToString(); } else { diff --git a/presto-client/src/main/java/io/prestosql/client/FixJsonDataUtils.java b/presto-client/src/main/java/io/prestosql/client/FixJsonDataUtils.java index dace9a53f2bf9..cda2662524705 100644 --- a/presto-client/src/main/java/io/prestosql/client/FixJsonDataUtils.java +++ b/presto-client/src/main/java/io/prestosql/client/FixJsonDataUtils.java @@ -24,30 +24,30 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; -import static io.prestosql.spi.type.StandardTypes.ARRAY; -import static io.prestosql.spi.type.StandardTypes.BIGINT; -import static io.prestosql.spi.type.StandardTypes.BING_TILE; -import static io.prestosql.spi.type.StandardTypes.BOOLEAN; -import static io.prestosql.spi.type.StandardTypes.CHAR; -import static io.prestosql.spi.type.StandardTypes.DATE; -import static io.prestosql.spi.type.StandardTypes.DECIMAL; -import static io.prestosql.spi.type.StandardTypes.DOUBLE; -import static io.prestosql.spi.type.StandardTypes.GEOMETRY; -import static io.prestosql.spi.type.StandardTypes.INTEGER; -import static io.prestosql.spi.type.StandardTypes.INTERVAL_DAY_TO_SECOND; -import static io.prestosql.spi.type.StandardTypes.INTERVAL_YEAR_TO_MONTH; -import static io.prestosql.spi.type.StandardTypes.IPADDRESS; -import static io.prestosql.spi.type.StandardTypes.JSON; -import static io.prestosql.spi.type.StandardTypes.MAP; -import static io.prestosql.spi.type.StandardTypes.REAL; -import static io.prestosql.spi.type.StandardTypes.ROW; -import static io.prestosql.spi.type.StandardTypes.SMALLINT; -import static io.prestosql.spi.type.StandardTypes.TIME; -import static io.prestosql.spi.type.StandardTypes.TIMESTAMP; -import static io.prestosql.spi.type.StandardTypes.TIMESTAMP_WITH_TIME_ZONE; -import static io.prestosql.spi.type.StandardTypes.TIME_WITH_TIME_ZONE; -import static io.prestosql.spi.type.StandardTypes.TINYINT; -import static io.prestosql.spi.type.StandardTypes.VARCHAR; +import static io.prestosql.client.ClientStandardTypes.ARRAY; +import static io.prestosql.client.ClientStandardTypes.BIGINT; +import static io.prestosql.client.ClientStandardTypes.BING_TILE; +import static io.prestosql.client.ClientStandardTypes.BOOLEAN; +import static io.prestosql.client.ClientStandardTypes.CHAR; +import static io.prestosql.client.ClientStandardTypes.DATE; +import static io.prestosql.client.ClientStandardTypes.DECIMAL; +import static io.prestosql.client.ClientStandardTypes.DOUBLE; +import static io.prestosql.client.ClientStandardTypes.GEOMETRY; +import static io.prestosql.client.ClientStandardTypes.INTEGER; +import static io.prestosql.client.ClientStandardTypes.INTERVAL_DAY_TO_SECOND; +import static io.prestosql.client.ClientStandardTypes.INTERVAL_YEAR_TO_MONTH; +import static io.prestosql.client.ClientStandardTypes.IPADDRESS; +import static io.prestosql.client.ClientStandardTypes.JSON; +import static io.prestosql.client.ClientStandardTypes.MAP; +import static io.prestosql.client.ClientStandardTypes.REAL; +import static io.prestosql.client.ClientStandardTypes.ROW; +import static io.prestosql.client.ClientStandardTypes.SMALLINT; +import static io.prestosql.client.ClientStandardTypes.TIME; +import static io.prestosql.client.ClientStandardTypes.TIMESTAMP; +import static io.prestosql.client.ClientStandardTypes.TIMESTAMP_WITH_TIME_ZONE; +import static io.prestosql.client.ClientStandardTypes.TIME_WITH_TIME_ZONE; +import static io.prestosql.client.ClientStandardTypes.TINYINT; +import static io.prestosql.client.ClientStandardTypes.VARCHAR; import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList;