jet/column_types.go

315 lines
7 KiB
Go
Raw Normal View History

2019-06-21 13:56:57 +02:00
package jet
2019-03-31 14:07:58 +02:00
2019-06-08 16:34:15 +02:00
type ColumnBool interface {
BoolExpression
column
From(subQuery ExpressionTable) ColumnBool
2019-06-08 16:34:15 +02:00
}
type boolColumnImpl struct {
2019-03-31 14:07:58 +02:00
boolInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
2019-03-31 14:07:58 +02:00
}
func (i *boolColumnImpl) from(subQuery ExpressionTable) projection {
newBoolColumn := BoolColumn(i.name)
newBoolColumn.setTableName(i.tableName)
newBoolColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newBoolColumn
}
func (i *boolColumnImpl) From(subQuery ExpressionTable) ColumnBool {
newBoolColumn := i.from(subQuery).(ColumnBool)
2019-06-08 16:34:15 +02:00
return newBoolColumn
}
func BoolColumn(name string) ColumnBool {
2019-06-08 16:34:15 +02:00
boolColumn := &boolColumnImpl{}
boolColumn.columnImpl = newColumn(name, "", boolColumn)
2019-03-31 14:07:58 +02:00
boolColumn.boolInterfaceImpl.parent = boolColumn
return boolColumn
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnFloat interface {
FloatExpression
column
From(subQuery ExpressionTable) ColumnFloat
2019-06-08 16:34:15 +02:00
}
type floatColumnImpl struct {
floatInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
func (i *floatColumnImpl) from(subQuery ExpressionTable) projection {
newFloatColumn := FloatColumn(i.name)
newFloatColumn.setTableName(i.tableName)
newFloatColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newFloatColumn
2019-03-31 14:07:58 +02:00
}
func (i *floatColumnImpl) From(subQuery ExpressionTable) ColumnFloat {
newFloatColumn := i.from(subQuery).(ColumnFloat)
2019-03-31 14:07:58 +02:00
return newFloatColumn
}
2019-03-31 14:07:58 +02:00
func FloatColumn(name string) ColumnFloat {
floatColumn := &floatColumnImpl{}
floatColumn.floatInterfaceImpl.parent = floatColumn
2019-06-08 16:34:15 +02:00
floatColumn.columnImpl = newColumn(name, "", floatColumn)
2019-03-31 14:07:58 +02:00
return floatColumn
2019-03-31 14:07:58 +02:00
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnInteger interface {
IntegerExpression
column
From(subQuery ExpressionTable) ColumnInteger
2019-06-08 16:34:15 +02:00
}
type integerColumnImpl struct {
2019-03-31 14:07:58 +02:00
integerInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
2019-03-31 14:07:58 +02:00
}
func (i *integerColumnImpl) from(subQuery ExpressionTable) projection {
newIntColumn := IntegerColumn(i.name)
newIntColumn.setTableName(i.tableName)
newIntColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newIntColumn
}
2019-03-31 14:07:58 +02:00
func (i *integerColumnImpl) From(subQuery ExpressionTable) ColumnInteger {
return i.from(subQuery).(ColumnInteger)
}
2019-06-08 16:34:15 +02:00
func IntegerColumn(name string) ColumnInteger {
integerColumn := &integerColumnImpl{}
integerColumn.integerInterfaceImpl.parent = integerColumn
integerColumn.columnImpl = newColumn(name, "", integerColumn)
2019-03-31 14:07:58 +02:00
return integerColumn
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnString interface {
StringExpression
column
From(subQuery ExpressionTable) ColumnString
2019-06-08 16:34:15 +02:00
}
type stringColumnImpl struct {
stringInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
func (i *stringColumnImpl) from(subQuery ExpressionTable) projection {
newStrColumn := StringColumn(i.name)
newStrColumn.setTableName(i.tableName)
newStrColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newStrColumn
}
func (i *stringColumnImpl) From(subQuery ExpressionTable) ColumnString {
return i.from(subQuery).(ColumnString)
}
2019-06-08 16:34:15 +02:00
func StringColumn(name string) ColumnString {
2019-06-08 16:34:15 +02:00
stringColumn := &stringColumnImpl{}
stringColumn.stringInterfaceImpl.parent = stringColumn
2019-06-08 16:34:15 +02:00
stringColumn.columnImpl = newColumn(name, "", stringColumn)
return stringColumn
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnTime interface {
TimeExpression
column
From(subQuery ExpressionTable) ColumnTime
2019-06-08 16:34:15 +02:00
}
type timeColumnImpl struct {
timeInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
func (i *timeColumnImpl) from(subQuery ExpressionTable) projection {
newTimeColumn := TimeColumn(i.name)
newTimeColumn.setTableName(i.tableName)
newTimeColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newTimeColumn
}
func (i *timeColumnImpl) From(subQuery ExpressionTable) ColumnTime {
return i.from(subQuery).(ColumnTime)
}
2019-06-08 16:34:15 +02:00
func TimeColumn(name string) ColumnTime {
timeColumn := &timeColumnImpl{}
timeColumn.timeInterfaceImpl.parent = timeColumn
2019-06-08 16:34:15 +02:00
timeColumn.columnImpl = newColumn(name, "", timeColumn)
return timeColumn
}
//------------------------------------------------------//
2019-06-08 16:34:15 +02:00
type ColumnTimez interface {
TimezExpression
column
From(subQuery ExpressionTable) ColumnTimez
2019-06-08 16:34:15 +02:00
}
type timezColumnImpl struct {
timezInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
func (i *timezColumnImpl) from(subQuery ExpressionTable) projection {
newTimezColumn := TimezColumn(i.name)
newTimezColumn.setTableName(i.tableName)
newTimezColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newTimezColumn
}
func (i *timezColumnImpl) From(subQuery ExpressionTable) ColumnTimez {
return i.from(subQuery).(ColumnTimez)
}
2019-06-08 16:34:15 +02:00
func TimezColumn(name string) ColumnTimez {
timezColumn := &timezColumnImpl{}
timezColumn.timezInterfaceImpl.parent = timezColumn
2019-06-08 16:34:15 +02:00
timezColumn.columnImpl = newColumn(name, "", timezColumn)
return timezColumn
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnTimestamp interface {
TimestampExpression
column
From(subQuery ExpressionTable) ColumnTimestamp
2019-06-08 16:34:15 +02:00
}
type timestampColumnImpl struct {
timestampInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
func (i *timestampColumnImpl) from(subQuery ExpressionTable) projection {
newTimestampColumn := TimestampColumn(i.name)
newTimestampColumn.setTableName(i.tableName)
newTimestampColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newTimestampColumn
}
func (i *timestampColumnImpl) From(subQuery ExpressionTable) ColumnTimestamp {
return i.from(subQuery).(ColumnTimestamp)
}
2019-06-08 16:34:15 +02:00
func TimestampColumn(name string) ColumnTimestamp {
timestampColumn := &timestampColumnImpl{}
timestampColumn.timestampInterfaceImpl.parent = timestampColumn
2019-06-08 16:34:15 +02:00
timestampColumn.columnImpl = newColumn(name, "", timestampColumn)
return timestampColumn
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnTimestampz interface {
TimestampzExpression
column
From(subQuery ExpressionTable) ColumnTimestampz
2019-06-08 16:34:15 +02:00
}
type timestampzColumnImpl struct {
timestampzInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
func (i *timestampzColumnImpl) from(subQuery ExpressionTable) projection {
newTimestampzColumn := TimestampzColumn(i.name)
newTimestampzColumn.setTableName(i.tableName)
newTimestampzColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newTimestampzColumn
}
func (i *timestampzColumnImpl) From(subQuery ExpressionTable) ColumnTimestampz {
return i.from(subQuery).(ColumnTimestampz)
}
2019-06-08 16:34:15 +02:00
func TimestampzColumn(name string) ColumnTimestampz {
timestampzColumn := &timestampzColumnImpl{}
timestampzColumn.timestampzInterfaceImpl.parent = timestampzColumn
2019-06-08 16:34:15 +02:00
timestampzColumn.columnImpl = newColumn(name, "", timestampzColumn)
return timestampzColumn
}
//------------------------------------------------------//
2019-07-16 12:17:27 +02:00
2019-06-08 16:34:15 +02:00
type ColumnDate interface {
DateExpression
column
From(subQuery ExpressionTable) ColumnDate
}
2019-06-08 16:34:15 +02:00
type dateColumnImpl struct {
dateInterfaceImpl
2019-06-08 16:34:15 +02:00
columnImpl
}
2019-05-03 12:51:57 +02:00
func (i *dateColumnImpl) from(subQuery ExpressionTable) projection {
newDateColumn := DateColumn(i.name)
newDateColumn.setTableName(i.tableName)
newDateColumn.setSubQuery(subQuery)
2019-06-08 16:34:15 +02:00
return newDateColumn
2019-05-03 12:51:57 +02:00
}
func (i *dateColumnImpl) From(subQuery ExpressionTable) ColumnDate {
return i.from(subQuery).(ColumnDate)
}
2019-06-08 16:34:15 +02:00
func DateColumn(name string) ColumnDate {
dateColumn := &dateColumnImpl{}
dateColumn.dateInterfaceImpl.parent = dateColumn
dateColumn.columnImpl = newColumn(name, "", dateColumn)
return dateColumn
2019-05-03 12:51:57 +02:00
}