mirror of
https://github.com/ent/ent.git
synced 2026-05-22 09:31:45 +03:00
entc/gen: change neighbors-with check to use sqlgraph
Reviewed By: alexsn Differential Revision: D18729648 fbshipit-source-id: 23eb95bdb0c34c811621a819be6581e1e6fcb474
This commit is contained in:
committed by
Facebook Github Bot
parent
f98dbbc440
commit
1a73b8cf55
@@ -741,7 +741,7 @@ func templateDialectSqlOpenTmpl() (*asset, error) {
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _templateDialectSqlPredicateTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x57\xc1\x6e\x1b\x37\x10\x3d\x4b\x5f\x31\x30\x04\x94\x6b\x28\x94\xa5\x24\x87\x16\x70\x01\x43\xb1\x51\xb5\x89\x94\x56\x46\x7b\x30\x8c\x80\x5e\xce\x4a\x6c\x68\x72\x43\x52\x32\x84\xcd\xfe\x7b\x41\x2e\x25\xad\xe4\x55\xec\xda\x6e\x4e\xbd\x69\x39\x8f\xc3\x99\xf7\xde\xd0\x74\x51\xf4\x8e\xdb\x43\x9d\xaf\x8c\x98\xcd\x1d\x0c\x4e\xfa\x3f\xbe\xca\x0d\x5a\x54\x0e\x2e\x58\x8a\x37\x5a\x7f\x86\x91\x4a\x29\x9c\x49\x09\x01\x64\xc1\xc7\xcd\x12\x39\x6d\x5f\xce\x85\x05\xab\x17\x26\x45\x48\x35\x47\x10\x16\xa4\x48\x51\x59\xe4\xb0\x50\x1c\x0d\xb8\x39\xc2\x59\xce\xd2\x39\xc2\x80\x9e\xac\xa3\x90\xe9\x85\xe2\x6d\xa1\x42\xfc\xfd\x68\x78\x3e\x9e\x9e\x43\x26\x24\x42\x5c\x33\x5a\x3b\xe0\xc2\x60\xea\xb4\x59\x81\xce\xc0\xd5\x0e\x73\x06\x91\xb6\x8f\x7b\x65\xd9\x6e\x17\x05\x70\xcc\x84\x42\x38\xe2\x82\x49\x4c\x5d\xcf\x7e\x91\xbd\xdc\x20\x17\x29\x73\xd8\x13\xfc\x08\x5e\x95\x65\xbb\x95\x2d\x54\x4a\x2c\x1c\xdb\x2f\x92\x4e\x51\x86\xd4\x09\x14\xed\x56\xab\x28\x5e\x81\xc8\xa0\x43\x47\xef\xe8\xc8\x4e\x9d\x11\x6a\x06\x65\x29\x78\x17\x3e\xc1\x4f\xa7\x60\x9d\x49\xb5\x5a\xd2\x33\xa7\x05\x11\x3c\xf1\x78\x54\x1c\x7c\xd6\x96\xa5\x7f\xcd\xd1\x20\xf1\x69\xcf\x7f\x27\x96\x0e\x49\x51\x54\xb9\x86\x5a\x59\xc7\x94\x83\xb2\x4c\xba\x20\x78\x92\xb4\x5b\x65\xbb\xb6\xfb\x31\xd5\xf7\x74\x6e\x63\x07\x7e\x67\x47\xe7\xbe\xa4\x0e\x9d\xa6\x3a\x47\x3a\xc9\x6b\x21\x66\x66\xf5\xd8\x99\x99\xd5\x82\xd6\x69\xc3\x66\x58\x07\x4c\xe3\xd2\x23\xe9\xd1\x39\xfd\x93\x19\xc1\xb8\x48\xab\xd6\x5b\xbd\x9e\x0f\x28\xed\x80\x99\xd9\xe2\x16\x95\xb3\x70\x87\x06\x21\x37\x7a\x29\x38\xf2\x2e\xb0\x3c\xf7\xcd\x7a\x51\x2f\xce\xde\x4f\xcf\x21\x8d\xa4\xd8\x6e\xcc\x60\x85\x4a\x11\xee\x10\x52\xa6\x7e\x70\x7e\x83\x5c\xc1\xd1\x68\x0c\x24\x39\xa2\x10\x4c\x76\x27\xa4\x84\x5b\xf6\x19\x2b\x1b\x6c\xe8\x81\x8c\x49\xbb\xa2\x3e\x91\xc8\x40\xa2\x0a\xd4\x7b\x1a\xca\x32\x81\xd3\x53\x38\x09\x0d\xec\x8a\x74\xc1\xa4\x45\xe2\xb5\x68\xb5\x5a\x06\xdd\xc2\x28\xff\x33\x34\xb4\xf4\xf4\xf8\x83\xc8\xd5\xb5\x50\x0e\x4d\xc6\x52\x2c\xca\xee\x7e\xee\xb0\x39\xd3\x06\x84\xdf\x60\x98\x9a\x21\x2c\xe3\x59\x45\xd1\x64\xa6\xe5\x95\xb8\xf6\x76\xda\x73\xd3\x36\xe7\x95\xb8\x4e\x8a\x02\x50\x5a\x8c\x70\x38\x85\x9d\xb0\x8f\xae\x5d\x17\xca\x0d\x4e\xf2\xf8\x86\xf3\x02\x27\x8d\x06\xae\xb5\xb1\xce\xd1\xe4\xe5\xa2\x80\x94\x49\xb9\x31\x0e\x9d\xe4\x43\x3f\xe4\xde\x80\x65\xf9\x0d\x9f\xc7\xfe\x77\xdd\xb2\xa4\x94\x6e\xbb\x13\x7c\xd3\xcb\x13\x66\x22\x13\x28\x79\x7d\x24\xb2\xba\xa9\x2f\x7c\xf4\x21\x4b\x1f\x18\xda\x6c\xaf\x95\xe5\x53\xab\xdb\x1f\xda\x43\x15\xfe\x3f\xd1\xff\xf1\x44\x3f\xd7\xde\xbb\x8e\xa8\xac\xed\xd9\xf1\xd4\x8d\x85\x8c\xcc\x75\x61\xd9\xe8\xfa\x68\xfa\x70\xfe\x73\x1c\x8f\x7c\x86\xbd\x39\xdb\xb1\xd4\x8e\xee\xe7\xfc\x61\xd1\xad\xc3\x60\x34\x1f\x19\xe3\xdd\xd4\x61\x4e\x3c\x4d\x81\x41\xa3\x6f\xc9\x25\xbb\x91\x18\xe6\xf7\xfe\x54\xaf\x81\x97\x3a\xd0\x82\x34\x80\x6b\x90\x07\xf6\xf9\x02\xd7\xbc\x77\x90\xfe\x81\x92\x5e\xae\x72\xdc\x6c\x44\x3a\xb2\x23\xb5\x44\x63\xeb\x6b\xf7\x0e\x89\x17\x6c\xe5\x5e\xa4\x1f\x06\x1f\xaa\xae\xe3\xbd\xdb\x41\xfa\xf1\xb7\x1a\x9e\x52\xba\xd9\x11\xae\x9e\x3d\xf0\x50\xcb\xc5\xad\xaa\x6d\xd8\xa2\x15\x5f\x83\x43\x13\xde\x5b\xbe\xfc\x5f\x98\x1d\xa3\x98\xcd\x6f\xb4\xb1\xc4\x76\xc1\x93\xfa\x74\x3d\xef\x84\x9b\x3f\x4b\xd3\x5d\x2a\x62\x03\xbe\xb7\xf0\x77\xa9\x5f\xd9\xae\xf3\xb7\xff\x38\x09\x1f\x6b\x78\x9d\xed\x0a\xbf\x46\x78\xf8\x66\x6b\x8d\x86\x9b\x85\x90\xfe\x49\x17\x1d\xf4\xae\x6a\x8c\xd8\xcd\xaf\x6a\xfe\x5c\x3f\x20\x2a\xe9\x48\xb5\x34\xf0\x4b\x71\x7f\x0c\xd4\x85\x54\x08\x9d\x6a\x39\x68\xbe\xca\xa3\xf0\xfb\x6a\xc5\x8a\xf7\x4d\x71\x40\xe1\x00\x6b\xd4\x33\xd4\xf4\xfa\x7e\x4d\xcd\x9e\xab\xe0\x6f\xea\xf0\x4a\x03\xe2\x5e\xc7\x4b\x62\xcf\x75\x57\x15\x89\x65\x79\x9d\x24\x95\xff\xc2\x78\xb9\xd7\xf1\xeb\x57\x2d\x14\x71\x83\xf8\x35\x51\xdf\x4e\x24\x42\xa2\x2e\xb8\xc1\x06\x14\x28\xda\x9b\xb4\xaa\xcc\xb7\x0d\x65\x26\xd5\x74\xbb\xc1\xe6\xd1\xf2\xa9\x0b\xf9\xf6\xdd\xe2\x6d\x69\xe3\xad\x9a\x13\xf7\x36\xd9\xbc\x86\xdc\x9b\xb0\x75\xdd\x6e\x15\xa9\x5f\xa2\x23\x45\x5c\xff\xe0\x43\xc0\xbd\x49\x92\xbd\x57\x8a\x36\x95\x57\x27\x40\x98\xe2\xfe\xf7\x64\x30\xd9\xf1\x63\x12\x8c\xd7\x3b\x06\x0f\xfa\xfa\x15\x88\x07\xf8\x39\x01\x11\x0d\xeb\x87\x27\x81\xf0\xfa\x7f\x41\x5b\xc6\x26\x0f\x13\x5c\xb1\xf8\xbd\x5d\xdc\xec\xc9\x46\x5b\x3f\x4e\xde\xc1\x56\xde\x43\x4a\x36\xdc\x8b\xc1\x7f\xbb\x6a\x46\x99\x26\x83\x0f\xbb\x32\x31\x6b\x75\xfa\x3d\x44\xba\x5f\x64\x93\x44\x07\x86\xfa\xc5\xc8\x6a\xb0\x7d\x8d\xa8\xf8\xf2\xf8\x97\x7f\x1e\x98\x7a\xf8\x7f\x56\x1b\xb9\x1a\x4a\xad\x90\x24\x74\x8a\xee\x23\x51\x42\xfa\xa3\x9b\xfb\x0a\xb9\x63\x73\x39\xb1\x7d\x8f\xdc\x79\x15\xf5\xe9\x47\xf2\x84\xc7\x89\x36\xcf\x2e\x56\x7c\xb3\x58\x91\x81\x80\x9f\xb7\x2f\xbf\x3e\x9d\x18\xb2\x55\xe6\x25\x7b\x51\xda\x3d\xd8\x4c\x4e\x2c\x1d\x6b\x77\x3f\xfd\x3f\x01\x00\x00\xff\xff\xe8\xcb\x1b\xa4\x4f\x11\x00\x00")
|
||||
var _templateDialectSqlPredicateTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x96\x6f\x6b\x23\xb7\x13\xc7\x1f\x7b\x5f\xc5\x10\x0c\xbf\xdd\xe0\xc8\x49\x9e\xfd\x0a\x29\x04\xd7\xa1\xa6\x77\x4e\x5a\x87\xde\x83\x10\x0e\x65\x35\x6b\x0f\xa7\x48\x3a\x49\x5e\x63\x96\x7d\xef\x45\xf2\xda\x5e\x3b\xce\xf9\x9a\xb4\x50\x68\x9f\x05\xcf\x1f\xcd\x7c\xe7\x33\x93\xad\xaa\xfe\x69\x32\xd0\x66\x69\x69\x3a\xf3\x70\x79\x7e\xf1\xff\x33\x63\xd1\xa1\xf2\x70\xc3\x73\x7c\xd2\xfa\x0b\x8c\x54\xce\xe0\x5a\x4a\x88\x4e\x0e\x82\xdd\x96\x28\x58\x72\x3f\x23\x07\x4e\xcf\x6d\x8e\x90\x6b\x81\x40\x0e\x24\xe5\xa8\x1c\x0a\x98\x2b\x81\x16\xfc\x0c\xe1\xda\xf0\x7c\x86\x70\xc9\xce\xd7\x56\x28\xf4\x5c\x89\x84\x54\xb4\x7f\x18\x0d\x86\xe3\xc9\x10\x0a\x92\x08\xcd\x6f\x56\x6b\x0f\x82\x2c\xe6\x5e\xdb\x25\xe8\x02\x7c\xeb\x31\x6f\x11\x59\x72\xda\xaf\xeb\x24\xa9\x2a\x10\x58\x90\x42\x38\x11\xc4\x25\xe6\xbe\xef\xbe\xca\xbe\xb1\x28\x28\xe7\x1e\xfb\x24\x4e\xe0\xac\xae\x93\x4e\x31\x57\x79\xea\xe0\xd4\x7d\x95\x6c\x82\x32\xa6\xce\xa0\x4a\x3a\x9d\xaa\x3a\x03\x2a\xa0\xcb\x46\x3f\xb1\x91\x9b\x78\x4b\x6a\x0a\x75\x4d\xa2\x07\x9f\xe1\x87\x2b\x70\xde\xe6\x5a\x95\xec\xda\x6b\x4a\x49\x64\xc1\x1f\x95\x80\x90\xb5\xe3\xd8\xa7\x19\x5a\x4c\x43\xda\xe1\xaf\xa9\x63\x83\xb4\xaa\x56\xb9\x06\x5a\x39\xcf\x95\x87\xba\xce\x7a\x40\x22\xcb\x92\x4e\x9d\xb4\xa2\xbf\xa7\xfa\xbe\x36\xae\xe9\x20\x44\x76\xb5\x09\x25\x75\xd9\x24\xd7\x06\xd9\xad\x69\x99\xb8\x9d\xb6\x6d\xd7\x76\xda\x32\x3a\xaf\x2d\x9f\x62\xdb\x61\xd2\xfc\xf4\x9d\xf2\x68\xc3\x7e\xe7\x96\xb8\xa0\x7c\xd5\x7a\xa7\xdf\x0f\x06\xa5\x3d\x70\x3b\x9d\x3f\xa3\xf2\x0e\x16\x68\x11\x8c\xd5\x25\x09\x14\x3d\xe0\xc6\x84\x66\xc3\x50\x6f\xae\x3f\x4c\x86\x90\x37\xa2\xb8\x5e\x93\xc1\x91\xca\x11\x16\x08\x39\x57\xff\xf3\x21\x40\x2e\xe1\x64\x34\x86\x34\x3b\x61\x10\x21\x5b\x90\x94\xf0\xcc\xbf\xe0\x0a\x83\x8d\x3c\x50\x70\xe9\x96\x2c\x24\xa2\x02\x24\xaa\x28\x7d\x90\xa1\xae\x33\xb8\xba\x82\xf3\xd8\xc0\xee\x90\x6e\xb8\x74\x98\x86\x59\x74\x3a\x1d\x8b\x7e\x6e\x55\xf8\x33\x36\x54\x06\x79\xc2\x43\xe9\xc3\x23\x29\x8f\xb6\xe0\x39\x56\x75\x6f\x3f\x77\x0c\x2e\xb4\x05\x0a\x01\x96\xab\x29\x42\xd9\xbc\x55\x55\x87\x60\x2a\x1f\xe8\x31\xe0\xb4\x47\xd3\x36\xe7\x03\x3d\x66\x55\x05\x28\x1d\x36\xee\x70\x05\x3b\xe6\x60\x5d\x53\x17\xcb\x8d\x24\x05\xff\x03\xef\x45\x4d\x0e\x02\xdc\x6a\x63\x9d\xe3\x10\xcb\x55\x05\x39\x97\x72\x03\x0e\xbb\x35\x83\xb0\xe4\x01\xc0\xba\xfe\x06\xe7\x4d\xff\xbb\xb4\x94\x8c\xb1\x6d\x77\x24\x36\xbd\xbc\x61\x27\x0a\x42\x29\xda\x2b\x51\xb4\xa1\xbe\x09\xd6\x63\x48\xbf\xb2\xb4\xc5\x5e\x2b\xe5\x5b\xab\xdb\x5f\xda\xd7\x2a\xfc\x6f\xa3\xff\xe6\x8d\x7e\x2f\xde\xbb\x44\xac\xd0\x0e\xea\x04\xe9\xc6\x24\x1b\xe5\x7a\x50\x1e\xa4\xbe\x81\x3e\xbe\xff\x1e\xe2\x51\x4c\xb1\x3f\xe3\x3b\x48\xed\xcc\x7d\x28\x8e\x0f\xdd\x79\x8c\xa0\x05\xcb\x18\x17\x13\x8f\x26\x0d\x32\x45\x05\xad\x7e\x4e\xef\xf9\x93\xc4\xb8\xbf\x2f\xb7\x7a\xed\x78\xaf\xa3\x2c\xc8\xa2\x73\xcb\xe5\x48\x5c\x28\x70\xad\x7b\x17\xd9\x6f\x28\xd9\xfd\xd2\xe0\x26\x10\xd9\xc8\x8d\x54\x89\xd6\xb5\x7f\x7b\xf1\x48\x73\x60\x57\xf4\x22\xfb\x78\xf9\x71\xd5\x75\x73\x77\xbb\xc8\xee\x7e\x69\xf9\x33\xc6\x36\x11\xf1\xf4\xec\x39\x0f\xb4\x9c\x3f\xab\x56\xc0\xd6\x5b\x89\xb5\x73\x6c\x22\xb0\x15\xca\xff\x99\xbb\x31\xd2\x74\xf6\xa4\xad\x4b\x5d\x0f\x82\xa8\x6f\x9f\xe7\x82\xfc\xec\x9f\x32\xd3\x00\x36\x42\x77\xa5\x79\x14\x7f\x69\x9a\x09\xac\xe8\x0d\x33\x5a\x4d\x68\x7f\x2c\xdb\xc3\x1e\x2d\x1b\xd2\xff\x85\x4c\x7c\x22\x3f\x5b\x73\xd1\x83\xd7\x07\x17\x3f\x1e\x3e\xf7\xc0\x6c\xbf\x1f\x02\x1e\xae\xb9\x6e\x26\x75\xd9\xfa\x84\xd5\x7f\x9e\x2f\xae\x8e\x7f\xf4\xba\x8b\x08\x0e\x1b\x48\xad\x30\xcd\xd8\x04\xfd\x5d\xaa\x48\x86\x77\x0f\x17\x17\x73\x37\x15\x9a\xd4\x5d\x04\xcf\x9d\xb3\x7a\xc1\xee\xd2\x37\x5c\x37\x6d\xdf\x5d\x2c\x7d\xb3\x58\x2a\x80\xe0\xc7\xed\xbf\x8e\x0b\x76\x6b\xd3\x8d\xbe\x7f\x69\x2f\x4a\xfb\xa3\xcd\x98\xd4\xb1\xb1\xf6\x2f\xd3\xff\x11\x00\x00\xff\xff\x56\x6b\x4c\xdf\x90\x0d\x00\x00")
|
||||
|
||||
func templateDialectSqlPredicateTmplBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -756,7 +756,7 @@ func templateDialectSqlPredicateTmpl() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "template/dialect/sql/predicate.tmpl", size: 4431, mode: os.FileMode(420), modTime: time.Unix(1, 0)}
|
||||
info := bindataFileInfo{name: "template/dialect/sql/predicate.tmpl", size: 3472, mode: os.FileMode(420), modTime: time.Unix(1, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
@@ -80,51 +80,22 @@ in the LICENSE file in the root directory of this source tree.
|
||||
{{ define "dialect/sql/predicate/edge/haswith" -}}
|
||||
{{- $e := $.Scope.Edge -}}
|
||||
func(s *sql.Selector) {
|
||||
{{- if $e.M2M }}
|
||||
{{ $i := 1 }}{{ $j := 0 }}{{- if $e.IsInverse }}{{ $i = 0 }}{{ $j = 1 }}{{ end -}}
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(
|
||||
{{- if ne $.Table $e.Type.Table -}}
|
||||
{{ $e.InverseTableConstant }}
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, {{ $.ID.Constant }}),
|
||||
sql.To({{ if ne $.Table $e.Type.Table }}{{ $e.InverseTableConstant }}{{ else }}Table{{ end }}, {{ $.ID.Constant }}),
|
||||
sql.Edge(sql.{{ $e.Rel.Type }}, {{ $e.IsInverse }}, {{ $e.TableConstant }},
|
||||
{{- if $e.M2M -}}
|
||||
{{ $e.PKConstant }}...
|
||||
{{- else -}}
|
||||
Table
|
||||
{{ $e.ColumnConstant }}
|
||||
{{- end -}}
|
||||
)
|
||||
t3 := builder.Table({{ $e.TableConstant }})
|
||||
t4 := builder.Select(t3.C({{ $e.PKConstant }}[{{ $j }}])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C({{ $e.PKConstant }}[{{ $i }}]), t2.C({{ $e.Type.ID.Constant }}))
|
||||
t5 := builder.Select().From(t2)
|
||||
),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
p(s)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C({{ $.ID.Constant }}), t4))
|
||||
{{- else if or $e.M2O (and $e.O2O $e.IsInverse) }}{{/* M2O || (O2O with inverse edge) */}}
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select({{ $e.Type.ID.Constant }}).From(builder.Table(
|
||||
{{- if ne $.Table $e.Type.Table -}}
|
||||
{{ $e.InverseTableConstant }}
|
||||
{{- else -}}
|
||||
{{ $e.TableConstant }}
|
||||
{{- end -}}
|
||||
))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C({{ $e.ColumnConstant }}), t2))
|
||||
{{- else }}{{/* O2M || (O2O with assoc edge) */}}
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select({{ $e.ColumnConstant }}).From(builder.Table({{ $e.TableConstant }}))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C({{ $.ID.Constant }}), t2))
|
||||
{{- end }}
|
||||
})
|
||||
}
|
||||
{{- end }}
|
||||
|
||||
|
||||
@@ -130,20 +130,16 @@ func HasUsers() predicate.Group {
|
||||
func HasUsersWith(preds ...predicate.User) predicate.Group {
|
||||
return predicate.Group(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(UsersInverseTable)
|
||||
t3 := builder.Table(UsersTable)
|
||||
t4 := builder.Select(t3.C(UsersPrimaryKey[0])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(UsersPrimaryKey[1]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(UsersInverseTable, FieldID),
|
||||
sql.Edge(sql.M2M, false, UsersTable, UsersPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@@ -130,20 +130,16 @@ func HasGroups() predicate.User {
|
||||
func HasGroupsWith(preds ...predicate.Group) predicate.User {
|
||||
return predicate.User(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(GroupsInverseTable)
|
||||
t3 := builder.Table(GroupsTable)
|
||||
t4 := builder.Select(t3.C(GroupsPrimaryKey[1])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(GroupsPrimaryKey[0]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(GroupsInverseTable, FieldID),
|
||||
sql.Edge(sql.M2M, true, GroupsTable, GroupsPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@@ -789,13 +789,16 @@ func HasOwner() predicate.Card {
|
||||
func HasOwnerWith(preds ...predicate.User) predicate.Card {
|
||||
return predicate.CardPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(OwnerInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(OwnerColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(OwnerInverseTable, FieldID),
|
||||
sql.Edge(sql.O2O, true, OwnerTable, OwnerColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
|
||||
@@ -848,13 +848,16 @@ func HasOwner() predicate.File {
|
||||
func HasOwnerWith(preds ...predicate.User) predicate.File {
|
||||
return predicate.FilePerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(OwnerInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(OwnerColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(OwnerInverseTable, FieldID),
|
||||
sql.Edge(sql.M2O, true, OwnerTable, OwnerColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
@@ -887,13 +890,16 @@ func HasType() predicate.File {
|
||||
func HasTypeWith(preds ...predicate.FileType) predicate.File {
|
||||
return predicate.FilePerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(TypeInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(TypeColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(TypeInverseTable, FieldID),
|
||||
sql.Edge(sql.M2O, true, TypeTable, TypeColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
|
||||
@@ -344,13 +344,16 @@ func HasFiles() predicate.FileType {
|
||||
func HasFilesWith(preds ...predicate.File) predicate.FileType {
|
||||
return predicate.FileTypePerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FilesColumn).From(builder.Table(FilesTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(FilesInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, false, FilesTable, FilesColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
|
||||
@@ -849,13 +849,16 @@ func HasFiles() predicate.Group {
|
||||
func HasFilesWith(preds ...predicate.File) predicate.Group {
|
||||
return predicate.GroupPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FilesColumn).From(builder.Table(FilesTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(FilesInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, false, FilesTable, FilesColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -888,13 +891,16 @@ func HasBlocked() predicate.Group {
|
||||
func HasBlockedWith(preds ...predicate.User) predicate.Group {
|
||||
return predicate.GroupPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(BlockedColumn).From(builder.Table(BlockedTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(BlockedInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, false, BlockedTable, BlockedColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -927,20 +933,16 @@ func HasUsers() predicate.Group {
|
||||
func HasUsersWith(preds ...predicate.User) predicate.Group {
|
||||
return predicate.GroupPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(UsersInverseTable)
|
||||
t3 := builder.Table(UsersTable)
|
||||
t4 := builder.Select(t3.C(UsersPrimaryKey[1])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(UsersPrimaryKey[0]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(UsersInverseTable, FieldID),
|
||||
sql.Edge(sql.M2M, true, UsersTable, UsersPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
@@ -973,13 +975,16 @@ func HasInfo() predicate.Group {
|
||||
func HasInfoWith(preds ...predicate.GroupInfo) predicate.Group {
|
||||
return predicate.GroupPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(InfoInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(InfoColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(InfoInverseTable, FieldID),
|
||||
sql.Edge(sql.M2O, false, InfoTable, InfoColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
|
||||
@@ -472,13 +472,16 @@ func HasGroups() predicate.GroupInfo {
|
||||
func HasGroupsWith(preds ...predicate.Group) predicate.GroupInfo {
|
||||
return predicate.GroupInfoPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(GroupsColumn).From(builder.Table(GroupsTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(GroupsInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, true, GroupsTable, GroupsColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
|
||||
@@ -332,13 +332,16 @@ func HasPrev() predicate.Node {
|
||||
func HasPrevWith(preds ...predicate.Node) predicate.Node {
|
||||
return predicate.NodePerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(PrevTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(PrevColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.O2O, true, PrevTable, PrevColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
@@ -371,13 +374,16 @@ func HasNext() predicate.Node {
|
||||
func HasNextWith(preds ...predicate.Node) predicate.Node {
|
||||
return predicate.NodePerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(NextColumn).From(builder.Table(NextTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.O2O, false, NextTable, NextColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
|
||||
@@ -344,13 +344,16 @@ func HasTeam() predicate.Pet {
|
||||
func HasTeamWith(preds ...predicate.User) predicate.Pet {
|
||||
return predicate.PetPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(TeamInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(TeamColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(TeamInverseTable, FieldID),
|
||||
sql.Edge(sql.O2O, true, TeamTable, TeamColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
@@ -383,13 +386,16 @@ func HasOwner() predicate.Pet {
|
||||
func HasOwnerWith(preds ...predicate.User) predicate.Pet {
|
||||
return predicate.PetPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(OwnerInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(OwnerColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(OwnerInverseTable, FieldID),
|
||||
sql.Edge(sql.M2O, true, OwnerTable, OwnerColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
|
||||
@@ -1200,13 +1200,16 @@ func HasCard() predicate.User {
|
||||
func HasCardWith(preds ...predicate.Card) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(CardColumn).From(builder.Table(CardTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(CardInverseTable, FieldID),
|
||||
sql.Edge(sql.O2O, false, CardTable, CardColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -1239,13 +1242,16 @@ func HasPets() predicate.User {
|
||||
func HasPetsWith(preds ...predicate.Pet) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(PetsColumn).From(builder.Table(PetsTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(PetsInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, false, PetsTable, PetsColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -1278,13 +1284,16 @@ func HasFiles() predicate.User {
|
||||
func HasFilesWith(preds ...predicate.File) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FilesColumn).From(builder.Table(FilesTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(FilesInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, false, FilesTable, FilesColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -1317,20 +1326,16 @@ func HasGroups() predicate.User {
|
||||
func HasGroupsWith(preds ...predicate.Group) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(GroupsInverseTable)
|
||||
t3 := builder.Table(GroupsTable)
|
||||
t4 := builder.Select(t3.C(GroupsPrimaryKey[0])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(GroupsPrimaryKey[1]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(GroupsInverseTable, FieldID),
|
||||
sql.Edge(sql.M2M, false, GroupsTable, GroupsPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -1363,20 +1368,16 @@ func HasFriends() predicate.User {
|
||||
func HasFriendsWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(Table)
|
||||
t3 := builder.Table(FriendsTable)
|
||||
t4 := builder.Select(t3.C(FriendsPrimaryKey[0])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(FriendsPrimaryKey[1]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2M, false, FriendsTable, FriendsPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
in, out := __.InV(), __.OutV()
|
||||
@@ -1415,20 +1416,16 @@ func HasFollowers() predicate.User {
|
||||
func HasFollowersWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(Table)
|
||||
t3 := builder.Table(FollowersTable)
|
||||
t4 := builder.Select(t3.C(FollowersPrimaryKey[1])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(FollowersPrimaryKey[0]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2M, true, FollowersTable, FollowersPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
@@ -1461,20 +1458,16 @@ func HasFollowing() predicate.User {
|
||||
func HasFollowingWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(Table)
|
||||
t3 := builder.Table(FollowingTable)
|
||||
t4 := builder.Select(t3.C(FollowingPrimaryKey[0])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(FollowingPrimaryKey[1]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2M, false, FollowingTable, FollowingPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -1507,13 +1500,16 @@ func HasTeam() predicate.User {
|
||||
func HasTeamWith(preds ...predicate.Pet) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(TeamColumn).From(builder.Table(TeamTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(TeamInverseTable, FieldID),
|
||||
sql.Edge(sql.O2O, false, TeamTable, TeamColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
@@ -1546,13 +1542,16 @@ func HasSpouse() predicate.User {
|
||||
func HasSpouseWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(SpouseColumn).From(builder.Table(SpouseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.O2O, false, SpouseTable, SpouseColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
in, out := __.InV(), __.OutV()
|
||||
@@ -1591,13 +1590,16 @@ func HasChildren() predicate.User {
|
||||
func HasChildrenWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(ChildrenColumn).From(builder.Table(ChildrenTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.O2M, true, ChildrenTable, ChildrenColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.OutV()
|
||||
@@ -1630,13 +1632,16 @@ func HasParent() predicate.User {
|
||||
func HasParentWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.UserPerDialect(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(ParentTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(ParentColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2O, false, ParentTable, ParentColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
func(t *dsl.Traversal) {
|
||||
tr := __.InV()
|
||||
|
||||
@@ -276,13 +276,16 @@ func HasSpouse() predicate.User {
|
||||
func HasSpouseWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.User(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(SpouseColumn).From(builder.Table(SpouseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.O2O, false, SpouseTable, SpouseColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -305,20 +308,16 @@ func HasFollowers() predicate.User {
|
||||
func HasFollowersWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.User(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(Table)
|
||||
t3 := builder.Table(FollowersTable)
|
||||
t4 := builder.Select(t3.C(FollowersPrimaryKey[1])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(FollowersPrimaryKey[0]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2M, true, FollowersTable, FollowersPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -341,20 +340,16 @@ func HasFollowing() predicate.User {
|
||||
func HasFollowingWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.User(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(Table)
|
||||
t3 := builder.Table(FollowingTable)
|
||||
t4 := builder.Select(t3.C(FollowingPrimaryKey[0])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(FollowingPrimaryKey[1]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2M, false, FollowingTable, FollowingPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@@ -352,13 +352,16 @@ func HasOwner() predicate.Pet {
|
||||
func HasOwnerWith(preds ...predicate.User) predicate.Pet {
|
||||
return predicate.Pet(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(FieldID).From(builder.Table(OwnerInverseTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(OwnerColumn), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(OwnerInverseTable, FieldID),
|
||||
sql.Edge(sql.M2O, true, OwnerTable, OwnerColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@@ -276,13 +276,16 @@ func HasPets() predicate.User {
|
||||
func HasPetsWith(preds ...predicate.Pet) predicate.User {
|
||||
return predicate.User(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Select(PetsColumn).From(builder.Table(PetsTable))
|
||||
for _, p := range preds {
|
||||
p(t2)
|
||||
}
|
||||
s.Where(sql.In(t1.C(FieldID), t2))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(PetsInverseTable, FieldID),
|
||||
sql.Edge(sql.O2M, false, PetsTable, PetsColumn),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -305,20 +308,16 @@ func HasFriends() predicate.User {
|
||||
func HasFriendsWith(preds ...predicate.User) predicate.User {
|
||||
return predicate.User(
|
||||
func(s *sql.Selector) {
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
t1 := s.Table()
|
||||
t2 := builder.Table(Table)
|
||||
t3 := builder.Table(FriendsTable)
|
||||
t4 := builder.Select(t3.C(FriendsPrimaryKey[0])).
|
||||
From(t3).
|
||||
Join(t2).
|
||||
On(t3.C(FriendsPrimaryKey[1]), t2.C(FieldID))
|
||||
t5 := builder.Select().From(t2)
|
||||
for _, p := range preds {
|
||||
p(t5)
|
||||
}
|
||||
t4.FromSelect(t5)
|
||||
s.Where(sql.In(t1.C(FieldID), t4))
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, FieldID),
|
||||
sql.To(Table, FieldID),
|
||||
sql.Edge(sql.M2M, false, FriendsTable, FriendsPrimaryKey...),
|
||||
)
|
||||
sql.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||
for _, p := range preds {
|
||||
p(s)
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user