List table metadata
Tables with the Data API are currently in public preview. Development is ongoing, and the features and functionality are subject to change. Astra DB Serverless, and the use of such, is subject to the DataStax Preview Terms. |
Gets information about the tables in a keyspace.
Method signature
-
Python
-
TypeScript
-
Java
-
curl
The following method belongs to the astrapy.Database
class.
list_tables(
*,
keyspace: str,
table_admin_timeout_ms: int,
request_timeout_ms: int,
timeout_ms: int,
) -> list[ListTableDescriptor]
The following method belongs to the Db
class.
async listTables(
options?: {
nameOnly?: false,
keyspace?: string,
timeout?: number | TimeoutDescriptor,
},
): TableDescriptor[]
The following methods belong to the com.datastax.astra.client.databases.Database
class.
List<TableDescriptor> listTables()
List<TableDescriptor> listTables(ListTablesOptions listTableOptions)
curl -sS -L -X POST "ASTRA_DB_API_ENDPOINT/api/json/v1/ASTRA_DB_KEYSPACE" \
--header "Token: ASTRA_DB_APPLICATION_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"listTables": {
"options": {
"explain": true
}
}
}'
Result
-
Python
-
TypeScript
-
Java
-
curl
Returns an unordered list of ListTableDescriptor
objects that describe each table.
Example response:
[
BaseTableDescriptor(
name='fighters',
definition=BaseTableDefinition(
columns=[fighter_id,age,name,nationality,skill_levels],
primary_key=TablePrimaryKeyDescriptor[(fighter_id)]
),
raw_descriptor=...
),
BaseTableDescriptor(
name='games',
definition=BaseTableDefinition(
columns=[match_id,round,fighters,m_vector,score,when,winner],
primary_key=TablePrimaryKeyDescriptor[(match_id)round:a]
),
raw_descriptor=...
)
]
Returns a promise that resolves to an unordered list of FullTableInfo
objects that describe each table.
Example resolved response:
[
{
name: 'games',
definition: {
columns: {
matchId: { type: 'text' },
round: { type: 'tinyint' },
fighters: { type: 'set', valueType: 'uuid' },
mVector: { type: 'vector', dimension: 3 },
score: { type: 'int' },
when: { type: 'timestamp' },
winner: { type: 'text' }
},
primaryKey: {
partitionBy: [ 'matchId' ],
partitionSort: { round: 1 }
}
}
}
]
Returns an unordered list of TableDescriptor
objects that describe each table.
The status.tables
field in the response describes each table.
Example response:
{
"status": {
"tables": [
{
"name": "customers",
"definition": {
"columns": {
"order_date": {
"type": "timestamp"
},
"preferences": {
"type": "map",
"keyType": "text",
"valueType": "text"
},
"is_active": {
"type": "boolean"
},
"user_id": {
"type": "uuid"
},
"name": {
"type": "text"
},
"login_attempts": {
"type": "set",
"valueType": "int"
},
"photo": {
"type": "blob"
},
"salary": {
"type": "decimal"
},
"order_id": {
"type": "uuid"
},
"age": {
"type": "int"
},
"tags": {
"type": "list",
"valueType": "text"
}
},
"primaryKey": {
"partitionBy": [
"user_id"
],
"partitionSort": {
"order_id": 1,
"order_date": -1
}
}
}
}
]
}
}
Parameters
-
Python
-
TypeScript
-
Java
-
curl
Name | Type | Summary |
---|---|---|
|
|
The keyspace to be inspected. If not specified, the database’s working keyspace is used. |
|
|
A timeout, in milliseconds, for the underlying HTTP request.
If not provided, the |
Name | Type | Summary |
---|---|---|
|
|
The options for this operation. |
Options (ListTablesOptions
):
Name | Type | Summary |
---|---|---|
|
|
If false or undefined, the response includes table names and metadata. If true, the response includes only table names. |
|
|
The keyspace to be inspected. If not specified, the database’s working keyspace is used. |
|
|
The client-side timeout for this operation. |
Name | Type | Summary |
---|---|---|
|
Specialization of the operation, including |
Name | Type | Summary |
---|---|---|
|
|
The Data API command to get a list of tables in a keyspace in a Serverless (Vector) database. |
|
|
Whether to include table metadata in addition to table names in the response. |
Examples
The following examples demonstrate how to list table metadata.
List table metadata
-
Python
-
TypeScript
-
Java
-
curl
from astrapy import DataAPIClient
# Get a database
client = DataAPIClient("ASTRA_DB_APPLICATION_TOKEN")
database = client.get_database("ASTRA_DB_API_ENDPOINT")
# List table metadata
result = database.list_tables()
print(result)
import { DataAPIClient } from '@datastax/astra-db-ts';
// Get a database
const client = new DataAPIClient('ASTRA_DB_APPLICATION_TOKEN');
const database = client.db('ASTRA_DB_API_ENDPOINT');
// List table metadata
(async function () {
const result = await database.listTables();
console.log(result);
})();
package com.example;
import com.datastax.astra.client.DataAPIClient;
import com.datastax.astra.client.databases.Database;
import com.datastax.astra.client.tables.definition.TableDescriptor;
import java.util.List;
public class ListTableMetadata {
public static void main(String[] args) {
// Get a database
Database database = new DataAPIClient("ASTRA_DB_APPLICATION_TOKEN")
.getDatabase("ASTRA_DB_API_ENDPOINT");
// List table metadata
List<TableDescriptor> result = database.listTables();
System.out.println(result);
}
}
curl -sS -L -X POST "ASTRA_DB_API_ENDPOINT/api/json/v1/ASTRA_DB_KEYSPACE" \
--header "Token: ASTRA_DB_APPLICATION_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"listTables": {
"options": {
"explain": true
}
}
}'
List table metadata and specify the keyspace
By default, this method uses the working keyspace of your database. If you want to use a different keyspace, you must specify the keyspace.
-
Python
-
TypeScript
-
Java
-
curl
from astrapy import DataAPIClient
# Get a database
client = DataAPIClient("ASTRA_DB_APPLICATION_TOKEN")
database = client.get_database("ASTRA_DB_API_ENDPOINT")
# List table metadata
result = database.list_tables(keyspace="KEYSPACE_NAME")
print(result)
import { DataAPIClient } from '@datastax/astra-db-ts';
// Get a database
const client = new DataAPIClient('ASTRA_DB_APPLICATION_TOKEN');
const database = client.db('ASTRA_DB_API_ENDPOINT');
// List table metadata
(async function () {
const result = await database.listTables({
keyspace: 'KEYSPACE_NAME',
});
console.log(result);
})();
package com.example;
import com.datastax.astra.client.DataAPIClient;
import com.datastax.astra.client.databases.Database;
import com.datastax.astra.client.tables.commands.options.ListTablesOptions;
import com.datastax.astra.client.tables.definition.TableDescriptor;
import java.util.List;
public class ListTableMetadata {
public static void main(String[] args) {
// Get a database
Database database = new DataAPIClient("ASTRA_DB_APPLICATION_TOKEN")
.getDatabase("ASTRA_DB_API_ENDPOINT");
// List table metadata
ListTablesOptions options = new ListTablesOptions()
.keyspace("KEYSPACE_NAME");
List<TableDescriptor> result = database.listTables(options);
System.out.println(result);
}
}
This option has no literal equivalent in HTTP. Instead, you always specify the keyspace in the path.
Client reference
-
Python
-
TypeScript
-
Java
-
curl
For more information, see the client reference.
For more information, see the client reference.
For more information, see the client reference.
Client reference documentation is not applicable for HTTP.