sqlspec

package
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2022 License: Apache-2.0 Imports: 1 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddColumn added in v0.1.0

type AddColumn struct {
	Change
	Column *Column `spec:"column"`
}

AddColumn is a specification for a schema.AddColumn.

type Change added in v0.1.0

type Change interface {
	// contains filtered or unexported methods
}

Change is the interface implemented by change specifications. Change instances are supposed to be mappable to schema.Change instances.

type Check added in v0.3.0

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

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 schemahcl.Value `spec:"default"`
	schemahcl.DefaultExtension
}

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
}

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

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
}

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
}

IndexPart holds a specification for the index key part.

type ModifyTable added in v0.1.0

type ModifyTable struct {
	Change
	Table   string   `spec:"table"`
	Changes []Change `spec:""`
}

ModifyTable is a specification for a schema.ModifyTable.

type PrimaryKey

type PrimaryKey struct {
	Columns []*schemahcl.Ref `spec:"columns"`
	schemahcl.DefaultExtension
}

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

type Schema

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

Schema holds a specification for a Schema.

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
}

Table holds a specification for an SQL table.

type Type

type Type string

Type represents a database agnostic column type.

Jump to

Keyboard shortcuts

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