type

How to create a user-defined type (UDT).

Synopsis

schema.type('*UDTName*').
  [ ifNotExists(). ]
  [ property('*propertyName*', *propertyType*). ]
  [ create() | describe() | drop() ]

Description

A user-defined type (UDT) specifies a data type that can be used by vertex labels and edge labels in DataStax Graph (DSG). UDTs can also use other UDTs in their definition. For more basic information on UDTs, see the CQL documentation.

  • ifNotExists

    Check for lack of current existence with ifNotExists() before creating a newuser-defined type.

  • property

    Properties can be defined for UDTs. Allowed characters for the name are alphabetical or underscore.

  • create

    Create a UDT.

  • describe

    Describe a UDT.

  • drop

    Drop a UDT.

Examples

Create a user-defined type address:

schema.type('address').
  ifNotExists().
  property('address1', Text).
  property('address2', Text).
  property('city_code', Text).
  property('state_code', Text).
  property('zip_code', Text).
  create()

This UDT is created if it doesn’t already exist, and has several properties.

Create a user-defined type location_details that uses the UDT address:

schema.type('location_details').
  ifNotExists().
  property('loc_address', frozen(typeOf('address'))).
  property('telephone', listOf(Text)).
  create()

This UDT is created if it doesn’t already exist. Notice typeOf to use another UDT.

Get the schema for all UDTs using the describe() command:

schema.types().describe()

The schema returned can be used to recreate the UDT.

Get the schema for a UDT using the describe() command:

schema.type('address').describe()

Remove a UDT with the drop() command:

schema.type('full_name').drop()

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com