Class StaticTableOperations
- All Implemented Interfaces:
TableOperations
-
Constructor Summary
ConstructorDescriptionStaticTableOperations
(String metadataFileLocation, FileIO io) Creates a StaticTableOperations tied to a specific static version of the TableMetadataStaticTableOperations
(String metadataFileLocation, FileIO io, LocationProvider locationProvider) StaticTableOperations
(TableMetadata staticMetadata, FileIO io) StaticTableOperations
(TableMetadata staticMetadata, FileIO io, LocationProvider locationProvider) -
Method Summary
Modifier and TypeMethodDescriptionvoid
commit
(TableMetadata base, TableMetadata metadata) Replace the base table metadata with a new version.current()
Return the currently loaded table metadata, without checking for updates.io()
Returns aFileIO
to read and write table data and metadata files.Returns aLocationProvider
that supplies locations for new new data files.metadataFileLocation
(String fileName) Given the name of a metadata file, obtain the full path of that file using an appropriate base location of the implementation's choosing.refresh()
StaticTableOperations works on the same version of TableMetadata, and it will never refer a different TableMetadata object than the one it was created with.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.iceberg.TableOperations
encryption, newSnapshotId, requireStrictCleanup, temp
-
Constructor Details
-
StaticTableOperations
Creates a StaticTableOperations tied to a specific static version of the TableMetadata -
StaticTableOperations
public StaticTableOperations(String metadataFileLocation, FileIO io, LocationProvider locationProvider) -
StaticTableOperations
-
StaticTableOperations
public StaticTableOperations(TableMetadata staticMetadata, FileIO io, LocationProvider locationProvider)
-
-
Method Details
-
current
Description copied from interface:TableOperations
Return the currently loaded table metadata, without checking for updates.- Specified by:
current
in interfaceTableOperations
- Returns:
- table metadata
-
refresh
StaticTableOperations works on the same version of TableMetadata, and it will never refer a different TableMetadata object than the one it was created with.- Specified by:
refresh
in interfaceTableOperations
- Returns:
- always
current()
.
-
commit
Description copied from interface:TableOperations
Replace the base table metadata with a new version.This method should implement and document atomicity guarantees.
Implementations must check that the base metadata is current to avoid overwriting updates. Once the atomic commit operation succeeds, implementations must not perform any operations that may fail because failure in this method cannot be distinguished from commit failure.
Implementations must throw a
CommitStateUnknownException
in cases where it cannot be determined if the commit succeeded or failed. For example if a network partition causes the confirmation of the commit to be lost, the implementation should throw a CommitStateUnknownException. This is important because downstream users of this API need to know whether they can clean up the commit or not, if the state is unknown then it is not safe to remove any files. All other exceptions will be treated as if the commit has failed.- Specified by:
commit
in interfaceTableOperations
- Parameters:
base
- table metadata on which changes were basedmetadata
- new table metadata with updates
-
io
Description copied from interface:TableOperations
Returns aFileIO
to read and write table data and metadata files.- Specified by:
io
in interfaceTableOperations
-
metadataFileLocation
Description copied from interface:TableOperations
Given the name of a metadata file, obtain the full path of that file using an appropriate base location of the implementation's choosing.The file may not exist yet, in which case the path should be returned as if it were to be created by e.g.
FileIO.newOutputFile(String)
.- Specified by:
metadataFileLocation
in interfaceTableOperations
-
locationProvider
Description copied from interface:TableOperations
Returns aLocationProvider
that supplies locations for new new data files.- Specified by:
locationProvider
in interfaceTableOperations
- Returns:
- a location provider configured for the current table state
-