# VersionTable

Artifact: [androidx.media3:media3-database](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/database/VersionTable.java+class:androidx.media3.database.VersionTable)

*** ** * ** ***


```
@UnstableApi
public final class VersionTable
```

<br />

*** ** * ** ***

Utility methods for accessing versions of media library database components. This allows them to be versioned independently to the version of the containing database.

## Summary

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#FEATURE_CACHE_CONTENT_METADATA() = 1` Version of tables used for cache content metadata. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#FEATURE_CACHE_FILE_METADATA() = 2` Version of tables used for cache file metadata. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#FEATURE_EXTERNAL() = 1000` Version of tables used from external features. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#FEATURE_OFFLINE() = 0` Version of tables used for offline functionality. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#VERSION_UNSET() = -1` Returned by `https://developer.android.com/reference/androidx/media3/database/VersionTable#getVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String)` if the version is unset. |

| ### Public methods |
|---|---|
| `static int` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#getVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String)(https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html database, int feature, https://developer.android.com/reference/java/lang/String.html instanceUid)` Returns the version of a specified instance of a feature, or `https://developer.android.com/reference/androidx/media3/database/VersionTable#VERSION_UNSET()` if no version is set. |
| `static void` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#removeVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String)( https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html writableDatabase, int feature, https://developer.android.com/reference/java/lang/String.html instanceUid )` Removes the version of a specified instance of a feature. |
| `static void` | `https://developer.android.com/reference/androidx/media3/database/VersionTable#setVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String,int)( https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html writableDatabase, int feature, https://developer.android.com/reference/java/lang/String.html instanceUid, int version )` Sets the version of a specified instance of a specified feature. |

## Constants

### FEATURE_CACHE_CONTENT_METADATA

```
public static final int FEATURE_CACHE_CONTENT_METADATA = 1
```

Version of tables used for cache content metadata.

### FEATURE_CACHE_FILE_METADATA

```
public static final int FEATURE_CACHE_FILE_METADATA = 2
```

Version of tables used for cache file metadata.

### FEATURE_EXTERNAL

```
public static final int FEATURE_EXTERNAL = 1000
```

Version of tables used from external features.

### FEATURE_OFFLINE

```
public static final int FEATURE_OFFLINE = 0
```

Version of tables used for offline functionality.

### VERSION_UNSET

```
public static final int VERSION_UNSET = -1
```

Returned by `https://developer.android.com/reference/androidx/media3/database/VersionTable#getVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String)` if the version is unset.

## Public methods

### getVersion

```
public static int getVersion(SQLiteDatabase database, int feature, String instanceUid)
```

Returns the version of a specified instance of a feature, or `https://developer.android.com/reference/androidx/media3/database/VersionTable#VERSION_UNSET()` if no version is set.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html database` | The database to query. |
| `int feature` | The feature. |
| `https://developer.android.com/reference/java/lang/String.html instanceUid` | The unique identifier of the instance of the feature. |

| Returns |
|---|---|
| `int` | The version, or `https://developer.android.com/reference/androidx/media3/database/VersionTable#VERSION_UNSET()` if no version is set. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/database/DatabaseIOException` | If an error occurs executing the SQL. |

### removeVersion

```
public static void removeVersion(
    SQLiteDatabase writableDatabase,
    int feature,
    String instanceUid
)
```

Removes the version of a specified instance of a feature.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html writableDatabase` | The database to update. |
| `int feature` | The feature. |
| `https://developer.android.com/reference/java/lang/String.html instanceUid` | The unique identifier of the instance of the feature. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/database/DatabaseIOException` | If an error occurs executing the SQL. |

### setVersion

```
public static void setVersion(
    SQLiteDatabase writableDatabase,
    int feature,
    String instanceUid,
    int version
)
```

Sets the version of a specified instance of a specified feature.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html writableDatabase` | The database to update. |
| `int feature` | The feature. |
| `https://developer.android.com/reference/java/lang/String.html instanceUid` | The unique identifier of the instance of the feature. |
| `int version` | The version. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/database/DatabaseIOException` | If an error occurs executing the SQL. |