qcode

package
v0.21.9 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

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 {
	Type  ArgType
	DType string
	Name  string
	Val   string
	Col   sdata.DBColumn
}

type ArgType added in v0.21.9

type ArgType int8
const (
	ArgTypeVal ArgType = iota
	ArgTypeVar
	ArgTypeCol
)

type Cache added in v0.16.44

type Cache struct {
	Header string
}

type ColKey added in v0.15.70

type ColKey struct {
	Name string
	Base bool
}

type Column

type Column struct {
	Col         sdata.DBColumn
	FieldFilter Filter
	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, namespace string) (*QCode, error)

type Config

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

type Constraints added in v0.17.16

type Constraints map[string]interface{}

type DeleteConfig

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

type Exp

type Exp struct {
	Op    ExpOp
	Joins []Join
	Order
	OrderBy bool

	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
	OpHasInCommon
	OpHasKey
	OpHasKeyAny
	OpHasKeyAll
	OpIsNull
	OpIsNotNull
	OpTsQuery
	OpFalse
	OpNotDistinct
	OpDistinct
	OpEqualsTrue
	OpNotEqualsTrue
	OpSelectExists
)

func (ExpOp) String

func (i ExpOp) String() string

type Field added in v0.21.9

type Field struct {
	Type        FieldType
	Col         sdata.DBColumn
	Func        sdata.DBFunction
	FieldName   string
	FieldFilter Filter
	Args        []Arg
}

type FieldType added in v0.21.9

type FieldType int8
const (
	FieldTypeCol FieldType = iota
	FieldTypeFunc
)

type Filter

type Filter struct {
	*Exp
}

type Function

type Function struct {
	Name string
	// Col       sdata.DBColumn
	Func      sdata.DBFunction
	FieldName string
	Alias     string
	Args      []Arg
	Agg       bool
}

type InsertConfig

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

type Join added in v0.16.17

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

type MColumn

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

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
	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
)

func (Order) String added in v0.16.99

func (o Order) String() string

type OrderBy

type OrderBy struct {
	KeyVar string
	Key    string
	Col    sdata.DBColumn
	Var    string
	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
	ActionArg graph.Arg
	Selects   []Select
	Vars      Variables
	Consts    Constraints
	Roots     []int32

	Mutates    []Mutate
	MUnions    map[string][]int32
	Schema     *sdata.DBSchema
	Remotes    int32
	Script     string
	Cache      Cache
	Validation *Validation
	Typename   bool
	// contains filtered or unexported fields
}

type QType

type QType int8
const (
	QTUnknown      QType = iota // Unknown
	QTQuery                     // Query
	QTSubscription              // Subcription
	QTMutation                  // Mutation
	QTInsert                    // Insert
	QTUpdate                    // Update
	QTDelete                    // Delete
	QTUpsert                    // Upsert
)

func GetQType

func GetQType(t graph.ParserType) QType

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
	Schema     string
	FieldName  string
	Fields     []Field
	BCols      []Column
	IArgs      []Arg
	Args       []Arg
	Funcs      []Function
	Where      Filter
	OrderBy    []OrderBy
	DistinctOn []sdata.DBColumn
	GroupCols  bool
	Paging     Paging
	Children   []int32
	SkipRender SkipType
	Ti         sdata.DBTable
	Rel        sdata.DBRel
	Joins      []Join
	// contains filtered or unexported fields
}

func (*Select) GetInternalArg added in v0.21.9

func (sel *Select) GetInternalArg(name string) (Arg, bool)

type SkipType

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

func (SkipType) String

func (i SkipType) String() string

type TConfig added in v0.16.19

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 added in v0.16.19

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
	ValObj
	ValVar
)

func (ValType) String

func (i ValType) String() string

type Validation added in v0.20.0

type Validation struct {
	Cue  graph.Node
	Cuev cue.Value
}

type Variables

type Variables map[string]json.RawMessage

Jump to

Keyboard shortcuts

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