sqlspec

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2024 License: Apache-2.0 Imports: 5 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MightHeredoc added in v0.26.0

func MightHeredoc(s string) string

MightHeredoc returns the string as an indented heredoc if it has multiple lines.

Types

type Check added in v0.3.0

type Check struct {
	Name string `spec:",name"`
	Expr string `spec:"expr"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Check holds a specification for a check constraint on a table.

type Column

type Column struct {
	Name    string          `spec:",name"`
	Null    bool            `spec:"null"`
	Type    *schemahcl.Type `spec:"type"`
	Default cty.Value       `spec:"default"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Column holds a specification for a column in an SQL table.

type ForeignKey

type ForeignKey struct {
	Symbol     string           `spec:",name"`
	Columns    []*schemahcl.Ref `spec:"columns"`
	RefColumns []*schemahcl.Ref `spec:"ref_columns"`
	OnUpdate   *schemahcl.Ref   `spec:"on_update"`
	OnDelete   *schemahcl.Ref   `spec:"on_delete"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

ForeignKey holds a specification for the Foreign key of a table.

type Func added in v0.15.0

type Func struct {
	Name      string         `spec:",name"`
	Qualifier string         `spec:",qualifier"`
	Schema    *schemahcl.Ref `spec:"schema"`
	Args      []*FuncArg     `spec:"arg"`
	Lang      cty.Value      `spec:"lang"`
	// The definition and the return type are appended as additional
	// attribute by the spec creator to marshal it after the arguments.
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Func holds the specification for a function.

func (*Func) Label added in v0.15.0

func (f *Func) Label() string

Label returns the defaults label used for the function resource.

func (*Func) QualifierLabel added in v0.15.0

func (f *Func) QualifierLabel() string

QualifierLabel returns the qualifier label used for the function resource, if any.

func (*Func) SchemaRef added in v0.15.0

func (f *Func) SchemaRef() *schemahcl.Ref

SchemaRef returns the schema reference for the function.

func (*Func) SetQualifier added in v0.15.0

func (f *Func) SetQualifier(q string)

SetQualifier sets the qualifier label used for the function resource.

type FuncArg added in v0.15.0

type FuncArg struct {
	Name    string          `spec:",name"`
	Type    *schemahcl.Type `spec:"type"`
	Default cty.Value       `spec:"default"`
	// Optional attributes such as mode are added by the driver,
	// as their definition can be either a string or an enum (ref).
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

FuncArg holds the specification for a function argument.

type Index

type Index struct {
	Name    string           `spec:",name"`
	Unique  bool             `spec:"unique,omitempty"`
	Parts   []*IndexPart     `spec:"on"`
	Columns []*schemahcl.Ref `spec:"columns"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Index holds a specification for the index key of a table.

type IndexPart added in v0.3.2

type IndexPart struct {
	Desc   bool           `spec:"desc,omitempty"`
	Column *schemahcl.Ref `spec:"column"`
	Expr   string         `spec:"expr,omitempty"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

IndexPart holds a specification for the index key part.

type PrimaryKey

type PrimaryKey struct {
	Parts   []*IndexPart     `spec:"on"`
	Columns []*schemahcl.Ref `spec:"columns"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

PrimaryKey holds a specification for the primary key of a table.

type Schema

type Schema struct {
	Name string `spec:"name,name"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Schema holds a specification for a Schema.

type Sequence added in v0.20.0

type Sequence struct {
	Name      string         `spec:",name"`
	Qualifier string         `spec:",qualifier"`
	Schema    *schemahcl.Ref `spec:"schema"`
	// Type, Start, Increment, Min, Max, Cache, Cycle
	// are optionally added to the sequence definition.
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Sequence holds a specification for a Sequence.

func (*Sequence) Label added in v0.20.0

func (s *Sequence) Label() string

Label returns the defaults label used for the sequence resource.

func (*Sequence) QualifierLabel added in v0.20.0

func (s *Sequence) QualifierLabel() string

QualifierLabel returns the qualifier label used for the sequence resource, if any.

func (*Sequence) SchemaRef added in v0.20.0

func (s *Sequence) SchemaRef() *schemahcl.Ref

SchemaRef returns the schema reference for the sequence.

func (*Sequence) SetQualifier added in v0.20.0

func (s *Sequence) SetQualifier(q string)

SetQualifier sets the qualifier label used for the sequence resource.

type Table

type Table struct {
	Name        string         `spec:",name"`
	Qualifier   string         `spec:",qualifier"`
	Schema      *schemahcl.Ref `spec:"schema"`
	Columns     []*Column      `spec:"column"`
	PrimaryKey  *PrimaryKey    `spec:"primary_key"`
	ForeignKeys []*ForeignKey  `spec:"foreign_key"`
	Indexes     []*Index       `spec:"index"`
	Checks      []*Check       `spec:"check"`
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Table holds a specification for an SQL table.

func (*Table) Label added in v0.13.2

func (t *Table) Label() string

Label returns the defaults label used for the table resource.

func (*Table) QualifierLabel added in v0.13.2

func (t *Table) QualifierLabel() string

QualifierLabel returns the qualifier label used for the table resource, if any.

func (*Table) SchemaRef added in v0.13.2

func (t *Table) SchemaRef() *schemahcl.Ref

SchemaRef returns the schema reference for the table.

func (*Table) SetQualifier added in v0.13.2

func (t *Table) SetQualifier(q string)

SetQualifier sets the qualifier label used for the table resource.

type Trigger added in v0.17.0

type Trigger struct {
	Name string         `spec:",name"`
	On   *schemahcl.Ref `spec:"on"` // A table or a view.
	// Attributes and blocks are different for each driver.
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

Trigger holds the specification for a trigger.

type View added in v0.12.1

type View struct {
	Name      string         `spec:",name"`
	Qualifier string         `spec:",qualifier"`
	Schema    *schemahcl.Ref `spec:"schema"`
	Columns   []*Column      `spec:"column"`
	// Indexes on (materialized) views are supported
	// by some databases, like PostgreSQL.
	Indexes []*Index `spec:"index"`
	// The definition is appended as additional attribute
	// by the spec creator to marshal it after the columns.
	schemahcl.DefaultExtension
	Range *hcl.Range `spec:",range"`
}

View holds a specification for an SQL view.

func (*View) Label added in v0.13.2

func (v *View) Label() string

Label returns the defaults label used for the view resource.

func (*View) QualifierLabel added in v0.13.2

func (v *View) QualifierLabel() string

QualifierLabel returns the qualifier label used for the view resource, if any.

func (*View) SchemaRef added in v0.13.2

func (v *View) SchemaRef() *schemahcl.Ref

SchemaRef returns the schema reference for the view.

func (*View) SetQualifier added in v0.13.2

func (v *View) SetQualifier(q string)

SetQualifier sets the qualifier label used for the view resource.

Jump to

Keyboard shortcuts

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