Class MetastoreUtil

java.lang.Object
io.trino.plugin.hive.metastore.MetastoreUtil

public final class MetastoreUtil extends Object
  • Method Details

    • getHiveSchema

      public static Properties getHiveSchema(Table table)
    • getHiveSchema

      public static Properties getHiveSchema(Partition partition, Table table)
    • getProtectMode

      public static ProtectMode getProtectMode(Partition partition)
    • getProtectMode

      public static ProtectMode getProtectMode(Table table)
    • isAvroTableWithSchemaSet

      public static boolean isAvroTableWithSchemaSet(Table table)
    • makePartitionName

      public static String makePartitionName(Table table, Partition partition)
    • makePartitionName

      public static String makePartitionName(List<Column> partitionColumns, List<String> values)
    • toPartitionName

      public static String toPartitionName(List<String> names, List<String> values)
    • getPartitionLocation

      public static String getPartitionLocation(Table table, Optional<Partition> partition)
    • verifyOnline

      public static void verifyOnline(SchemaTableName tableName, Optional<String> partitionName, ProtectMode protectMode, Map<String,String> parameters)
    • verifyCanDropColumn

      public static void verifyCanDropColumn(HiveMetastore metastore, String databaseName, String tableName, String columnName)
    • buildInitialPrivilegeSet

      public static PrincipalPrivileges buildInitialPrivilegeSet(String tableOwner)
    • partitionKeyFilterToStringList

      public static Optional<List<String>> partitionKeyFilterToStringList(List<String> columnNames, TupleDomain<String> partitionKeysFilter, boolean assumeCanonicalPartitionKeys)
      Parameters:
      assumeCanonicalPartitionKeys - allow conversion of non-char types (eg BIGINT, timestamp) to canonical string formats. If false, non-char types will be replaced with the wildcard
      Returns:
      the domain for each partition key to either the wildcard or an equals check, or empty if TupleDomain.isNone()
    • canConvertSqlTypeToStringForParts

      public static boolean canConvertSqlTypeToStringForParts(Type type, boolean assumeCanonicalPartitionKeys)
    • sqlScalarToStringForParts

      public static String sqlScalarToStringForParts(Type type, Object value, boolean assumeCanonicalPartitionKeys, String partitionWildcardString)
      Returns:
      canonical string representation of a given value according to its type. If there isn't a valid conversion, returns ""
    • sqlScalarToString

      public static String sqlScalarToString(Type type, Object value, String nullString)
      Returns:
      canonical string representation of a given value according to its type.
      Throws:
      TrinoException - if the type is not supported
    • computePartitionKeyFilter

      public static TupleDomain<String> computePartitionKeyFilter(List<HiveColumnHandle> partitionKeys, TupleDomain<HiveColumnHandle> effectivePredicate)
      This method creates a TupleDomain for each partitionKey specified
      Returns:
      filtered version of relevant Domains in effectivePredicate.
    • adjustRowCount

      public static Map<String,String> adjustRowCount(Map<String,String> parameters, String description, long rowCountAdjustment)