...

Source file src/github.com/doug-martin/goqu/v9/exp/alias.go

Documentation: github.com/doug-martin/goqu/v9/exp

     1  package exp
     2  
     3  import "fmt"
     4  
     5  type (
     6  	aliasExpression struct {
     7  		aliased Expression
     8  		alias   IdentifierExpression
     9  	}
    10  )
    11  
    12  // Creates a new AliasedExpression for the Expression and alias
    13  func NewAliasExpression(exp Expression, alias interface{}) AliasedExpression {
    14  	switch v := alias.(type) {
    15  	case string:
    16  		return aliasExpression{aliased: exp, alias: ParseIdentifier(v)}
    17  	case IdentifierExpression:
    18  		return aliasExpression{aliased: exp, alias: v}
    19  	default:
    20  		panic(fmt.Sprintf("Cannot create alias from %+v", v))
    21  	}
    22  }
    23  
    24  func (ae aliasExpression) Clone() Expression {
    25  	return NewAliasExpression(ae.aliased, ae.alias.Clone())
    26  }
    27  
    28  func (ae aliasExpression) Expression() Expression {
    29  	return ae
    30  }
    31  
    32  func (ae aliasExpression) Aliased() Expression {
    33  	return ae.aliased
    34  }
    35  
    36  func (ae aliasExpression) GetAs() IdentifierExpression {
    37  	return ae.alias
    38  }
    39  
    40  // Returns a new IdentifierExpression with the specified schema
    41  func (ae aliasExpression) Schema(schema string) IdentifierExpression {
    42  	return ae.alias.Schema(schema)
    43  }
    44  
    45  // Returns a new IdentifierExpression with the specified table
    46  func (ae aliasExpression) Table(table string) IdentifierExpression {
    47  	return ae.alias.Table(table)
    48  }
    49  
    50  // Returns a new IdentifierExpression with the specified column
    51  func (ae aliasExpression) Col(col interface{}) IdentifierExpression {
    52  	return ae.alias.Col(col)
    53  }
    54  
    55  // Returns a new IdentifierExpression with the column set to *
    56  //   I("my_table").As("t").All() //"t".*
    57  func (ae aliasExpression) All() IdentifierExpression {
    58  	return ae.alias.All()
    59  }
    60  

View as plain text