jet/sqlbuilder/alias.go

35 lines
529 B
Go
Raw Normal View History

2019-03-31 09:17:28 +02:00
package sqlbuilder
import "bytes"
type Alias struct {
Clause
expression Expression
alias string
}
func NewAlias(expression Expression, alias string) *Alias {
if !validIdentifierName(alias) {
panic("Invalid alias")
}
return &Alias{
expression: expression,
alias: alias,
}
}
2019-03-31 14:07:58 +02:00
func (a *Alias) SerializeSql(out *bytes.Buffer, options ...serializeOption) error {
2019-03-31 09:17:28 +02:00
2019-03-31 14:07:58 +02:00
err := a.expression.SerializeSql(out, ALIASED)
2019-03-31 09:17:28 +02:00
if err != nil {
return err
}
out.WriteString(" AS \"" + a.alias + "\"")
return nil
}