MCPcopy Create free account
hub / github.com/efectn/go-orm-benchmarks / sqlQuery

Method sqlQuery

bench/ent/model_query.go:406–436  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

404}
405
406func (mq *ModelQuery) sqlQuery(ctx context.Context) *sql.Selector {
407 builder := sql.Dialect(mq.driver.Dialect())
408 t1 := builder.Table(model.Table)
409 columns := mq.ctx.Fields
410 if len(columns) == 0 {
411 columns = model.Columns
412 }
413 selector := builder.Select(t1.Columns(columns...)...).From(t1)
414 if mq.sql != nil {
415 selector = mq.sql
416 selector.Select(selector.Columns(columns...)...)
417 }
418 if mq.ctx.Unique != nil && *mq.ctx.Unique {
419 selector.Distinct()
420 }
421 for _, p := range mq.predicates {
422 p(selector)
423 }
424 for _, p := range mq.order {
425 p(selector)
426 }
427 if offset := mq.ctx.Offset; offset != nil {
428 // limit is mandatory for offset clause. We start
429 // with default value, and override it below if needed.
430 selector.Offset(*offset).Limit(math.MaxInt32)
431 }
432 if limit := mq.ctx.Limit; limit != nil {
433 selector.Limit(*limit)
434 }
435 return selector
436}
437
438// ModelGroupBy is the group-by builder for Model entities.
439type ModelGroupBy struct {

Callers 2

sqlScanMethod · 0.80
sqlScanMethod · 0.80

Calls 6

DialectMethod · 0.80
ColumnsMethod · 0.80
LimitMethod · 0.80
OffsetMethod · 0.80
TableMethod · 0.45
SelectMethod · 0.45

Tested by

no test coverage detected