package schema
type QueryAppender interface {
AppendQuery (fmter Formatter , b []byte ) ([]byte , error )
}
type Query interface {
QueryAppender
Operation () string
}
type ColumnsAppender interface {
AppendColumns (fmter Formatter , b []byte ) ([]byte , error )
}
type Safe string
var _ QueryAppender = (*Safe )(nil )
func (s Safe ) AppendQuery (fmter Formatter , b []byte ) ([]byte , error ) {
return append (b , s ...), nil
}
type Ident string
var _ QueryAppender = (*Ident )(nil )
func (s Ident ) AppendQuery (fmter Formatter , b []byte ) ([]byte , error ) {
return fmter .AppendIdent (b , string (s )), nil
}
type QueryWithArgs struct {
Query string
Args []interface {}
}
var _ QueryAppender = QueryWithArgs {}
func SafeQuery (query string , args []interface {}) QueryWithArgs {
if args == nil {
args = make ([]interface {}, 0 )
}
return QueryWithArgs {Query : query , Args : args }
}
func UnsafeIdent (ident string ) QueryWithArgs {
return QueryWithArgs {Query : ident }
}
func (q QueryWithArgs ) IsZero () bool {
return q .Query == "" && q .Args == nil
}
func (q QueryWithArgs ) AppendQuery (fmter Formatter , b []byte ) ([]byte , error ) {
if q .Args == nil {
return fmter .AppendIdent (b , q .Query ), nil
}
return fmter .AppendQuery (b , q .Query , q .Args ...), nil
}
type QueryWithSep struct {
QueryWithArgs
Sep string
}
func SafeQueryWithSep (query string , args []interface {}, sep string ) QueryWithSep {
return QueryWithSep {
QueryWithArgs : SafeQuery (query , args ),
Sep : sep ,
}
}
The pages are generated with Golds v0.3.6 . (GOOS=darwin GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .