2019-08-11 12:13:59 +02:00
|
|
|
package postgres
|
|
|
|
|
|
2026-05-14 17:04:09 +00:00
|
|
|
import "source.gleipnir.technology/Gleipnir/jet/v2/internal/jet"
|
2019-08-11 12:13:59 +02:00
|
|
|
|
2024-10-17 14:12:21 +02:00
|
|
|
// SelectTable is interface for postgres temporary tables like sub-queries, VALUES, CTEs etc...
|
2019-08-11 12:13:59 +02:00
|
|
|
type SelectTable interface {
|
2019-08-17 18:32:01 +02:00
|
|
|
readableTable
|
2019-08-11 12:13:59 +02:00
|
|
|
jet.SelectTable
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type selectTableImpl struct {
|
2019-08-17 18:32:01 +02:00
|
|
|
jet.SelectTable
|
2019-08-11 12:13:59 +02:00
|
|
|
readableTableInterfaceImpl
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 14:12:21 +02:00
|
|
|
func newSelectTable(serializerWithProjections jet.SerializerHasProjections, alias string, columnAliases []jet.ColumnExpression) SelectTable {
|
2019-08-11 12:13:59 +02:00
|
|
|
subQuery := &selectTableImpl{
|
2024-10-17 14:12:21 +02:00
|
|
|
SelectTable: jet.NewSelectTable(serializerWithProjections, alias, columnAliases),
|
2019-08-11 12:13:59 +02:00
|
|
|
}
|
|
|
|
|
|
2025-03-09 19:06:17 +01:00
|
|
|
subQuery.readableTableInterfaceImpl.root = subQuery
|
2019-08-11 12:13:59 +02:00
|
|
|
|
|
|
|
|
return subQuery
|
|
|
|
|
}
|