catalog

package
v1.7.3 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2020 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Argument

type Argument struct {
	Name       string
	Type       *ast.TypeName
	HasDefault bool
	Mode       ast.FuncParamMode
}

type Catalog

type Catalog struct {
	Comment       string
	DefaultSchema string
	Name          string
	Schemas       []*Schema
	SearchPath    []string
	LoadExtension func(string) *Schema

	// TODO: un-export
	Extensions map[string]struct{}
}

func New

func New(def string) *Catalog

func (*Catalog) Build

func (c *Catalog) Build(stmts []ast.Statement) error

func (*Catalog) GetTable

func (c *Catalog) GetTable(rel *ast.TableName) (Table, error)

func (*Catalog) ListFuncsByName

func (c *Catalog) ListFuncsByName(rel *ast.FuncName) ([]Function, error)

func (*Catalog) ResolveFuncCall

func (c *Catalog) ResolveFuncCall(call *ast.FuncCall) (*Function, error)

func (*Catalog) Update

func (c *Catalog) Update(stmt ast.Statement) error

type Column

type Column struct {
	Name      string
	Type      ast.TypeName
	IsNotNull bool
	IsArray   bool
	Comment   string
}

TODO: Should this just be ast Nodes?

type CompositeType

type CompositeType struct {
	Name    string
	Comment string
}

func (*CompositeType) SetComment

func (ct *CompositeType) SetComment(c string)

type Enum

type Enum struct {
	Name    string
	Vals    []string
	Comment string
}

func (*Enum) SetComment

func (e *Enum) SetComment(c string)

type Function

type Function struct {
	Name       string
	Args       []*Argument
	ReturnType *ast.TypeName
	Comment    string
	Desc       string
}

func (*Function) InArgs

func (f *Function) InArgs() []*Argument

type Schema

type Schema struct {
	Name   string
	Tables []*Table
	Types  []Type
	Funcs  []*Function

	Comment string
}

type Table

type Table struct {
	Rel     *ast.TableName
	Columns []*Column
	Comment string
}

type Type

type Type interface {
	SetComment(string)
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

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