dialect/sql: allow appending select columns to query

This commit is contained in:
Ariel Mashraki
2021-06-01 11:35:59 +03:00
committed by Ariel Mashraki
parent fdc5f2b7e9
commit f5c284787f
88 changed files with 621 additions and 761 deletions

View File

@@ -457,10 +457,14 @@ func (cq *CarQuery) querySpec() *sqlgraph.QuerySpec {
func (cq *CarQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(cq.driver.Dialect())
t1 := builder.Table(car.Table)
selector := builder.Select(t1.Columns(car.Columns...)...).From(t1)
columns := cq.fields
if len(columns) == 0 {
columns = car.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if cq.sql != nil {
selector = cq.sql
selector.Select(selector.Columns(car.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range cq.predicates {
p(selector)
@@ -961,16 +965,10 @@ func (cs *CarSelect) BoolX(ctx context.Context) bool {
func (cs *CarSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := cs.sqlQuery().Query()
query, args := cs.sql.Query()
if err := cs.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (cs *CarSelect) sqlQuery() sql.Querier {
selector := cs.sql
selector.Select(selector.Columns(cs.fields...)...)
return selector
}

View File

@@ -402,10 +402,14 @@ func (cq *ConversionQuery) querySpec() *sqlgraph.QuerySpec {
func (cq *ConversionQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(cq.driver.Dialect())
t1 := builder.Table(conversion.Table)
selector := builder.Select(t1.Columns(conversion.Columns...)...).From(t1)
columns := cq.fields
if len(columns) == 0 {
columns = conversion.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if cq.sql != nil {
selector = cq.sql
selector.Select(selector.Columns(conversion.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range cq.predicates {
p(selector)
@@ -906,16 +910,10 @@ func (cs *ConversionSelect) BoolX(ctx context.Context) bool {
func (cs *ConversionSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := cs.sqlQuery().Query()
query, args := cs.sql.Query()
if err := cs.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (cs *ConversionSelect) sqlQuery() sql.Querier {
selector := cs.sql
selector.Select(selector.Columns(cs.fields...)...)
return selector
}

View File

@@ -402,10 +402,14 @@ func (ctq *CustomTypeQuery) querySpec() *sqlgraph.QuerySpec {
func (ctq *CustomTypeQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(ctq.driver.Dialect())
t1 := builder.Table(customtype.Table)
selector := builder.Select(t1.Columns(customtype.Columns...)...).From(t1)
columns := ctq.fields
if len(columns) == 0 {
columns = customtype.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if ctq.sql != nil {
selector = ctq.sql
selector.Select(selector.Columns(customtype.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range ctq.predicates {
p(selector)
@@ -906,16 +910,10 @@ func (cts *CustomTypeSelect) BoolX(ctx context.Context) bool {
func (cts *CustomTypeSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := cts.sqlQuery().Query()
query, args := cts.sql.Query()
if err := cts.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (cts *CustomTypeSelect) sqlQuery() sql.Querier {
selector := cts.sql
selector.Select(selector.Columns(cts.fields...)...)
return selector
}

View File

@@ -676,10 +676,14 @@ func (uq *UserQuery) querySpec() *sqlgraph.QuerySpec {
func (uq *UserQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(uq.driver.Dialect())
t1 := builder.Table(user.Table)
selector := builder.Select(t1.Columns(user.Columns...)...).From(t1)
columns := uq.fields
if len(columns) == 0 {
columns = user.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if uq.sql != nil {
selector = uq.sql
selector.Select(selector.Columns(user.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range uq.predicates {
p(selector)
@@ -1180,16 +1184,10 @@ func (us *UserSelect) BoolX(ctx context.Context) bool {
func (us *UserSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := us.sqlQuery().Query()
query, args := us.sql.Query()
if err := us.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (us *UserSelect) sqlQuery() sql.Querier {
selector := us.sql
selector.Select(selector.Columns(us.fields...)...)
return selector
}

View File

@@ -457,10 +457,14 @@ func (cq *CarQuery) querySpec() *sqlgraph.QuerySpec {
func (cq *CarQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(cq.driver.Dialect())
t1 := builder.Table(car.Table)
selector := builder.Select(t1.Columns(car.Columns...)...).From(t1)
columns := cq.fields
if len(columns) == 0 {
columns = car.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if cq.sql != nil {
selector = cq.sql
selector.Select(selector.Columns(car.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range cq.predicates {
p(selector)
@@ -961,16 +965,10 @@ func (cs *CarSelect) BoolX(ctx context.Context) bool {
func (cs *CarSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := cs.sqlQuery().Query()
query, args := cs.sql.Query()
if err := cs.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (cs *CarSelect) sqlQuery() sql.Querier {
selector := cs.sql
selector.Select(selector.Columns(cs.fields...)...)
return selector
}

View File

@@ -402,10 +402,14 @@ func (cq *ConversionQuery) querySpec() *sqlgraph.QuerySpec {
func (cq *ConversionQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(cq.driver.Dialect())
t1 := builder.Table(conversion.Table)
selector := builder.Select(t1.Columns(conversion.Columns...)...).From(t1)
columns := cq.fields
if len(columns) == 0 {
columns = conversion.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if cq.sql != nil {
selector = cq.sql
selector.Select(selector.Columns(conversion.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range cq.predicates {
p(selector)
@@ -906,16 +910,10 @@ func (cs *ConversionSelect) BoolX(ctx context.Context) bool {
func (cs *ConversionSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := cs.sqlQuery().Query()
query, args := cs.sql.Query()
if err := cs.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (cs *ConversionSelect) sqlQuery() sql.Querier {
selector := cs.sql
selector.Select(selector.Columns(cs.fields...)...)
return selector
}

View File

@@ -402,10 +402,14 @@ func (ctq *CustomTypeQuery) querySpec() *sqlgraph.QuerySpec {
func (ctq *CustomTypeQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(ctq.driver.Dialect())
t1 := builder.Table(customtype.Table)
selector := builder.Select(t1.Columns(customtype.Columns...)...).From(t1)
columns := ctq.fields
if len(columns) == 0 {
columns = customtype.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if ctq.sql != nil {
selector = ctq.sql
selector.Select(selector.Columns(customtype.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range ctq.predicates {
p(selector)
@@ -906,16 +910,10 @@ func (cts *CustomTypeSelect) BoolX(ctx context.Context) bool {
func (cts *CustomTypeSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := cts.sqlQuery().Query()
query, args := cts.sql.Query()
if err := cts.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (cts *CustomTypeSelect) sqlQuery() sql.Querier {
selector := cts.sql
selector.Select(selector.Columns(cts.fields...)...)
return selector
}

View File

@@ -378,10 +378,14 @@ func (gq *GroupQuery) querySpec() *sqlgraph.QuerySpec {
func (gq *GroupQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(gq.driver.Dialect())
t1 := builder.Table(group.Table)
selector := builder.Select(t1.Columns(group.Columns...)...).From(t1)
columns := gq.fields
if len(columns) == 0 {
columns = group.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if gq.sql != nil {
selector = gq.sql
selector.Select(selector.Columns(group.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range gq.predicates {
p(selector)
@@ -882,16 +886,10 @@ func (gs *GroupSelect) BoolX(ctx context.Context) bool {
func (gs *GroupSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := gs.sqlQuery().Query()
query, args := gs.sql.Query()
if err := gs.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (gs *GroupSelect) sqlQuery() sql.Querier {
selector := gs.sql
selector.Select(selector.Columns(gs.fields...)...)
return selector
}

View File

@@ -402,10 +402,14 @@ func (mq *MediaQuery) querySpec() *sqlgraph.QuerySpec {
func (mq *MediaQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(mq.driver.Dialect())
t1 := builder.Table(media.Table)
selector := builder.Select(t1.Columns(media.Columns...)...).From(t1)
columns := mq.fields
if len(columns) == 0 {
columns = media.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if mq.sql != nil {
selector = mq.sql
selector.Select(selector.Columns(media.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range mq.predicates {
p(selector)
@@ -906,16 +910,10 @@ func (ms *MediaSelect) BoolX(ctx context.Context) bool {
func (ms *MediaSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := ms.sqlQuery().Query()
query, args := ms.sql.Query()
if err := ms.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (ms *MediaSelect) sqlQuery() sql.Querier {
selector := ms.sql
selector.Select(selector.Columns(ms.fields...)...)
return selector
}

View File

@@ -457,10 +457,14 @@ func (pq *PetQuery) querySpec() *sqlgraph.QuerySpec {
func (pq *PetQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(pq.driver.Dialect())
t1 := builder.Table(pet.Table)
selector := builder.Select(t1.Columns(pet.Columns...)...).From(t1)
columns := pq.fields
if len(columns) == 0 {
columns = pet.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if pq.sql != nil {
selector = pq.sql
selector.Select(selector.Columns(pet.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range pq.predicates {
p(selector)
@@ -961,16 +965,10 @@ func (ps *PetSelect) BoolX(ctx context.Context) bool {
func (ps *PetSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := ps.sqlQuery().Query()
query, args := ps.sql.Query()
if err := ps.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (ps *PetSelect) sqlQuery() sql.Querier {
selector := ps.sql
selector.Select(selector.Columns(ps.fields...)...)
return selector
}

View File

@@ -640,10 +640,14 @@ func (uq *UserQuery) querySpec() *sqlgraph.QuerySpec {
func (uq *UserQuery) sqlQuery(ctx context.Context) *sql.Selector {
builder := sql.Dialect(uq.driver.Dialect())
t1 := builder.Table(user.Table)
selector := builder.Select(t1.Columns(user.Columns...)...).From(t1)
columns := uq.fields
if len(columns) == 0 {
columns = user.Columns
}
selector := builder.Select(t1.Columns(columns...)...).From(t1)
if uq.sql != nil {
selector = uq.sql
selector.Select(selector.Columns(user.Columns...)...)
selector.Select(selector.Columns(columns...)...)
}
for _, p := range uq.predicates {
p(selector)
@@ -1144,16 +1148,10 @@ func (us *UserSelect) BoolX(ctx context.Context) bool {
func (us *UserSelect) sqlScan(ctx context.Context, v interface{}) error {
rows := &sql.Rows{}
query, args := us.sqlQuery().Query()
query, args := us.sql.Query()
if err := us.driver.Query(ctx, query, args, rows); err != nil {
return err
}
defer rows.Close()
return sql.ScanSlice(rows, v)
}
func (us *UserSelect) sqlQuery() sql.Querier {
selector := us.sql
selector.Select(selector.Columns(us.fields...)...)
return selector
}