Create a user-defined type (UDT) (Python)
Creates a user-defined type (UDT) to use in a table.
|
Ready to write code? See the examples for this method to get started. If you are new to the Data API, check out the quickstart. |
Result
Creates a user-defined type with the specified definition.
Does not return anything.
Parameters
Use the create_type method, which belongs to the astrapy.Database class.
Method signature
create_type(
name: str,
*,
definition: CreateTypeDefinition | dict[str, Any],
keyspace: str,
if_not_exists: bool,
table_admin_timeout_ms: int,
request_timeout_ms: int,
timeout_ms: int,
) -> None
| Name | Type | Summary |
|---|---|---|
|
|
The name of the new user-defined type. The name must be unique within the keyspace. |
|
|
The definition for the new user-defined type. The definition describes the name and data type of each field in the user-defined type. You can use any supported data type, except for maps, lists, sets, or other user-defined types. See the examples for usage. |
|
|
Optional. The keyspace in which to create the user-defined type. Default: The working keyspace for the database.
This is |
|
|
Optional. Whether the command should silently succeed even if a user-defined type with the given name already exists in the keyspace and no new type was created. This option only checks type names. It does not check type definitions. Default: false |
|
|
A timeout, in milliseconds, to impose on the underlying API request.
If not provided, the Table defaults apply.
This parameter is aliased as |
Examples
The following examples demonstrate how to create a user-defined type.
Create a user-defined type
from astrapy import DataAPIClient
from astrapy.info import (
ColumnType,
CreateTypeDefinition,
TableScalarColumnTypeDescriptor,
)
# Get a database
client = DataAPIClient()
database = client.get_database(
"API_ENDPOINT", token="APPLICATION_TOKEN"
)
# Create a user-defined type
type_definition = CreateTypeDefinition(
fields={
"name": TableScalarColumnTypeDescriptor(ColumnType.TEXT),
"is_active": TableScalarColumnTypeDescriptor(ColumnType.BOOLEAN),
"date_joined": TableScalarColumnTypeDescriptor(ColumnType.DATE),
},
)
database.create_type("member", definition=type_definition)
Create a user-defined type only if the type does not exist
Use this option to silently do nothing if a user-defined type with the specified name already exists.
This option only checks type names. It doesn’t check the definition of any existing types.
from astrapy import DataAPIClient
from astrapy.info import (
ColumnType,
CreateTypeDefinition,
TableScalarColumnTypeDescriptor,
)
# Get a database
client = DataAPIClient()
database = client.get_database(
"API_ENDPOINT", token="APPLICATION_TOKEN"
)
# Create a user-defined type
type_definition = CreateTypeDefinition(
fields={
"name": TableScalarColumnTypeDescriptor(ColumnType.TEXT),
"is_active": TableScalarColumnTypeDescriptor(ColumnType.BOOLEAN),
"date_joined": TableScalarColumnTypeDescriptor(ColumnType.DATE),
},
)
database.create_type(
"member", definition=type_definition, if_not_exists=True
)
Client reference
For more information, see the client reference.