schema/field: json type support (#38)

Summary:
Pull Request resolved: https://github.com/facebookincubator/ent/pull/38

Only `IsNil` and `NotNil` predicates are supported this moment

Reviewed By: alexsn

Differential Revision: D17444976

fbshipit-source-id: 37336fa0bc7749af995933baee2e23bb7366dd78
This commit is contained in:
Ariel Mashraki
2019-09-19 04:58:21 -07:00
committed by Facebook Github Bot
parent 83d0063437
commit c3955a08f1
214 changed files with 4005 additions and 1296 deletions

View File

@@ -7,9 +7,8 @@
package pet
import (
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
)
// ID filters vertices based on their identifier.

View File

@@ -10,9 +10,8 @@ import (
"context"
"errors"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
)
// PetCreate is the builder for creating a Pet entity.
@@ -80,9 +79,9 @@ func (pc *PetCreate) sqlSave(ctx context.Context) (*Pet, error) {
return nil, err
}
builder := sql.Insert(pet.Table).Default(pc.driver.Dialect())
if pc.name != nil {
builder.Set(pet.FieldName, *pc.name)
pe.Name = *pc.name
if value := pc.name; value != nil {
builder.Set(pet.FieldName, *value)
pe.Name = *value
}
query, args := builder.Query()
if err := tx.Exec(ctx, query, args, &res); err != nil {

View File

@@ -9,10 +9,9 @@ package ent
import (
"context"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/dialect/sql"
)
// PetDelete is the builder for deleting a Pet entity.

View File

@@ -12,11 +12,10 @@ import (
"fmt"
"math"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/examples/o2m2types/ent/user"
"github.com/facebookincubator/ent/dialect/sql"
)
// PetQuery is the builder for querying Pet entities.

View File

@@ -11,11 +11,10 @@ import (
"errors"
"fmt"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/examples/o2m2types/ent/user"
"github.com/facebookincubator/ent/dialect/sql"
)
// PetUpdate is the builder for updating Pet entities.
@@ -125,15 +124,13 @@ func (pu *PetUpdate) sqlSave(ctx context.Context) (n int, err error) {
return 0, err
}
var (
update bool
res sql.Result
builder = sql.Update(pet.Table).Where(sql.InInts(pet.FieldID, ids...))
)
if value := pu.name; value != nil {
update = true
builder.Set(pet.FieldName, *value)
}
if update {
if !builder.Empty() {
query, args := builder.Query()
if err := tx.Exec(ctx, query, args, &res); err != nil {
return 0, rollback(tx, err)
@@ -269,16 +266,14 @@ func (puo *PetUpdateOne) sqlSave(ctx context.Context) (pe *Pet, err error) {
return nil, err
}
var (
update bool
res sql.Result
builder = sql.Update(pet.Table).Where(sql.InInts(pet.FieldID, ids...))
)
if value := puo.name; value != nil {
update = true
builder.Set(pet.FieldName, *value)
pe.Name = *value
}
if update {
if !builder.Empty() {
query, args := builder.Query()
if err := tx.Exec(ctx, query, args, &res); err != nil {
return nil, rollback(tx, err)

View File

@@ -7,9 +7,8 @@
package user
import (
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
)
// ID filters vertices based on their identifier.

View File

@@ -11,10 +11,9 @@ import (
"errors"
"fmt"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/examples/o2m2types/ent/user"
"github.com/facebookincubator/ent/dialect/sql"
)
// UserCreate is the builder for creating a User entity.
@@ -87,13 +86,13 @@ func (uc *UserCreate) sqlSave(ctx context.Context) (*User, error) {
return nil, err
}
builder := sql.Insert(user.Table).Default(uc.driver.Dialect())
if uc.age != nil {
builder.Set(user.FieldAge, *uc.age)
u.Age = *uc.age
if value := uc.age; value != nil {
builder.Set(user.FieldAge, *value)
u.Age = *value
}
if uc.name != nil {
builder.Set(user.FieldName, *uc.name)
u.Name = *uc.name
if value := uc.name; value != nil {
builder.Set(user.FieldName, *value)
u.Name = *value
}
query, args := builder.Query()
if err := tx.Exec(ctx, query, args, &res); err != nil {

View File

@@ -9,10 +9,9 @@ package ent
import (
"context"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/examples/o2m2types/ent/user"
"github.com/facebookincubator/ent/dialect/sql"
)
// UserDelete is the builder for deleting a User entity.

View File

@@ -12,11 +12,10 @@ import (
"fmt"
"math"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/examples/o2m2types/ent/user"
"github.com/facebookincubator/ent/dialect/sql"
)
// UserQuery is the builder for querying User entities.

View File

@@ -10,11 +10,10 @@ import (
"context"
"fmt"
"github.com/facebookincubator/ent/dialect/sql"
"github.com/facebookincubator/ent/examples/o2m2types/ent/pet"
"github.com/facebookincubator/ent/examples/o2m2types/ent/predicate"
"github.com/facebookincubator/ent/examples/o2m2types/ent/user"
"github.com/facebookincubator/ent/dialect/sql"
)
// UserUpdate is the builder for updating User entities.
@@ -147,23 +146,19 @@ func (uu *UserUpdate) sqlSave(ctx context.Context) (n int, err error) {
return 0, err
}
var (
update bool
res sql.Result
builder = sql.Update(user.Table).Where(sql.InInts(user.FieldID, ids...))
)
if value := uu.age; value != nil {
update = true
builder.Set(user.FieldAge, *value)
}
if value := uu.addage; value != nil {
update = true
builder.Add(user.FieldAge, *value)
}
if value := uu.name; value != nil {
update = true
builder.Set(user.FieldName, *value)
}
if update {
if !builder.Empty() {
query, args := builder.Query()
if err := tx.Exec(ctx, query, args, &res); err != nil {
return 0, rollback(tx, err)
@@ -338,26 +333,22 @@ func (uuo *UserUpdateOne) sqlSave(ctx context.Context) (u *User, err error) {
return nil, err
}
var (
update bool
res sql.Result
builder = sql.Update(user.Table).Where(sql.InInts(user.FieldID, ids...))
)
if value := uuo.age; value != nil {
update = true
builder.Set(user.FieldAge, *value)
u.Age = *value
}
if value := uuo.addage; value != nil {
update = true
builder.Add(user.FieldAge, *value)
u.Age += *value
}
if value := uuo.name; value != nil {
update = true
builder.Set(user.FieldName, *value)
u.Name = *value
}
if update {
if !builder.Empty() {
query, args := builder.Query()
if err := tx.Exec(ctx, query, args, &res); err != nil {
return nil, rollback(tx, err)