Class AbstractIcebergTableOperations

java.lang.Object
io.trino.plugin.iceberg.catalog.AbstractIcebergTableOperations
All Implemented Interfaces:
IcebergTableOperations, org.apache.iceberg.TableOperations
Direct Known Subclasses:
AbstractMetastoreTableOperations, GlueIcebergTableOperations

@NotThreadSafe public abstract class AbstractIcebergTableOperations extends Object implements IcebergTableOperations
  • Field Details

    • METADATA_FOLDER_NAME

      protected static final String METADATA_FOLDER_NAME
      See Also:
    • STORAGE_FORMAT

      protected static final StorageFormat STORAGE_FORMAT
    • session

      protected final ConnectorSession session
    • database

      protected final String database
    • tableName

      protected final String tableName
    • owner

      protected final Optional<String> owner
    • location

      protected final Optional<String> location
    • fileIo

      protected final org.apache.iceberg.io.FileIO fileIo
    • currentMetadata

      protected org.apache.iceberg.TableMetadata currentMetadata
    • currentMetadataLocation

      protected String currentMetadataLocation
    • shouldRefresh

      protected boolean shouldRefresh
    • version

      protected int version
  • Constructor Details

  • Method Details

    • initializeFromMetadata

      public void initializeFromMetadata(org.apache.iceberg.TableMetadata tableMetadata)
      Specified by:
      initializeFromMetadata in interface IcebergTableOperations
    • current

      public org.apache.iceberg.TableMetadata current()
      Specified by:
      current in interface org.apache.iceberg.TableOperations
    • refresh

      public org.apache.iceberg.TableMetadata refresh()
      Specified by:
      refresh in interface org.apache.iceberg.TableOperations
    • refresh

      public org.apache.iceberg.TableMetadata refresh(boolean invalidateCaches)
    • commit

      public void commit(@Nullable org.apache.iceberg.TableMetadata base, org.apache.iceberg.TableMetadata metadata)
      Specified by:
      commit in interface org.apache.iceberg.TableOperations
    • getRefreshedLocation

      protected abstract String getRefreshedLocation(boolean invalidateCaches)
    • commitNewTable

      protected abstract void commitNewTable(org.apache.iceberg.TableMetadata metadata)
    • commitToExistingTable

      protected abstract void commitToExistingTable(org.apache.iceberg.TableMetadata base, org.apache.iceberg.TableMetadata metadata)
    • io

      public org.apache.iceberg.io.FileIO io()
      Specified by:
      io in interface org.apache.iceberg.TableOperations
    • metadataFileLocation

      public String metadataFileLocation(String filename)
      Specified by:
      metadataFileLocation in interface org.apache.iceberg.TableOperations
    • locationProvider

      public org.apache.iceberg.io.LocationProvider locationProvider()
      Specified by:
      locationProvider in interface org.apache.iceberg.TableOperations
    • getSchemaTableName

      protected SchemaTableName getSchemaTableName()
    • writeNewMetadata

      protected String writeNewMetadata(org.apache.iceberg.TableMetadata metadata, int newVersion)
    • refreshFromMetadataLocation

      protected void refreshFromMetadataLocation(String newLocation)
    • newTableMetadataFilePath

      protected static String newTableMetadataFilePath(org.apache.iceberg.TableMetadata meta, int newVersion)
    • metadataFileLocation

      protected static String metadataFileLocation(org.apache.iceberg.TableMetadata metadata, String filename)
    • parseVersion

      protected static int parseVersion(String metadataLocation)
    • toHiveColumns

      protected static List<Column> toHiveColumns(List<org.apache.iceberg.types.Types.NestedField> columns)