diff --git a/pom.xml b/pom.xml
index 4f55cf8066d9a..61ce11b4f1c25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,7 +52,7 @@
4.12.0
3.4.0
19.3.0.0
- 1.40
+ 1.43
2.12.7
diff --git a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/CustomCodecUtils.java b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/CustomCodecUtils.java
index a6e4b7a32df5e..483c0c3def17d 100644
--- a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/CustomCodecUtils.java
+++ b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/CustomCodecUtils.java
@@ -17,7 +17,6 @@
import com.facebook.drift.TException;
import com.facebook.drift.codec.metadata.DefaultThriftTypeReference;
import com.facebook.drift.codec.metadata.FieldKind;
-import com.facebook.drift.codec.metadata.ThriftCatalog;
import com.facebook.drift.codec.metadata.ThriftFieldExtractor;
import com.facebook.drift.codec.metadata.ThriftFieldMetadata;
import com.facebook.drift.codec.metadata.ThriftStructMetadata;
@@ -34,7 +33,6 @@
import java.util.Optional;
import static com.facebook.drift.annotations.ThriftField.Requiredness.NONE;
-import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.String.format;
/***
@@ -44,12 +42,8 @@ public class CustomCodecUtils
{
private CustomCodecUtils() {}
- public static ThriftStructMetadata createSyntheticMetadata(ThriftCatalog thriftCatalog, short fieldId, String fieldName, Class> originalType, Class> referencedType)
+ public static ThriftStructMetadata createSyntheticMetadata(short fieldId, String fieldName, Class> originalType, Class> referencedType, ThriftType thriftType)
{
- checkNotNull(thriftCatalog.getThriftType(referencedType), "Can not find corresponding thrift type for type %s", referencedType);
-
- ThriftType thriftType = thriftCatalog.getThriftType(referencedType);
-
ThriftFieldMetadata fieldMetaData = new ThriftFieldMetadata(
fieldId,
false, false, NONE, ImmutableMap.of(),
diff --git a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/MetadataUpdatesCodec.java b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/MetadataUpdatesCodec.java
index d53fe9986a01f..f14ddf4295513 100644
--- a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/MetadataUpdatesCodec.java
+++ b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/MetadataUpdatesCodec.java
@@ -14,9 +14,9 @@
package com.facebook.presto.server.thrift;
import com.facebook.airlift.json.JsonCodec;
+import com.facebook.drift.codec.CodecThriftType;
import com.facebook.drift.codec.ThriftCodec;
import com.facebook.drift.codec.metadata.ThriftCatalog;
-import com.facebook.drift.codec.metadata.ThriftStructMetadata;
import com.facebook.drift.codec.metadata.ThriftType;
import com.facebook.drift.protocol.TProtocolReader;
import com.facebook.drift.protocol.TProtocolWriter;
@@ -35,26 +35,27 @@ public class MetadataUpdatesCodec
private static final short METADATA_UPDATES_DATA_FIELD_ID = 1;
private static final String METADATA_UPDATES_DATA_FIELD_NAME = "metadataUpdates";
private static final String METADATA_UPDATES_STRUCT_NAME = "MetadataUpdates";
+ private static final ThriftType SYNTHETIC_STRUCT_TYPE = ThriftType.struct(createSyntheticMetadata(METADATA_UPDATES_DATA_FIELD_ID, METADATA_UPDATES_DATA_FIELD_NAME, MetadataUpdates.class, String.class, ThriftType.STRING));
- private final ThriftCatalog thriftCatalog;
- private final ThriftType syntheticStructType;
private final JsonCodec jsonCodec;
@Inject
public MetadataUpdatesCodec(JsonCodec jsonCodec, ThriftCatalog thriftCatalog)
{
this.jsonCodec = requireNonNull(jsonCodec, "jsonCodec is null");
- this.thriftCatalog = requireNonNull(thriftCatalog, "thriftCatalog is null");
-
- ThriftStructMetadata structMetadata = createSyntheticMetadata(thriftCatalog, METADATA_UPDATES_DATA_FIELD_ID, METADATA_UPDATES_DATA_FIELD_NAME, MetadataUpdates.class, String.class);
- this.syntheticStructType = ThriftType.struct(structMetadata);
+ thriftCatalog.addThriftType(SYNTHETIC_STRUCT_TYPE);
+ }
- thriftCatalog.addThriftType(syntheticStructType);
+ @CodecThriftType
+ public static ThriftType getThriftType()
+ {
+ return SYNTHETIC_STRUCT_TYPE;
}
+ @Override
public ThriftType getType()
{
- return syntheticStructType;
+ return SYNTHETIC_STRUCT_TYPE;
}
@Override
diff --git a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/SplitCodec.java b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/SplitCodec.java
index 911b094aebf46..e47fdcf9b3e19 100644
--- a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/SplitCodec.java
+++ b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/SplitCodec.java
@@ -14,9 +14,9 @@
package com.facebook.presto.server.thrift;
import com.facebook.airlift.json.JsonCodec;
+import com.facebook.drift.codec.CodecThriftType;
import com.facebook.drift.codec.ThriftCodec;
import com.facebook.drift.codec.metadata.ThriftCatalog;
-import com.facebook.drift.codec.metadata.ThriftStructMetadata;
import com.facebook.drift.codec.metadata.ThriftType;
import com.facebook.drift.protocol.TProtocolReader;
import com.facebook.drift.protocol.TProtocolWriter;
@@ -35,26 +35,27 @@ public class SplitCodec
private static final short SPLIT_DATA_FIELD_ID = 1;
private static final String SPLIT_DATA_FIELD_NAME = "split";
private static final String SPLIT_DATA_STRUCT_NAME = "Split";
+ private static final ThriftType SYNTHETIC_STRUCT_TYPE = ThriftType.struct(createSyntheticMetadata(SPLIT_DATA_FIELD_ID, SPLIT_DATA_FIELD_NAME, Split.class, String.class, ThriftType.STRING));
- private final ThriftCatalog thriftCatalog;
- private final ThriftType syntheticStructType;
private final JsonCodec jsonCodec;
@Inject
public SplitCodec(JsonCodec jsonCodec, ThriftCatalog thriftCatalog)
{
this.jsonCodec = requireNonNull(jsonCodec, "jsonCodec is null");
- this.thriftCatalog = requireNonNull(thriftCatalog, "thriftCatalog is null");
-
- ThriftStructMetadata structMetadata = createSyntheticMetadata(thriftCatalog, SPLIT_DATA_FIELD_ID, SPLIT_DATA_FIELD_NAME, Split.class, String.class);
- this.syntheticStructType = ThriftType.struct(structMetadata);
+ thriftCatalog.addThriftType(SYNTHETIC_STRUCT_TYPE);
+ }
- thriftCatalog.addThriftType(syntheticStructType);
+ @CodecThriftType
+ public static ThriftType getThriftType()
+ {
+ return SYNTHETIC_STRUCT_TYPE;
}
+ @Override
public ThriftType getType()
{
- return syntheticStructType;
+ return SYNTHETIC_STRUCT_TYPE;
}
@Override
diff --git a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/TableWriteInfoCodec.java b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/TableWriteInfoCodec.java
index 9b6953ca8055f..50754a0593bae 100644
--- a/presto-main-base/src/main/java/com/facebook/presto/server/thrift/TableWriteInfoCodec.java
+++ b/presto-main-base/src/main/java/com/facebook/presto/server/thrift/TableWriteInfoCodec.java
@@ -14,9 +14,9 @@
package com.facebook.presto.server.thrift;
import com.facebook.airlift.json.JsonCodec;
+import com.facebook.drift.codec.CodecThriftType;
import com.facebook.drift.codec.ThriftCodec;
import com.facebook.drift.codec.metadata.ThriftCatalog;
-import com.facebook.drift.codec.metadata.ThriftStructMetadata;
import com.facebook.drift.codec.metadata.ThriftType;
import com.facebook.drift.protocol.TProtocolReader;
import com.facebook.drift.protocol.TProtocolWriter;
@@ -35,26 +35,27 @@ public class TableWriteInfoCodec
private static final short TABLE_WRITE_INFO_DATA_FIELD_ID = 1;
private static final String TABLE_WRITE_INFO_DATA_FIELD_NAME = "tableWriteInfo";
private static final String TABLE_WRITE_INFO_STRUCT_NAME = "TableWriteInfo";
+ private static final ThriftType SYNTHETIC_STRUCT_TYPE = ThriftType.struct(createSyntheticMetadata(TABLE_WRITE_INFO_DATA_FIELD_ID, TABLE_WRITE_INFO_DATA_FIELD_NAME, TableWriteInfo.class, String.class, ThriftType.STRING));
- private final ThriftCatalog thriftCatalog;
- private final ThriftType syntheticStructType;
private final JsonCodec jsonCodec;
@Inject
public TableWriteInfoCodec(JsonCodec jsonCodec, ThriftCatalog thriftCatalog)
{
this.jsonCodec = requireNonNull(jsonCodec, "jsonCodec is null");
- this.thriftCatalog = requireNonNull(thriftCatalog, "thriftCatalog is null");
-
- ThriftStructMetadata structMetadata = createSyntheticMetadata(thriftCatalog, TABLE_WRITE_INFO_DATA_FIELD_ID, TABLE_WRITE_INFO_DATA_FIELD_NAME, TableWriteInfo.class, String.class);
- this.syntheticStructType = ThriftType.struct(structMetadata);
+ thriftCatalog.addThriftType(SYNTHETIC_STRUCT_TYPE);
+ }
- thriftCatalog.addThriftType(syntheticStructType);
+ @CodecThriftType
+ public static ThriftType getThriftType()
+ {
+ return SYNTHETIC_STRUCT_TYPE;
}
+ @Override
public ThriftType getType()
{
- return syntheticStructType;
+ return SYNTHETIC_STRUCT_TYPE;
}
@Override
diff --git a/presto-thrift-spec/pom.xml b/presto-thrift-spec/pom.xml
index b1981b53a653d..3219b48d6645f 100644
--- a/presto-thrift-spec/pom.xml
+++ b/presto-thrift-spec/pom.xml
@@ -50,9 +50,23 @@
com.facebook.presto.execution.TaskStatus
+ com.facebook.presto.execution.TaskInfo
+ com.facebook.presto.server.TaskUpdateRequest
+
+ com.facebook.presto.server.thrift.SplitCodec
+ com.facebook.presto.server.thrift.TableWriteInfoCodec
+ com.facebook.presto.server.thrift.MetadataUpdatesCodec
+ com.facebook.drift.codec.utils.DurationToMillisThriftCodec
+ com.facebook.drift.codec.utils.DataSizeToBytesThriftCodec
+ com.facebook.drift.codec.utils.JodaDateTimeToEpochMillisThriftCodec
+ com.facebook.drift.codec.utils.LocaleToLanguageTagCodec
+ com.facebook.drift.codec.internal.builtin.OptionalIntThriftCodec
+ com.facebook.drift.codec.internal.builtin.OptionalLongThriftCodec
+ com.facebook.drift.codec.internal.builtin.OptionalDoubleThriftCodec
+
true
- target/thrift/presto-internal-${project.version}.thrift
+ target/thrift/presto-thrift-protocol.thrift
@@ -70,7 +84,7 @@
- target/thrift/presto-internal-${project.version}.thrift
+ target/thrift/presto-thrift-protocol.thrift
thrift