Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregrateOp

type AggregrateOp int8
const (
	AgCount AggregrateOp = iota + 1
	AgSum
	AgAvg
	AgMax
	AgMin
)

func (AggregrateOp) String

func (i AggregrateOp) String() string

type Arg

type Arg struct {
	Val string
}

type Cache

type Cache struct {
	Header string
}

type ColKey

type ColKey struct {
	Name string
	Base bool
}

type Column

type Column struct {
	Col       sdata.DBColumn
	FieldName string
}

type Compiler

type Compiler struct {
	// contains filtered or unexported fields
}

func NewCompiler

func NewCompiler(s *sdata.DBSchema, c Config) (*Compiler, error)

func (*Compiler) AddRole

func (co *Compiler) AddRole(role, schema, table string, trc TRConfig) error

func (*Compiler) Compile

func (co *Compiler) Compile(query []byte, vars Variables, role string) (*QCode, error)

type Config

type Config struct {
	Vars             map[string]string
	TConfig          map[string]TConfig
	FragmentFetcher  func(name string) (string, error)
	DefaultBlock     bool
	DefaultLimit     int
	EnableInflection bool
	DBSchema         string
	// contains filtered or unexported fields
}

type DeleteConfig

type DeleteConfig struct {
	Filters []string
	Columns []string
	Block   bool
}

type Exp

type Exp struct {
	Op    ExpOp
	Joins []Join

	Left struct {
		ID    int32
		Table string
		Col   sdata.DBColumn
	}
	Right struct {
		ValType  ValType
		Val      string
		ID       int32
		Table    string
		Col      sdata.DBColumn
		ListType ValType
		ListVal  []string
		Path     []string
	}
	Children []*Exp
	// contains filtered or unexported fields
}

type ExpOp

type ExpOp int8
const (
	OpNop ExpOp = iota
	OpAnd
	OpOr
	OpNot
	OpEquals
	OpNotEquals
	OpGreaterOrEquals
	OpLesserOrEquals
	OpGreaterThan
	OpLesserThan
	OpIn
	OpNotIn
	OpLike
	OpNotLike
	OpILike
	OpNotILike
	OpSimilar
	OpNotSimilar
	OpRegex
	OpNotRegex
	OpIRegex
	OpNotIRegex
	OpContains
	OpContainedIn
	OpHasKey
	OpHasKeyAny
	OpHasKeyAll
	OpIsNull
	OpIsNotNull
	OpTsQuery
	OpFalse
	OpNotDistinct
	OpDistinct
	OpEqualsTrue
	OpNotEqualsTrue
)

func (ExpOp) String

func (t ExpOp) String() string

type Filter

type Filter struct {
	*Exp
}

type Function

type Function struct {
	Name      string
	Col       sdata.DBColumn
	FieldName string
	Alias     string
	// contains filtered or unexported fields
}

type InsertConfig

type InsertConfig struct {
	Columns []string
	Presets map[string]string
	Block   bool
}

type Join

type Join struct {
	Filter *Exp
	Rel    sdata.DBRel
}

type MColumn

type MColumn struct {
	Col       sdata.DBColumn
	FieldName string
	Value     string
}

type MRColumn

type MRColumn struct {
	Col  sdata.DBColumn
	VCol sdata.DBColumn
}

type MTable

type MTable struct {
	Ti sdata.DBTable
}

type MType

type MType uint8
const (
	MTInsert MType = iota + 1
	MTUpdate
	MTUpsert
	MTDelete
	MTConnect
	MTDisconnect
	MTNone
	MTKeyword
)

func (MType) String

func (i MType) String() string

type Mutate

type Mutate struct {
	ID        int32
	ParentID  int32
	DependsOn map[int32]struct{}
	Type      MType
	// CType     uint8
	Key   string
	Path  []string
	Val   json.RawMessage
	Data  map[string]json.RawMessage
	Array bool
	Cols  []MColumn
	RCols []MRColumn
	Ti    sdata.DBTable
	Rel   sdata.DBRel
	Where Filter
	Multi bool
	// contains filtered or unexported fields
}

type Order

type Order int8
const (
	OrderAsc Order = iota + 1
	OrderDesc
	OrderAscNullsFirst
	OrderAscNullsLast
	OrderDescNullsFirst
	OrderDescNullsLast
)

type OrderBy

type OrderBy struct {
	Col   sdata.DBColumn
	Order Order
}

type Paging

type Paging struct {
	Type      PagingType
	LimitVar  string
	Limit     int32
	OffsetVar string
	Offset    int32
	Cursor    bool
	NoLimit   bool
}

type PagingType

type PagingType int8
const (
	PTOffset PagingType = iota
	PTForward
	PTBackward
)

func (PagingType) String

func (i PagingType) String() string

type QCode

type QCode struct {
	Type      QType
	SType     QType
	Name      string
	ActionVar string
	Selects   []Select
	Vars      Variables
	Roots     []int32

	Mutates  []Mutate
	MUnions  map[string][]int32
	Schema   *sdata.DBSchema
	Remotes  int32
	Metadata allow.Metadata
	Cache    Cache
	// contains filtered or unexported fields
}

type QType

type QType int8
const (
	QTUnknown QType = iota
	QTQuery
	QTSubscription
	QTMutation
	QTInsert
	QTUpdate
	QTDelete
	QTUpsert
)

func GetQType

func GetQType(gql string) (QType, string)

func (QType) String

func (i QType) String() string

type QueryConfig

type QueryConfig struct {
	Limit            int
	Filters          []string
	Columns          []string
	DisableFunctions bool
	Block            bool
}

type SelType

type SelType int8
const (
	SelTypeNone SelType = iota
	SelTypeUnion
	SelTypeMember
)

func (SelType) String

func (i SelType) String() string

type Select

type Select struct {
	ID         int32
	ParentID   int32
	Type       SelType
	Singular   bool
	Typename   bool
	Table      string
	FieldName  string
	Cols       []Column
	BCols      []Column
	Args       map[string]Arg
	Funcs      []Function
	Where      Filter
	OrderBy    []OrderBy
	GroupCols  bool
	DistinctOn []sdata.DBColumn
	Paging     Paging
	Children   []int32
	SkipRender SkipType
	Ti         sdata.DBTable
	Rel        sdata.DBRel
	Joins      []Join
	// contains filtered or unexported fields
}

type SkipType

type SkipType int8
const (
	SkipTypeNone SkipType = iota
	SkipTypeUserNeeded
	SkipTypeRemote
)

func (SkipType) String

func (i SkipType) String() string

type TConfig

type TConfig struct {
	OrderBy map[string][][2]string
}

type TRConfig

type TRConfig struct {
	Query  QueryConfig
	Insert InsertConfig
	Update UpdateConfig
	Upsert UpsertConfig
	Delete DeleteConfig
}

type TableInfo

type TableInfo struct {
	sdata.DBTable
}

type UpdateConfig

type UpdateConfig struct {
	Filters []string
	Columns []string
	Presets map[string]string
	Block   bool
}

type UpsertConfig

type UpsertConfig struct {
	Filters []string
	Columns []string
	Presets map[string]string
	Block   bool
}

type ValType

type ValType int8
const (
	ValStr ValType = iota + 1
	ValNum
	ValBool
	ValList
	ValVar
	ValNone
)

func (ValType) String

func (i ValType) String() string

type Variables

type Variables map[string]json.RawMessage