Skip to content

Commit

Permalink
Annotate metadata related objects as Thrift objects
Browse files Browse the repository at this point in the history
  • Loading branch information
erick576 authored and highker committed Jun 20, 2022
1 parent e6f0a70 commit 05a2771
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,37 @@
*/
package com.facebook.presto.common;

import com.facebook.drift.annotations.ThriftConstructor;
import com.facebook.drift.annotations.ThriftField;
import com.facebook.drift.annotations.ThriftStruct;

import java.util.Objects;

import static java.util.Locale.ENGLISH;
import static java.util.Objects.requireNonNull;

@ThriftStruct
public final class CatalogSchemaName
{
// TODO: Move out this class. Ideally this class should not be in presto-common module.

private final String catalogName;
private final String schemaName;

@ThriftConstructor
public CatalogSchemaName(String catalogName, String schemaName)
{
this.catalogName = requireNonNull(catalogName, "catalogName is null").toLowerCase(ENGLISH);
this.schemaName = requireNonNull(schemaName, "schemaName is null").toLowerCase(ENGLISH);
}

@ThriftField(1)
public String getCatalogName()
{
return catalogName;
}

@ThriftField(2)
public String getSchemaName()
{
return schemaName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
*/
package com.facebook.presto.common;

import com.facebook.drift.annotations.ThriftConstructor;
import com.facebook.drift.annotations.ThriftField;
import com.facebook.drift.annotations.ThriftStruct;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

Expand All @@ -25,6 +28,7 @@
import static java.util.Objects.requireNonNull;

@Immutable
@ThriftStruct
public class QualifiedObjectName
{
private final String catalogName;
Expand Down Expand Up @@ -54,6 +58,7 @@ public static QualifiedObjectName valueOf(String catalogName, String schemaName,
return new QualifiedObjectName(catalogName, schemaName, objectName.toLowerCase(ENGLISH));
}

@ThriftConstructor
public QualifiedObjectName(String catalogName, String schemaName, String objectName)
{
checkLowerCase(catalogName, "catalogName");
Expand All @@ -69,16 +74,19 @@ public CatalogSchemaName getCatalogSchemaName()
return new CatalogSchemaName(catalogName, schemaName);
}

@ThriftField(1)
public String getCatalogName()
{
return catalogName;
}

@ThriftField(2)
public String getSchemaName()
{
return schemaName;
}

@ThriftField(3)
public String getObjectName()
{
return objectName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
*/
package com.facebook.presto.metadata;

import com.facebook.drift.annotations.ThriftConstructor;
import com.facebook.drift.annotations.ThriftField;
import com.facebook.drift.annotations.ThriftStruct;
import com.facebook.presto.common.QualifiedObjectName;
import com.facebook.presto.spi.SchemaTablePrefix;
import com.fasterxml.jackson.annotation.JsonCreator;
Expand All @@ -28,6 +31,7 @@
import static com.facebook.presto.metadata.MetadataUtil.checkTableName;

@Immutable
@ThriftStruct
public class QualifiedTablePrefix
{
private final String catalogName;
Expand Down Expand Up @@ -56,6 +60,7 @@ public QualifiedTablePrefix(String catalogName, String schemaName, String tableN
}

@JsonCreator
@ThriftConstructor
public QualifiedTablePrefix(
@JsonProperty("catalogName") String catalogName,
@JsonProperty("schemaName") Optional<String> schemaName,
Expand All @@ -73,18 +78,21 @@ public static QualifiedTablePrefix toQualifiedTablePrefix(QualifiedObjectName qu
}

@JsonProperty
@ThriftField(1)
public String getCatalogName()
{
return catalogName;
}

@JsonProperty
@ThriftField(2)
public Optional<String> getSchemaName()
{
return schemaName;
}

@JsonProperty
@ThriftField(3)
public Optional<String> getTableName()
{
return tableName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
*/
package com.facebook.presto.transaction;

import com.facebook.drift.annotations.ThriftConstructor;
import com.facebook.drift.annotations.ThriftField;
import com.facebook.drift.annotations.ThriftStruct;
import com.facebook.presto.spi.ConnectorId;
import com.facebook.presto.spi.transaction.IsolationLevel;
import com.google.common.collect.ImmutableList;
Expand All @@ -24,6 +27,7 @@

import static java.util.Objects.requireNonNull;

@ThriftStruct
public class TransactionInfo
{
private final TransactionId transactionId;
Expand All @@ -35,6 +39,7 @@ public class TransactionInfo
private final List<ConnectorId> connectorIds;
private final Optional<ConnectorId> writtenConnectorId;

@ThriftConstructor
public TransactionInfo(
TransactionId transactionId,
IsolationLevel isolationLevel,
Expand All @@ -55,41 +60,49 @@ public TransactionInfo(
this.writtenConnectorId = requireNonNull(writtenConnectorId, "writtenConnectorId is null");
}

@ThriftField(1)
public TransactionId getTransactionId()
{
return transactionId;
}

@ThriftField(2)
public IsolationLevel getIsolationLevel()
{
return isolationLevel;
}

@ThriftField(3)
public boolean isReadOnly()
{
return readOnly;
}

@ThriftField(4)
public boolean isAutoCommitContext()
{
return autoCommitContext;
}

@ThriftField(5)
public DateTime getCreateTime()
{
return createTime;
}

@ThriftField(6)
public Duration getIdleTime()
{
return idleTime;
}

@ThriftField(7)
public List<ConnectorId> getConnectorIds()
{
return connectorIds;
}

@ThriftField(8)
public Optional<ConnectorId> getWrittenConnectorId()
{
return writtenConnectorId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,22 @@
*/
package com.facebook.presto.spi.transaction;

import com.facebook.drift.annotations.ThriftEnum;
import com.facebook.drift.annotations.ThriftEnumValue;
import com.facebook.presto.spi.PrestoException;

import static com.facebook.presto.spi.StandardErrorCode.UNSUPPORTED_ISOLATION_LEVEL;
import static java.lang.String.format;

@ThriftEnum
public enum IsolationLevel
{
SERIALIZABLE,
REPEATABLE_READ,
READ_COMMITTED,
READ_UNCOMMITTED;
SERIALIZABLE(0),
REPEATABLE_READ(1),
READ_COMMITTED(2),
READ_UNCOMMITTED(3);

private final int value;

public boolean meetsRequirementOf(IsolationLevel requirement)
{
Expand All @@ -47,6 +52,17 @@ public boolean meetsRequirementOf(IsolationLevel requirement)
throw new AssertionError("Unhandled isolation level: " + this);
}

IsolationLevel(int value)
{
this.value = value;
}

@ThriftEnumValue
public int getValue()
{
return value;
}

@Override
public String toString()
{
Expand Down

0 comments on commit 05a2771

Please sign in to comment.