sq

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2024 License: MIT Imports: 4 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ArgFunc added in v0.3.0

func ArgFunc(fn func() (any, error)) litsql.Argument

ArgFunc returns the argument value in a callback.

func Build added in v0.3.0

func Build(q litsql.Query, options ...BuildOption) (string, []any, error)

Build builds a query string and its arguments.

func DBNamedArg added in v0.5.7

func DBNamedArg(name string, options ...ArgOption) litsql.Argument

DBNamedArg adds a DB-native named argument (for databases that support it). The end value will be wrapped in [sql.Named].

func NamedArg added in v0.5.7

func NamedArg(name string, options ...ArgOption) litsql.Argument

NamedArg adds a named argument for replacement with ParseArgs.

func NewWriter added in v0.3.0

func NewWriter(w io.Writer, options ...WriterOption) litsql.Writer

NewWriter creates the default implementation if litsql.Writer.

func ParseArgs added in v0.3.0

func ParseArgs(args []any, values litsql.ArgValues) ([]any, error)

ParseArgs replaces all litsql.Argument instances in args with named values. Use litsql.MapArgValues to use a "map[string]any" as source.

Types

type ArgOption added in v0.5.7

type ArgOption func(options *argOptions)

func WithDefaultValue added in v0.5.7

func WithDefaultValue(defaultValue any) ArgOption

WithDefaultValue sets a default value if the argument name was not passed.

type BuildOption added in v0.7.0

type BuildOption = internal.BuildQueryOption

func WithParseArgs added in v0.6.0

func WithParseArgs(argValues litsql.ArgValues) BuildOption

WithParseArgs adds named argument values.

func WithWriterOptions added in v0.6.0

func WithWriterOptions(writerOptions ...WriterOption) BuildOption

WithWriterOptions adds writer options.

type BuildQuery added in v0.3.0

type BuildQuery interface {
	Build(options ...BuildOption) (string, []any, error)
}

BuildQuery builds query strings and arguments.

type Handler added in v0.7.0

type Handler interface {
	Build(q litsql.Query, options ...BuildOption) (string, []any, error)
	ParseArgs(args []any, values litsql.ArgValues) ([]any, error)
}

Handler bundles default parameters for functions.

func NewHandler added in v0.7.0

func NewHandler(options ...HandlerOption) Handler

type HandlerOption added in v0.7.0

type HandlerOption func(h *handler)

func WithDefaultBuildOptions added in v0.7.0

func WithDefaultBuildOptions(options ...BuildOption) HandlerOption

WithDefaultBuildOptions sets default options for [Handler.Build].

type MapArgValues added in v0.3.0

type MapArgValues map[string]any

MapArgValues is a litsql.ArgValues backed from a map[string]any.

func (MapArgValues) Get added in v0.3.0

func (m MapArgValues) Get(s string) (any, bool, error)

type Mod

type Mod[T, A any] interface {
	ModTag[T]
	Apply(A)
}

Mod is a mod for a generic type.

type ModTag

type ModTag[T any] interface {
	// contains filtered or unexported methods
}

ModTag is used just for interface tagging, so implementations for each dialect aren't accept on others.

type ModTagImpl

type ModTagImpl[T any] struct {
}

type Query

type Query[T any] interface {
	litsql.QueryBuilder
	litsql.Query
	QueryModApply[T]
	BuildQuery
}

Query is the interface for base queries.

type QueryMod

type QueryMod[T any] interface {
	ModTag[T]
	Apply(qb litsql.QueryBuilder)
}

QueryMod is a mod for litsql.QueryBuilder.

func QueryModFunc

func QueryModFunc[T any](f func(apply litsql.QueryBuilder)) QueryMod[T]

type QueryModApply

type QueryModApply[T any] interface {
	Apply(...QueryMod[T])
}

type WriterOption added in v0.3.0

type WriterOption = internal.WriterOption

func WithIndentString added in v0.6.0

func WithIndentString(indentString string) WriterOption

WithIndentString sets the indent string (used only if WithUseNewLine is true). Default is " " (two spaces).

func WithUseNewLine added in v0.6.0

func WithUseNewLine(useNewLine bool) WriterOption

WithUseNewLine sets whether to use newlines in the output or not. Default is true.

Directories

Path Synopsis
reflectxargs module
structargs module

Jump to

Keyboard shortcuts

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