Skip to content

Commit 5e93c8b

Browse files
committed
Make TaskUpdateRequest, TaskInfo Thrift ready with json fields
1 parent 1a3a4f7 commit 5e93c8b

35 files changed

+784
-104
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,12 @@
237237
<version>3.9.1</version>
238238
</dependency>
239239

240-
<!-- pull up to the version used in okio-jvm to avoid conlict with okhttp-* -->
241-
<dependency>
240+
<!-- pull up to the version used in okio-jvm to avoid conlict with okhttp-* -->
241+
<dependency>
242242
<groupId>org.jetbrains.kotlin</groupId>
243243
<artifactId>kotlin-stdlib-jdk8</artifactId>
244244
<version>1.9.25</version>
245-
</dependency>
245+
</dependency>
246246

247247
<dependency>
248248
<groupId>org.eclipse.jetty</groupId>

presto-common/src/main/java/com/facebook/presto/common/transaction/TransactionId.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,24 @@
2323
import java.util.UUID;
2424

2525
import static java.util.Objects.requireNonNull;
26+
import static java.util.UUID.fromString;
2627

2728
@ThriftStruct
2829
public final class TransactionId
2930
{
3031
private final UUID uuid;
3132

32-
@ThriftConstructor
3333
public TransactionId(UUID uuid)
3434
{
3535
this.uuid = requireNonNull(uuid, "uuid is null");
3636
}
3737

38+
@ThriftConstructor
39+
public TransactionId(String uuid)
40+
{
41+
this(fromString(uuid));
42+
}
43+
3844
public static TransactionId create()
3945
{
4046
return new TransactionId(UUID.randomUUID());
@@ -43,7 +49,7 @@ public static TransactionId create()
4349
@JsonCreator
4450
public static TransactionId valueOf(String value)
4551
{
46-
return new TransactionId(UUID.fromString(value));
52+
return new TransactionId(fromString(value));
4753
}
4854

4955
@Override
@@ -67,12 +73,12 @@ public boolean equals(Object obj)
6773

6874
@Override
6975
@JsonValue
76+
@ThriftField(value = 1, name = "uuid")
7077
public String toString()
7178
{
7279
return uuid.toString();
7380
}
7481

75-
@ThriftField(value = 1, name = "uuid")
7682
public UUID getUuid()
7783
{
7884
return uuid;

presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ public TypeSignature(String base, List<TypeSignatureParameter> parameters)
101101
this(TypeSignatureBase.of(base), parameters);
102102
}
103103

104-
@ThriftConstructor
105104
public TypeSignature(TypeSignatureBase typeSignatureBase, List<TypeSignatureParameter> parameters)
106105
{
107106
this.base = typeSignatureBase;
@@ -111,12 +110,18 @@ public TypeSignature(TypeSignatureBase typeSignatureBase, List<TypeSignaturePara
111110
this.calculated = parameters.stream().anyMatch(TypeSignatureParameter::isCalculated);
112111
}
113112

113+
// Add a ignore field to avoid construct conflict
114+
@ThriftConstructor
115+
public TypeSignature(String signature, boolean ignore)
116+
{
117+
this(parseTypeSignature(signature).getTypeSignatureBase(), parseTypeSignature(signature).getParameters());
118+
}
119+
114120
public TypeSignature getStandardTypeSignature()
115121
{
116122
return new TypeSignature(base.getStandardTypeBase(), parameters);
117123
}
118124

119-
@ThriftField(1)
120125
public TypeSignatureBase getTypeSignatureBase()
121126
{
122127
return base;
@@ -127,7 +132,6 @@ public String getBase()
127132
return base.toString();
128133
}
129134

130-
@ThriftField(2)
131135
public List<TypeSignatureParameter> getParameters()
132136
{
133137
return parameters;
@@ -700,6 +704,7 @@ private static boolean isValidStartOfIdentifier(char c)
700704

701705
@Override
702706
@JsonValue
707+
@ThriftField(value = 1, name = "signature")
703708
public String toString()
704709
{
705710
String baseString = base.toString();
@@ -723,6 +728,12 @@ public String toString()
723728
return typeName.toString();
724729
}
725730

731+
@ThriftField(2)
732+
public boolean getIgnore()
733+
{
734+
return true;
735+
}
736+
726737
private static void checkArgument(boolean argument, String format, Object... args)
727738
{
728739
if (!argument) {

presto-common/src/main/java/com/facebook/presto/common/type/TypeSignatureParameterUnion.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
import java.util.Objects;
2323

24-
import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL;
2524
import static com.facebook.presto.common.type.BigintEnumType.LongEnumMap;
2625
import static com.facebook.presto.common.type.ParameterKind.DISTINCT_TYPE;
2726
import static com.facebook.presto.common.type.ParameterKind.LONG;
@@ -50,7 +49,7 @@ public TypeSignatureParameterUnion(TypeSignature typeSignature)
5049
this.id = (short) TYPE.getValue();
5150
}
5251

53-
@ThriftField(value = 1, requiredness = OPTIONAL)
52+
@ThriftField(1)
5453
public TypeSignature getTypeSignature()
5554
{
5655
return typeSignature;
@@ -63,19 +62,20 @@ public TypeSignatureParameterUnion(NamedTypeSignature namedTypeSignature)
6362
this.id = (short) NAMED_TYPE.getValue();
6463
}
6564

66-
@ThriftField(value = 2, requiredness = OPTIONAL)
65+
@ThriftField(2)
6766
public NamedTypeSignature getNamedTypeSignature()
6867
{
6968
return namedTypeSignature;
7069
}
70+
7171
@ThriftConstructor
7272
public TypeSignatureParameterUnion(Long longLiteral)
7373
{
7474
this.longLiteral = longLiteral;
7575
this.id = (short) LONG.getValue();
7676
}
7777

78-
@ThriftField(value = 3, requiredness = OPTIONAL)
78+
@ThriftField(3)
7979
public Long getLongLiteral()
8080
{
8181
return longLiteral;
@@ -88,7 +88,7 @@ public TypeSignatureParameterUnion(String variable)
8888
this.id = (short) VARIABLE.getValue();
8989
}
9090

91-
@ThriftField(value = 4, requiredness = OPTIONAL)
91+
@ThriftField(4)
9292
public String getVariable()
9393
{
9494
return variable;
@@ -101,7 +101,7 @@ public TypeSignatureParameterUnion(LongEnumMap longEnumMap)
101101
this.id = (short) LONG_ENUM.getValue();
102102
}
103103

104-
@ThriftField(value = 5, requiredness = OPTIONAL)
104+
@ThriftField(5)
105105
public LongEnumMap getLongEnumMap()
106106
{
107107
return longEnumMap;
@@ -114,7 +114,7 @@ public TypeSignatureParameterUnion(VarcharEnumMap varcharEnumMap)
114114
this.id = (short) VARCHAR_ENUM.getValue();
115115
}
116116

117-
@ThriftField(value = 6, requiredness = OPTIONAL)
117+
@ThriftField(6)
118118
public VarcharEnumMap getVarcharEnumMap()
119119
{
120120
return varcharEnumMap;
@@ -127,7 +127,7 @@ public TypeSignatureParameterUnion(DistinctTypeInfo distinctTypeInfo)
127127
this.id = (short) DISTINCT_TYPE.getValue();
128128
}
129129

130-
@ThriftField(value = 7, requiredness = OPTIONAL)
130+
@ThriftField(7)
131131
public DistinctTypeInfo getDistinctTypeInfo()
132132
{
133133
return distinctTypeInfo;

presto-main-base/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,6 @@
302302
<artifactId>jts-core</artifactId>
303303
</dependency>
304304

305-
306305
<dependency>
307306
<groupId>org.apache.datasketches</groupId>
308307
<artifactId>datasketches-memory</artifactId>

presto-main-base/src/main/java/com/facebook/presto/execution/ExecutionFailureInfo.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import com.facebook.drift.annotations.ThriftConstructor;
1717
import com.facebook.drift.annotations.ThriftField;
18+
import com.facebook.drift.annotations.ThriftIdlAnnotation;
1819
import com.facebook.drift.annotations.ThriftStruct;
1920
import com.facebook.presto.client.ErrorLocation;
2021
import com.facebook.presto.client.FailureInfo;
@@ -99,7 +100,8 @@ public String getMessage()
99100

100101
@Nullable
101102
@JsonProperty
102-
@ThriftField(value = 3, isRecursive = TRUE, requiredness = OPTIONAL)
103+
@ThriftField(value = 3, isRecursive = TRUE, requiredness = OPTIONAL, idlAnnotations = {
104+
@ThriftIdlAnnotation(key = "cpp.ref_type", value = "\"shared\"")})
103105
public ExecutionFailureInfo getCause()
104106
{
105107
return cause;

presto-main-base/src/main/java/com/facebook/presto/execution/ScheduledSplit.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
*/
1414
package com.facebook.presto.execution;
1515

16+
import com.facebook.drift.annotations.ThriftConstructor;
17+
import com.facebook.drift.annotations.ThriftField;
18+
import com.facebook.drift.annotations.ThriftStruct;
1619
import com.facebook.presto.metadata.Split;
1720
import com.facebook.presto.spi.plan.PlanNodeId;
1821
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -22,13 +25,15 @@
2225
import static com.google.common.base.MoreObjects.toStringHelper;
2326
import static java.util.Objects.requireNonNull;
2427

28+
@ThriftStruct
2529
public class ScheduledSplit
2630
{
2731
private final long sequenceId;
2832
private final PlanNodeId planNodeId;
2933
private final Split split;
3034

3135
@JsonCreator
36+
@ThriftConstructor
3237
public ScheduledSplit(
3338
@JsonProperty("sequenceId") long sequenceId,
3439
@JsonProperty("planNodeId") PlanNodeId planNodeId,
@@ -40,18 +45,21 @@ public ScheduledSplit(
4045
}
4146

4247
@JsonProperty
48+
@ThriftField(1)
4349
public long getSequenceId()
4450
{
4551
return sequenceId;
4652
}
4753

4854
@JsonProperty
55+
@ThriftField(2)
4956
public PlanNodeId getPlanNodeId()
5057
{
5158
return planNodeId;
5259
}
5360

5461
@JsonProperty
62+
@ThriftField(3)
5563
public Split getSplit()
5664
{
5765
return split;

presto-main-base/src/main/java/com/facebook/presto/execution/TaskSource.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
*/
1414
package com.facebook.presto.execution;
1515

16+
import com.facebook.drift.annotations.ThriftConstructor;
17+
import com.facebook.drift.annotations.ThriftField;
18+
import com.facebook.drift.annotations.ThriftStruct;
1619
import com.facebook.presto.spi.plan.PlanNodeId;
1720
import com.fasterxml.jackson.annotation.JsonCreator;
1821
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -24,6 +27,7 @@
2427
import static com.google.common.base.Preconditions.checkArgument;
2528
import static java.util.Objects.requireNonNull;
2629

30+
@ThriftStruct
2731
public class TaskSource
2832
{
2933
private final PlanNodeId planNodeId;
@@ -32,6 +36,7 @@ public class TaskSource
3236
private final boolean noMoreSplits;
3337

3438
@JsonCreator
39+
@ThriftConstructor
3540
public TaskSource(
3641
@JsonProperty("planNodeId") PlanNodeId planNodeId,
3742
@JsonProperty("splits") Set<ScheduledSplit> splits,
@@ -50,24 +55,28 @@ public TaskSource(PlanNodeId planNodeId, Set<ScheduledSplit> splits, boolean noM
5055
}
5156

5257
@JsonProperty
58+
@ThriftField(1)
5359
public PlanNodeId getPlanNodeId()
5460
{
5561
return planNodeId;
5662
}
5763

5864
@JsonProperty
65+
@ThriftField(2)
5966
public Set<ScheduledSplit> getSplits()
6067
{
6168
return splits;
6269
}
6370

6471
@JsonProperty
72+
@ThriftField(3)
6573
public Set<Lifespan> getNoMoreSplitsForLifespan()
6674
{
6775
return noMoreSplitsForLifespan;
6876
}
6977

7078
@JsonProperty
79+
@ThriftField(value = 4, name = "noMoreSplits")
7180
public boolean isNoMoreSplits()
7281
{
7382
return noMoreSplits;

presto-main-base/src/main/java/com/facebook/presto/execution/buffer/OutputBuffers.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import com.facebook.drift.annotations.ThriftConstructor;
1717
import com.facebook.drift.annotations.ThriftEnum;
18+
import com.facebook.drift.annotations.ThriftEnumValue;
1819
import com.facebook.drift.annotations.ThriftField;
1920
import com.facebook.drift.annotations.ThriftStruct;
2021
import com.facebook.presto.spi.plan.PartitioningHandle;
@@ -81,11 +82,24 @@ public static OutputBuffers createSpoolingOutputBuffers()
8182
@ThriftEnum
8283
public enum BufferType
8384
{
84-
PARTITIONED,
85-
BROADCAST,
86-
ARBITRARY,
87-
DISCARDING,
88-
SPOOLING,
85+
PARTITIONED(0),
86+
BROADCAST(1),
87+
ARBITRARY(2),
88+
DISCARDING(3),
89+
SPOOLING(4);
90+
91+
private final int value;
92+
93+
BufferType(int value)
94+
{
95+
this.value = value;
96+
}
97+
98+
@ThriftEnumValue
99+
public int getValue()
100+
{
101+
return value;
102+
}
89103
}
90104

91105
private final BufferType type;

presto-main-base/src/main/java/com/facebook/presto/operator/BlockedReason.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,18 @@
1919
@ThriftEnum
2020
public enum BlockedReason
2121
{
22-
WAITING_FOR_MEMORY;
22+
WAITING_FOR_MEMORY(0);
23+
24+
private final int value;
25+
26+
BlockedReason(int value)
27+
{
28+
this.value = value;
29+
}
2330

2431
@ThriftEnumValue
2532
public int getValue()
2633
{
27-
return 1;
34+
return value;
2835
}
2936
}

0 commit comments

Comments
 (0)