Add dialects

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
This commit is contained in:
m.nabokikh
2021-09-13 17:48:02 +04:00
parent eae3219e4d
commit fb38e1235d
64 changed files with 1198 additions and 596 deletions

View File

@@ -287,8 +287,8 @@ func (drq *DeviceRequestQuery) GroupBy(field string, fields ...string) *DeviceRe
// Select(devicerequest.FieldUserCode).
// Scan(ctx, &v)
//
func (drq *DeviceRequestQuery) Select(field string, fields ...string) *DeviceRequestSelect {
drq.fields = append([]string{field}, fields...)
func (drq *DeviceRequestQuery) Select(fields ...string) *DeviceRequestSelect {
drq.fields = append(drq.fields, fields...)
return &DeviceRequestSelect{DeviceRequestQuery: drq}
}
@@ -398,10 +398,14 @@ func (drq *DeviceRequestQuery) querySpec() *sqlgraph.QuerySpec {
func (drq *DeviceRequestQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(drq.driver.Dialect())
t1 := builder.Table(devicerequest.Table)
selector := builder.Select(t1.Columns(devicerequest.Columns...)...).From(t1)
columns := drq.fields
if len(columns) == 0 {
columns = devicerequest.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if drq.sql != nil {
selector = drq.sql
selector.Select(selector.Columns(devicerequest.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range drq.predicates {
p(selector)
@@ -669,13 +673,24 @@ func (drgb *DeviceRequestGroupBy) sqlScan(ctx context.Context, v interface{}) er
}
func (drgb *DeviceRequestGroupBy) sqlQuery() *sql.Selector {
selector := drgb.sql
columns := make([]string, 0, len(drgb.fields)+len(drgb.fns))
columns = append(columns, drgb.fields...)
selector := drgb.sql.Select()
aggregation := make([]string, 0, len(drgb.fns))
for _, fn := range drgb.fns {
columns = append(columns, fn(selector))
aggregation = append(aggregation, fn(selector))
}
return selector.Select(columns...).GroupBy(drgb.fields...)
// If no columns were selected in a custom aggregation function, the default
// selection is the fields used for "group-by", and the aggregation functions.
if len(selector.SelectedColumns()) == 0 {
columns := make([]string, 0, len(drgb.fields)+len(drgb.fns))
for _, f := range drgb.fields {
columns = append(columns, selector.C(f))
}
for _, c := range aggregation {
columns = append(columns, c)
}
selector.Select(columns...)
}
return selector.GroupBy(selector.Columns(drgb.fields...)...)
}
// DeviceRequestSelect is the builder for selecting fields of DeviceRequest entities.
@@ -891,16 +906,10 @@ func (drs *DeviceRequestSelect) BoolX(ctx context.Context) bool {
func (drs *DeviceRequestSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := drs.sqlQuery().Query()
query, args := drs.sql.Query()
if err := drs.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (drs *DeviceRequestSelect) sqlQuery() sql.Querier {
selector := drs.sql
selector.Select(selector.Columns(drs.fields...)...)
return selector
}