ententgo.io/ent/schema/index Index | Files

package index

import "entgo.io/ent/schema/index"

Index

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder for indexes on vertex columns and edges in the graph.

func Edges

func Edges(edges ...string) *Builder

Edges creates an index on the given vertex edge fields. Note that indexes are implemented only for SQL dialects, and does not support gremlin.

func (T) Indexes() []ent.Index {

	// Unique index of field under 2 edges.
	index.Fields("name").
		Edges("parent", "type").
		Unique(),

}

func Fields

func Fields(fields ...string) *Builder

Fields creates an index on the given vertex fields. Note that indexes are implemented only for SQL dialects, and does not support gremlin.

func (T) Indexes() []ent.Index {

	// Unique index on 2 fields.
	index.Fields("first", "last").
		Unique(),

	// Unique index of field under specific edge.
	index.Fields("name").
		Edges("parent").
		Unique(),

}

func (*Builder) Annotations

func (b *Builder) Annotations(annotations ...schema.Annotation) *Builder

Annotations adds a list of annotations to the index object to be used by codegen extensions.

func (T) Indexes() []ent.Index {

	// Partial index on name where the entity is not deleted.
	index.Fields("name").
		Annotations(entsql.Prefix(100))

}

func (*Builder) Descriptor

func (b *Builder) Descriptor() *Descriptor

Descriptor implements the ent.Descriptor interface.

func (*Builder) Edges

func (b *Builder) Edges(edges ...string) *Builder

Edges sets the fields index to be unique under the set of edges (sub-graph). For example:

func (T) Indexes() []ent.Index {

	// Unique "name" field under the "parent" edge.
	index.Fields("name").
		Edges("parent").
		Unique(),
}

func (*Builder) Fields

func (b *Builder) Fields(fields ...string) *Builder

Fields sets the fields of the index.

func (T) Indexes() []ent.Index {

	// Unique "name" and "age" fields under the "parent" edge.
	index.Edges("parent").
		Fields("name", "age").
		Unique(),

}

func (*Builder) StorageKey

func (b *Builder) StorageKey(key string) *Builder

StorageKey sets the storage key of the index. In SQL dialects, it's the index name.

func (*Builder) Unique

func (b *Builder) Unique() *Builder

Unique sets the index to be a unique index. Note that defining a uniqueness on optional fields won't prevent duplicates if one of the column contains NULL values.

type Descriptor

type Descriptor struct {
	Unique      bool                // unique index.
	Edges       []string            // edge columns.
	Fields      []string            // field columns.
	StorageKey  string              // custom index name.
	Annotations []schema.Annotation // index annotations.
}

A Descriptor for index configuration.

Source Files

index.go

Version
v0.14.4 (latest)
Published
Mar 17, 2025
Platform
linux/amd64
Imports
1 packages
Last checked
1 day ago

Tools for package owners.