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 if you specified a working keyspace when you created the Default: The working keyspace set when you created the |
|
|
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.authentication import UsernamePasswordTokenProvider
from astrapy.constants import Environment
from astrapy.info import (
ColumnType,
CreateTypeDefinition,
TableScalarColumnTypeDescriptor,
)
# Get a database
client = DataAPIClient(environment=Environment.HCD)
database = client.get_database(
"API_ENDPOINT",
token=UsernamePasswordTokenProvider("USERNAME", "PASSWORD"),
keyspace="KEYSPACE_NAME",
)
# 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.authentication import UsernamePasswordTokenProvider
from astrapy.constants import Environment
from astrapy.info import (
ColumnType,
CreateTypeDefinition,
TableScalarColumnTypeDescriptor,
)
# Get a database
client = DataAPIClient(environment=Environment.HCD)
database = client.get_database(
"API_ENDPOINT",
token=UsernamePasswordTokenProvider("USERNAME", "PASSWORD"),
keyspace="KEYSPACE_NAME",
)
# 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.