# VersionTable

# 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)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/database/VersionTable "View this page in Java")

<br />

```
@UnstableApi
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                                    |
|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FEATURE_CACHE_CONTENT_METADATA](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#FEATURE_CACHE_CONTENT_METADATA())` = 1` Version of tables used for cache content metadata.                                                                                                                           |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FEATURE_CACHE_FILE_METADATA](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#FEATURE_CACHE_FILE_METADATA())` = 2` Version of tables used for cache file metadata.                                                                                                                                    |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FEATURE_EXTERNAL](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#FEATURE_EXTERNAL())` = 1000` Version of tables used from external features.                                                                                                                                                        |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FEATURE_OFFLINE](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#FEATURE_OFFLINE())` = 0` Version of tables used for offline functionality.                                                                                                                                                          |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [VERSION_UNSET](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#VERSION_UNSET())` = -1` Returned by[getVersion](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#getVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String))if the version is unset. |

|                                    ### Public functions                                     |
|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `java-static `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)   | [getVersion](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#getVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String))`(database: `[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html)`!, feature: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, instanceUid: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!)` Returns the version of a specified instance of a feature, or[VERSION_UNSET](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#VERSION_UNSET())if no version is set. |
| `java-static `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [removeVersion](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#removeVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String))`(` ` writableDatabase: `[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html)`!,` ` feature: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`,` ` instanceUid: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` `)` Removes the version of a specified instance of a feature.                                                                                                                   |
| `java-static `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [setVersion](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#setVersion(android.database.sqlite.SQLiteDatabase,int,java.lang.String,int))`(` ` writableDatabase: `[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html)`!,` ` feature: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`,` ` instanceUid: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!,` ` version: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) `)` Sets the version of a specified instance of a specified feature.                     |

## Constants

### FEATURE_CACHE_CONTENT_METADATA

```
const val FEATURE_CACHE_CONTENT_METADATA = 1: Int
```

Version of tables used for cache content metadata.  

### FEATURE_CACHE_FILE_METADATA

```
const val FEATURE_CACHE_FILE_METADATA = 2: Int
```

Version of tables used for cache file metadata.  

### FEATURE_EXTERNAL

```
const val FEATURE_EXTERNAL = 1000: Int
```

Version of tables used from external features.  

### FEATURE_OFFLINE

```
const val FEATURE_OFFLINE = 0: Int
```

Version of tables used for offline functionality.  

### VERSION_UNSET

```
const val VERSION_UNSET = -1: Int
```

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

## Public functions

### getVersion

```
java-static fun getVersion(database: SQLiteDatabase!, feature: Int, instanceUid: String!): Int
```

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

|                                                      Parameters                                                      |
|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|
| `database: `[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html)`!` | The database to query.                                |
| `feature: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                               | The feature.                                          |
| `instanceUid: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!`                  | The unique identifier of the instance of the feature. |

|                                   Returns                                   |
|-----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The version, or[VERSION_UNSET](https://developer.android.com/reference/kotlin/androidx/media3/database/VersionTable#VERSION_UNSET())if no version is set. |

|                                                                   Throws                                                                    |
|---------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
| [androidx.media3.database.DatabaseIOException](https://developer.android.com/reference/kotlin/androidx/media3/database/DatabaseIOException) | If an error occurs executing the SQL. |

### removeVersion

```
java-static fun removeVersion(
    writableDatabase: SQLiteDatabase!,
    feature: Int,
    instanceUid: String!
): Unit
```

Removes the version of a specified instance of a feature.  

|                                                          Parameters                                                          |
|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|
| `writableDatabase: `[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html)`!` | The database to update.                               |
| `feature: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                       | The feature.                                          |
| `instanceUid: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!`                          | The unique identifier of the instance of the feature. |

|                                                                   Throws                                                                    |
|---------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
| [androidx.media3.database.DatabaseIOException](https://developer.android.com/reference/kotlin/androidx/media3/database/DatabaseIOException) | If an error occurs executing the SQL. |

### setVersion

```
java-static fun setVersion(
    writableDatabase: SQLiteDatabase!,
    feature: Int,
    instanceUid: String!,
    version: Int
): Unit
```

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

|                                                          Parameters                                                          |
|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|
| `writableDatabase: `[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html)`!` | The database to update.                               |
| `feature: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                       | The feature.                                          |
| `instanceUid: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!`                          | The unique identifier of the instance of the feature. |
| `version: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                       | The version.                                          |

|                                                                   Throws                                                                    |
|---------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
| [androidx.media3.database.DatabaseIOException](https://developer.android.com/reference/kotlin/androidx/media3/database/DatabaseIOException) | If an error occurs executing the SQL. |