model

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2017 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ColumnContainer

type ColumnContainer interface {
	AddColumns(...string)
	Columns() chan string
}

ColumnContainer is the interface for objects that can contain column names

type ColumnType

type ColumnType int

ColumnType describes the possible types that a column may take

const (
	ColumnTypeInvalid ColumnType = iota
	ColumnTypeBit
	ColumnTypeTinyInt
	ColumnTypeSmallInt
	ColumnTypeMediumInt
	ColumnTypeInt
	ColumnTypeInteger
	ColumnTypeBigInt
	ColumnTypeReal
	ColumnTypeDouble
	ColumnTypeFloat
	ColumnTypeDecimal
	ColumnTypeNumeric
	ColumnTypeDate
	ColumnTypeTime
	ColumnTypeTimestamp
	ColumnTypeDateTime
	ColumnTypeYear
	ColumnTypeChar
	ColumnTypeVarChar
	ColumnTypeBinary
	ColumnTypeVarBinary
	ColumnTypeTinyBlob
	ColumnTypeBlob
	ColumnTypeMediumBlob
	ColumnTypeLongBlob
	ColumnTypeTinyText
	ColumnTypeText
	ColumnTypeMediumText
	ColumnTypeLongText

	ColumnTypeMax
)

List of possible ColumnType values

func (ColumnType) String

func (c ColumnType) String() string

type Database

type Database interface {
	Stmt

	Name() string
	IsIfNotExists() bool
	SetIfNotExists(bool)
	// contains filtered or unexported methods
}

Database represents a database definition

func NewDatabase

func NewDatabase(n string) Database

NewDatabase creates a new database mode with th given name

type Index

type Index interface {
	Stmt
	ColumnContainer

	HasName() bool
	HasSymbol() bool
	Name() string
	Reference() Reference
	SetReference(Reference)
	SetSymbol(string)
	SetType(IndexType)
	SetName(string)
	Symbol() string
	IsBtree() bool
	IsHash() bool
	IsPrimaryKey() bool
	IsNormal() bool
	IsUnique() bool
	IsFullText() bool
	IsSpatial() bool
	IsForeginKey() bool
}

Index describes an index on a table.

func NewIndex

func NewIndex(kind IndexKind) Index

NewIndex creates a new index with the given index kind.

type IndexKind

type IndexKind int

IndexKind describes the kind (purpose) of an index

const (
	IndexKindInvalid IndexKind = iota
	IndexKindPrimaryKey
	IndexKindNormal
	IndexKindUnique
	IndexKindFullText
	IndexKindSpatial
	IndexKindForeignKey
)

List of possible IndexKind.

type IndexType

type IndexType int

IndexType describes the type (algorithm) used by the index.

const (
	IndexTypeNone IndexType = iota
	IndexTypeBtree
	IndexTypeHash
)

List of possible index types

type Length

type Length interface {
	HasDecimal() bool
	Decimal() string
	SetDecimal(string)
	Length() string
}

Length describes the possible length constraint of a column

func NewLength

func NewLength(v string) Length

NewLength creates a new Length which describes the length of a column

type NullState

type NullState int

NullState describes the possible NULL constraint of a column

const (
	NullStateNone NullState = iota
	NullStateNull
	NullStateNotNull
)

List of possible NullStates. NullStateNone specifies that there is no NULL constraint. NullStateNull explicitly specifies that the column may be NULL. NullStateNotNull specifies that the column may not be NULL

type Reference

type Reference interface {
	ColumnContainer

	String() string
	TableName() string
	OnDelete() ReferenceOption
	OnUpdate() ReferenceOption
	SetTableName(string)
	SetMatch(ReferenceMatch)
	SetOnDelete(ReferenceOption)
	SetOnUpdate(ReferenceOption)
	MatchFull() bool
	MatchPartial() bool
	MatchSimple() bool
}

Reference describes a possible reference from one table to another

func NewReference

func NewReference() Reference

NewReference creates a reference constraint

type ReferenceMatch

type ReferenceMatch int

ReferenceMatch describes the mathing method of a reference

const (
	ReferenceMatchNone ReferenceMatch = iota
	ReferenceMatchFull
	ReferenceMatchPartial
	ReferenceMatchSimple
)

List of possible ReferenceMatch values

type ReferenceOption

type ReferenceOption int

ReferenceOption describes the actions that could be taken when a table/column referered by the reference has been deleted

const (
	ReferenceOptionNone ReferenceOption = iota
	ReferenceOptionRestrict
	ReferenceOptionCascade
	ReferenceOptionSetNull
	ReferenceOptionNoAction
)

List of possible ReferenceOption values

type Stmt

type Stmt interface {
	ID() string
}

Stmt is the interface to define a statement

type Stmts

type Stmts []Stmt

Stmts describes a list of statements

func (Stmts) Lookup

func (s Stmts) Lookup(id string) (Stmt, bool)

Lookup looks for a statement with the given ID

type Table

type Table interface {
	Stmt

	Name() string
	IsTemporary() bool
	SetTemporary(bool)
	IsIfNotExists() bool
	SetIfNotExists(bool)

	AddColumn(TableColumn)
	Columns() chan TableColumn
	AddIndex(Index)
	Indexes() chan Index
	AddOption(TableOption)
	Options() chan TableOption

	LookupColumn(string) (TableColumn, bool)
	LookupIndex(string) (Index, bool)
}

Table describes a table model

func NewTable

func NewTable(name string) Table

NewTable create a new table with the given name

type TableColumn

type TableColumn interface {
	Stmt

	Name() string
	Type() ColumnType
	SetType(ColumnType)

	HasLength() bool
	Length() Length
	SetLength(Length)
	HasCharacterSet() bool
	CharacterSet() string
	HasCollation() bool
	Collation() string
	HasDefault() bool
	Default() string
	IsQuotedDefault() bool
	SetDefault(string, bool)
	HasComment() bool
	Comment() string
	SetComment(string)

	NullState() NullState
	SetNullState(NullState)

	IsAutoIncrement() bool
	SetAutoIncrement(bool)
	IsBinary() bool
	SetBinary(bool)
	IsKey() bool
	SetKey(bool)
	IsPrimary() bool
	SetPrimary(bool)
	IsUnique() bool
	SetUnique(bool)
	IsUnsigned() bool
	SetUnsigned(bool)
	IsZeroFill() bool
	SetZeroFill(bool)
}

TableColumn describes a model object that describes a column definition of a table

func NewTableColumn

func NewTableColumn(name string) TableColumn

NewTableColumn creates a new TableColumn with the given name

type TableOption

type TableOption interface {
	Stmt
	Key() string
	Value() string
}

TableOption describes a possible table option, such as `ENGINE=InnoDB`

func NewTableOption

func NewTableOption(k, v string) TableOption

NewTableOption creates a new table option with the given name and value

Jump to

Keyboard shortcuts

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