index

package
v0.14.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2024 License: Apache-2.0 Imports: 1 Imported by: 323

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

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 added in v0.9.0

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL