jet/internal/jet/alias.go
2019-08-11 18:57:40 +02:00

34 lines
625 B
Go

package jet
type alias struct {
expression Expression
alias string
}
func newAlias(expression Expression, aliasName string) Projection {
return &alias{
expression: expression,
alias: aliasName,
}
}
func (a *alias) fromImpl(subQuery SelectTable) Projection {
column := newColumn(a.alias, "", nil)
column.Parent = &column
column.subQuery = subQuery
return &column
}
func (a *alias) serializeForProjection(statement StatementType, out *SqlBuilder) error {
err := a.expression.serialize(statement, out)
if err != nil {
return err
}
out.WriteString("AS")
out.WriteAlias(a.alias)
return nil
}