{{/* Copyright 2019-present Facebook Inc. All rights reserved. This source code is licensed under the Apache 2.0 license found in the LICENSE file in the root directory of this source tree. */}} {{/* gotype: entgo.io/ent/entc/gen.typeScope */}} {{ define "dialect/sql/predicate/id" -}} func(s *sql.Selector) { s.Where(sql.EQ(s.C({{ $.ID.Constant }}), id)) } {{- end }} {{ define "dialect/sql/predicate/id/ops" -}} {{- $op := $.Scope.Op -}} {{- $arg := $.Scope.Arg -}} {{- $storage := $.Scope.Storage -}} func(s *sql.Selector) { {{- if $op.Variadic }} v := make([]interface{}, len({{ $arg }})) for i := range v { v[i] = {{ $arg }}[i] } {{- end }} s.Where(sql.{{ call $storage.OpCode $op }}(s.C({{ $.ID.Constant }}){{ if not $op.Niladic }},{{ if $op.Variadic }}v...{{ else }}id{{ end }}{{ end }})) } {{- end }} {{ define "dialect/sql/predicate/field" -}} {{- $f := $.Scope.Field -}} {{- $arg := $.Scope.Arg -}} func(s *sql.Selector) { s.Where(sql.EQ(s.C({{ $f.Constant }}), {{ $arg }})) } {{- end }} {{ define "dialect/sql/predicate/field/ops" -}} {{- $f := $.Scope.Field -}} {{- $op := $.Scope.Op -}} {{- $arg := $.Scope.Arg -}} {{- $storage := $.Scope.Storage -}} func(s *sql.Selector) { s.Where(sql.{{ call $storage.OpCode $op }}(s.C({{ $f.Constant }}){{ if not $op.Niladic }}, {{ $arg }}{{ if $op.Variadic }}...{{ end }}{{ end }})) } {{- end }} {{ define "dialect/sql/predicate/edge/has" -}} {{- $e := $.Scope.Edge -}} func(s *sql.Selector) { step := sqlgraph.NewStep( {{- if $.HasCompositeID }} {{- /* Query that goes from the edge schema. */}} sqlgraph.From(Table, {{ $e.ColumnConstant }}), sqlgraph.To({{ $e.InverseTableConstant }}, {{ print $e.Type.Name "FieldID" }}), {{- else }} sqlgraph.From(Table, {{ $.ID.Constant }}), {{- if $e.Type.HasOneFieldID }} {{- $refid := $.ID.Constant }}{{ if ne $e.Type.ID.StorageKey $.ID.StorageKey }}{{ $refid = print $e.Type.Name "FieldID" }}{{ end }} sqlgraph.To({{ $e.TableConstant }}, {{ $refid }}), {{- else }} {{- /* Query that goes to the edge schema. */}} sqlgraph.To({{ $e.TableConstant }}, {{ $e.ColumnConstant }}), {{- end }} {{- end }} sqlgraph.Edge(sqlgraph.{{ $e.Rel.Type }}, {{ $e.IsInverse }}, {{ $e.TableConstant }}, {{- if $e.M2M -}} {{ $e.PKConstant }}... {{- else -}} {{ $e.ColumnConstant }} {{- end -}} ), ) {{- /* Allow mutating the sqlgraph.Step by ent extensions or user templates.*/}} {{- with $tmpls := matchTemplate "dialect/sql/predicate/edge/has/*" }} {{- range $tmpl := $tmpls }} {{- xtemplate $tmpl $ }} {{- end }} {{- end }} sqlgraph.HasNeighbors(s, step) } {{- end }} {{ define "dialect/sql/predicate/edge/haswith" -}} {{- $e := $.Scope.Edge -}} func(s *sql.Selector) { step := sqlgraph.NewStep( {{- if $.HasCompositeID }} {{- /* Query that goes from the edge schema. */}} sqlgraph.From(Table, {{ $e.ColumnConstant }}), sqlgraph.To({{ $e.InverseTableConstant }}, {{ print $e.Type.Name "FieldID" }}), {{- else }} sqlgraph.From(Table, {{ $.ID.Constant }}), {{- if $e.Type.HasOneFieldID }} {{- $refid := $.ID.Constant }}{{ if ne $e.Type.ID.StorageKey $.ID.StorageKey }}{{ $refid = print $e.Type.Name "FieldID" }}{{ end }} sqlgraph.To({{ if ne $.Table $e.Type.Table }}{{ $e.InverseTableConstant }}{{ else }}Table{{ end }}, {{ $refid }}), {{- else }} {{- /* Query that goes to the edge schema. */}} sqlgraph.To({{ if ne $.Table $e.Type.Table }}{{ $e.InverseTableConstant }}{{ else }}Table{{ end }}, {{ $e.ColumnConstant }}), {{- end }} {{- end }} sqlgraph.Edge(sqlgraph.{{ $e.Rel.Type }}, {{ $e.IsInverse }}, {{ $e.TableConstant }}, {{- if $e.M2M -}} {{ $e.PKConstant }}... {{- else -}} {{ $e.ColumnConstant }} {{- end -}} ), ) {{- /* Allow mutating the sqlgraph.Step by ent extensions or user templates.*/}} {{- with $tmpls := matchTemplate "dialect/sql/predicate/edge/haswith/*" }} {{- range $tmpl := $tmpls }} {{- xtemplate $tmpl $ }} {{- end }} {{- end }} sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) { for _, p := range preds { p(s) } }) } {{- end }} {{ define "dialect/sql/predicate/and" -}} func(s *sql.Selector) { s1 := s.Clone().SetP(nil) for _, p := range predicates { p(s1) } s.Where(s1.P()) } {{- end }} {{ define "dialect/sql/predicate/or" -}} func(s *sql.Selector) { s1 := s.Clone().SetP(nil) for i, p := range predicates { if i > 0 { s1.Or() } p(s1) } s.Where(s1.P()) } {{- end }} {{ define "dialect/sql/predicate/not" -}} func(s *sql.Selector) { p(s.Not()) } {{- end }}