MCPcopy
hub / github.com/cloudreve/cloudreve / sqlQuery

Method sqlQuery

ent/metadata_query.go:485–515  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

483}
484
485func (mq *MetadataQuery) sqlQuery(ctx context.Context) *sql.Selector {
486 builder := sql.Dialect(mq.driver.Dialect())
487 t1 := builder.Table(metadata.Table)
488 columns := mq.ctx.Fields
489 if len(columns) == 0 {
490 columns = metadata.Columns
491 }
492 selector := builder.Select(t1.Columns(columns...)...).From(t1)
493 if mq.sql != nil {
494 selector = mq.sql
495 selector.Select(selector.Columns(columns...)...)
496 }
497 if mq.ctx.Unique != nil && *mq.ctx.Unique {
498 selector.Distinct()
499 }
500 for _, p := range mq.predicates {
501 p(selector)
502 }
503 for _, p := range mq.order {
504 p(selector)
505 }
506 if offset := mq.ctx.Offset; offset != nil {
507 // limit is mandatory for offset clause. We start
508 // with default value, and override it below if needed.
509 selector.Offset(*offset).Limit(math.MaxInt32)
510 }
511 if limit := mq.ctx.Limit; limit != nil {
512 selector.Limit(*limit)
513 }
514 return selector
515}
516
517// MetadataGroupBy is the group-by builder for Metadata entities.
518type MetadataGroupBy struct {

Callers 3

QueryFileMethod · 0.95
sqlScanMethod · 0.45
sqlScanMethod · 0.45

Calls 5

pFunction · 0.85
DialectMethod · 0.80
LimitMethod · 0.65
OffsetMethod · 0.65
SelectMethod · 0.45

Tested by

no test coverage detected