Documentation
¶
Index ¶
- Constants
- Variables
- func AsSlice(object interface{}) []interface{}
- func Indirect(t reflect.Type) reflect.Type
- func Scan(src Rows, dest interface{}) error
- func ScanAll(src Rows, elementType reflect.Type, appender func(reflect.Value)) error
- func ScanAllMap(src Rows, columns []string, mapType reflect.Type, appender func(reflect.Value)) error
- func ScanMap(src Rows, columns []string, value reflect.Value) error
- func VisitChildren(visitor parser.NamedVisitor, node antlr.RuleNode) interface{}
- type BindVar
- type BindingStyle
- type Core
- type DB
- type DefaultTransformer
- func (transformer *DefaultTransformer) ScanAllStruct(src Rows, columns []string, elementType reflect.Type, ...) error
- func (transformer *DefaultTransformer) ScanStruct(src Rows, columns []string, root reflect.Value) error
- func (transformer *DefaultTransformer) Transform(src Rows, dest interface{}) error
- func (transformer *DefaultTransformer) TransformAll(src Rows, dest interface{}) error
- type DefaultValueResolver
- type FieldDef
- type NamedArg
- type ParameterVisitor
- func (visitor *ParameterVisitor) VisitDecParameter(ctx *parser.DecParameterContext) interface{}
- func (visitor *ParameterVisitor) VisitInExpr(ctx *parser.InExprContext) interface{}
- func (visitor *ParameterVisitor) VisitNamedParamter(ctx *parser.NamedParamterContext) interface{}
- func (visitor *ParameterVisitor) VisitParameter(ctx *parser.ParameterContext) interface{}
- func (visitor *ParameterVisitor) VisitQmarkParameter(ctx *parser.QmarkParameterContext) interface{}
- func (visitor *ParameterVisitor) VisitStaticParameter(ctx *parser.StaticParameterContext) interface{}
- type PartsCollector
- func (collector *PartsCollector) Add(fn StmtPartFn) error
- func (collector *PartsCollector) Use(style BindingStyle)
- func (collector *PartsCollector) Use2orMoreStyles() bool
- func (collector *PartsCollector) Validate() error
- func (collector *PartsCollector) Visit(tree antlr.ParseTree) interface{}
- func (collector *PartsCollector) VisitAnyStmtParts(ctx *parser.AnyStmtPartsContext) interface{}
- func (collector *PartsCollector) VisitChildren(node antlr.RuleNode) interface{}
- func (collector *PartsCollector) VisitDecParameter(ctx *parser.DecParameterContext) interface{}
- func (collector *PartsCollector) VisitErrorNode(node antlr.ErrorNode) interface{}
- func (collector *PartsCollector) VisitInExpr(ctx *parser.InExprContext) interface{}
- func (collector *PartsCollector) VisitNamedParamter(ctx *parser.NamedParamterContext) interface{}
- func (collector *PartsCollector) VisitParameter(ctx *parser.ParameterContext) interface{}
- func (collector *PartsCollector) VisitParse(ctx *parser.ParseContext) interface{}
- func (collector *PartsCollector) VisitQmarkParameter(ctx *parser.QmarkParameterContext) interface{}
- func (collector *PartsCollector) VisitStaticParameter(ctx *parser.StaticParameterContext) interface{}
- func (collector *PartsCollector) VisitStmt(ctx *parser.StmtContext) interface{}
- func (collector *PartsCollector) VisitTerminal(node antlr.TerminalNode) interface{}
- type Query
- type QueryAnalyzer
- type ResolveFn
- type ResolvingState
- type Rows
- type SilentValueResolver
- type StmtPart
- func NewDMarkParameterPart(digit string) (StmtPart, error)
- func NewInPart(in, src string) (StmtPart, error)
- func NewNamedParameterPart(src string) (StmtPart, error)
- func NewQMarkParameterPart(src string) (StmtPart, error)
- func NewStaticInPart(in string, parts []StmtPartFn) (StmtPart, error)
- func NewStaticParameterPart(src string) (StmtPart, error)
- func NewStringPart(src string) (StmtPart, error)
- type StmtPartFn
- type StructDef
- type Transformer
- type TypeRepository
- type ValueResolver
Constants ¶
View Source
const DefaultTagName = "db"
Variables ¶
View Source
var ErrEmptySlice = errors.New("kra: empty slice set to in query parameter")
View Source
var ErrFieldNotFound = errors.New("kra: field not found")
View Source
var ErrFieldUnexported = errors.New("kra: field not exported")
View Source
var ErrInvalidMapKeyType = errors.New("kra: invalid map key type")
View Source
var ErrLackOfQueryParameters = errors.New("kra: require example parameters for prepare query with IN operator")
View Source
var ErrMultipleParameterStyles = errors.New("kra: 2 or more bind variables style contains in 1 statement. Use only 1 bind variables style in 1 query, such as ? or $1,$2,$3... or :foo,:bar,:baz... ")
View Source
var ErrMultipleStatements = errors.New("kra: 2 or more statements in 1 query. Use batch queries. ")
View Source
var ErrNilPointer = errors.New("kra: destination is typed nil pointer")
View Source
var ErrNoColumns = errors.New("kra: no scannable columns")
View Source
var ErrNoPointer = errors.New("kra: destination is not a pointer")
View Source
var ErrNoRecord = errors.New("kra: no record")
View Source
var ErrNoSlice = errors.New("kra: destination is not a slice")
View Source
var ErrParameterNotFound = errors.New("kra: parameter not found")
View Source
var ErrUnsupportedValueType = errors.New("kra: unsupported value type")
Functions ¶
func ScanAllMap ¶
func VisitChildren ¶
func VisitChildren(visitor parser.NamedVisitor, node antlr.RuleNode) interface{}
Types ¶
type Core ¶
type Core struct {
BindVar func(index int) string
Parse func(query string) (QueryAnalyzer, error)
NewResolver func(args ...interface{}) (ValueResolver, error)
NewTransformer func() Transformer
TagName string
Repository *TypeRepository
}
type DefaultTransformer ¶
type DefaultTransformer struct {
// contains filtered or unexported fields
}
func NewDefaultTransformer ¶
func NewDefaultTransformer(core *Core) *DefaultTransformer
func (*DefaultTransformer) ScanAllStruct ¶
func (*DefaultTransformer) ScanStruct ¶
func (*DefaultTransformer) Transform ¶
func (transformer *DefaultTransformer) Transform(src Rows, dest interface{}) error
func (*DefaultTransformer) TransformAll ¶
func (transformer *DefaultTransformer) TransformAll(src Rows, dest interface{}) error
type DefaultValueResolver ¶
type DefaultValueResolver struct {
// contains filtered or unexported fields
}
func (*DefaultValueResolver) BindVar ¶
func (resolver *DefaultValueResolver) BindVar(index int) string
func (*DefaultValueResolver) ByIndex ¶
func (resolver *DefaultValueResolver) ByIndex(index int) (interface{}, error)
func (*DefaultValueResolver) ByName ¶
func (resolver *DefaultValueResolver) ByName(name string) (interface{}, error)
type ParameterVisitor ¶
type ParameterVisitor struct {
parser.BaseNamedVisitor
// contains filtered or unexported fields
}
func (*ParameterVisitor) VisitDecParameter ¶
func (visitor *ParameterVisitor) VisitDecParameter(ctx *parser.DecParameterContext) interface{}
func (*ParameterVisitor) VisitInExpr ¶
func (visitor *ParameterVisitor) VisitInExpr(ctx *parser.InExprContext) interface{}
func (*ParameterVisitor) VisitNamedParamter ¶
func (visitor *ParameterVisitor) VisitNamedParamter(ctx *parser.NamedParamterContext) interface{}
func (*ParameterVisitor) VisitParameter ¶
func (visitor *ParameterVisitor) VisitParameter(ctx *parser.ParameterContext) interface{}
func (*ParameterVisitor) VisitQmarkParameter ¶
func (visitor *ParameterVisitor) VisitQmarkParameter(ctx *parser.QmarkParameterContext) interface{}
func (*ParameterVisitor) VisitStaticParameter ¶
func (visitor *ParameterVisitor) VisitStaticParameter(ctx *parser.StaticParameterContext) interface{}
type PartsCollector ¶
type PartsCollector struct {
// contains filtered or unexported fields
}
func (*PartsCollector) Add ¶
func (collector *PartsCollector) Add(fn StmtPartFn) error
func (*PartsCollector) Use ¶
func (collector *PartsCollector) Use(style BindingStyle)
func (*PartsCollector) Use2orMoreStyles ¶
func (collector *PartsCollector) Use2orMoreStyles() bool
func (*PartsCollector) Validate ¶
func (collector *PartsCollector) Validate() error
func (*PartsCollector) Visit ¶
func (collector *PartsCollector) Visit(tree antlr.ParseTree) interface{}
func (*PartsCollector) VisitAnyStmtParts ¶
func (collector *PartsCollector) VisitAnyStmtParts(ctx *parser.AnyStmtPartsContext) interface{}
func (*PartsCollector) VisitChildren ¶
func (collector *PartsCollector) VisitChildren(node antlr.RuleNode) interface{}
func (*PartsCollector) VisitDecParameter ¶
func (collector *PartsCollector) VisitDecParameter(ctx *parser.DecParameterContext) interface{}
func (*PartsCollector) VisitErrorNode ¶
func (collector *PartsCollector) VisitErrorNode(node antlr.ErrorNode) interface{}
func (*PartsCollector) VisitInExpr ¶
func (collector *PartsCollector) VisitInExpr(ctx *parser.InExprContext) interface{}
func (*PartsCollector) VisitNamedParamter ¶
func (collector *PartsCollector) VisitNamedParamter(ctx *parser.NamedParamterContext) interface{}
func (*PartsCollector) VisitParameter ¶
func (collector *PartsCollector) VisitParameter(ctx *parser.ParameterContext) interface{}
func (*PartsCollector) VisitParse ¶
func (collector *PartsCollector) VisitParse(ctx *parser.ParseContext) interface{}
func (*PartsCollector) VisitQmarkParameter ¶
func (collector *PartsCollector) VisitQmarkParameter(ctx *parser.QmarkParameterContext) interface{}
func (*PartsCollector) VisitStaticParameter ¶
func (collector *PartsCollector) VisitStaticParameter(ctx *parser.StaticParameterContext) interface{}
func (*PartsCollector) VisitStmt ¶
func (collector *PartsCollector) VisitStmt(ctx *parser.StmtContext) interface{}
func (*PartsCollector) VisitTerminal ¶
func (collector *PartsCollector) VisitTerminal(node antlr.TerminalNode) interface{}
type Query ¶
type Query struct {
// contains filtered or unexported fields
}
func (*Query) Analyze ¶
func (query *Query) Analyze(resolver ValueResolver) (rawQuery string, vars []interface{}, err error)
func (*Query) Verify ¶
func (query *Query) Verify(resolver ValueResolver) error
type QueryAnalyzer ¶
type QueryAnalyzer interface {
Verify(ValueResolver) error
Analyze(ValueResolver) (query string, vars []interface{}, err error)
}
type ResolvingState ¶
type ResolvingState struct {
// contains filtered or unexported fields
}
func (*ResolvingState) AppendStmt ¶
func (state *ResolvingState) AppendStmt(part string)
func (*ResolvingState) AppendVar ¶
func (state *ResolvingState) AppendVar(val interface{})
func (*ResolvingState) ConcatVar ¶
func (state *ResolvingState) ConcatVar(val []interface{})
func (*ResolvingState) NextIndex ¶
func (state *ResolvingState) NextIndex() int
type SilentValueResolver ¶
type SilentValueResolver struct {
// contains filtered or unexported fields
}
func (*SilentValueResolver) BindVar ¶
func (resolver *SilentValueResolver) BindVar(index int) string
func (*SilentValueResolver) ByIndex ¶
func (resolver *SilentValueResolver) ByIndex(index int) (interface{}, error)
func (*SilentValueResolver) ByName ¶
func (resolver *SilentValueResolver) ByName(name string) (interface{}, error)
type StmtPart ¶
type StmtPart func(*ResolvingState, ValueResolver) error
func NewDMarkParameterPart ¶
func NewNamedParameterPart ¶
func NewQMarkParameterPart ¶
func NewStaticInPart ¶
func NewStaticInPart(in string, parts []StmtPartFn) (StmtPart, error)
func NewStaticParameterPart ¶
func NewStringPart ¶
type StmtPartFn ¶
type StructDef ¶
type Transformer ¶
type TypeRepository ¶
type TypeRepository struct {
// contains filtered or unexported fields
}
func NewTypeRepository ¶
func NewTypeRepository(core *Core) *TypeRepository
func (*TypeRepository) Lookup ¶
func (repo *TypeRepository) Lookup(root reflect.Type) (*StructDef, error)
func (*TypeRepository) LookupOrTraverse ¶
type ValueResolver ¶
type ValueResolver interface {
BindVar(index int) string
ByIndex(index int) (interface{}, error)
ByName(name string) (interface{}, error)
}
func KeepSilent ¶
func KeepSilent(resolver ValueResolver) ValueResolver
func NewDefaultResolver ¶
func NewDefaultResolver(core *Core, args ...interface{}) (ValueResolver, error)
Click to show internal directories.
Click to hide internal directories.