mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
This will allow us to store information about pk ranges allocated per type in a different location thant the database. This is useful for deterministic pk range computation for things like generating atlas.hcl out of the Ent schema.
116 lines
2.8 KiB
Go
116 lines
2.8 KiB
Go
// 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.
|
|
|
|
// Code generated by ent, DO NOT EDIT.
|
|
|
|
package versioned
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"entgo.io/ent/dialect/sql"
|
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
|
"entgo.io/ent/entc/integration/migrate/versioned/group"
|
|
"entgo.io/ent/entc/integration/migrate/versioned/predicate"
|
|
"entgo.io/ent/schema/field"
|
|
)
|
|
|
|
// GroupDelete is the builder for deleting a Group entity.
|
|
type GroupDelete struct {
|
|
config
|
|
hooks []Hook
|
|
mutation *GroupMutation
|
|
}
|
|
|
|
// Where appends a list predicates to the GroupDelete builder.
|
|
func (gd *GroupDelete) Where(ps ...predicate.Group) *GroupDelete {
|
|
gd.mutation.Where(ps...)
|
|
return gd
|
|
}
|
|
|
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
|
func (gd *GroupDelete) Exec(ctx context.Context) (int, error) {
|
|
var (
|
|
err error
|
|
affected int
|
|
)
|
|
if len(gd.hooks) == 0 {
|
|
affected, err = gd.sqlExec(ctx)
|
|
} else {
|
|
var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
|
|
mutation, ok := m.(*GroupMutation)
|
|
if !ok {
|
|
return nil, fmt.Errorf("unexpected mutation type %T", m)
|
|
}
|
|
gd.mutation = mutation
|
|
affected, err = gd.sqlExec(ctx)
|
|
mutation.done = true
|
|
return affected, err
|
|
})
|
|
for i := len(gd.hooks) - 1; i >= 0; i-- {
|
|
if gd.hooks[i] == nil {
|
|
return 0, fmt.Errorf("versioned: uninitialized hook (forgotten import versioned/runtime?)")
|
|
}
|
|
mut = gd.hooks[i](mut)
|
|
}
|
|
if _, err := mut.Mutate(ctx, gd.mutation); err != nil {
|
|
return 0, err
|
|
}
|
|
}
|
|
return affected, err
|
|
}
|
|
|
|
// ExecX is like Exec, but panics if an error occurs.
|
|
func (gd *GroupDelete) ExecX(ctx context.Context) int {
|
|
n, err := gd.Exec(ctx)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return n
|
|
}
|
|
|
|
func (gd *GroupDelete) sqlExec(ctx context.Context) (int, error) {
|
|
_spec := &sqlgraph.DeleteSpec{
|
|
Node: &sqlgraph.NodeSpec{
|
|
Table: group.Table,
|
|
ID: &sqlgraph.FieldSpec{
|
|
Type: field.TypeInt,
|
|
Column: group.FieldID,
|
|
},
|
|
},
|
|
}
|
|
if ps := gd.mutation.predicates; len(ps) > 0 {
|
|
_spec.Predicate = func(selector *sql.Selector) {
|
|
for i := range ps {
|
|
ps[i](selector)
|
|
}
|
|
}
|
|
}
|
|
return sqlgraph.DeleteNodes(ctx, gd.driver, _spec)
|
|
}
|
|
|
|
// GroupDeleteOne is the builder for deleting a single Group entity.
|
|
type GroupDeleteOne struct {
|
|
gd *GroupDelete
|
|
}
|
|
|
|
// Exec executes the deletion query.
|
|
func (gdo *GroupDeleteOne) Exec(ctx context.Context) error {
|
|
n, err := gdo.gd.Exec(ctx)
|
|
switch {
|
|
case err != nil:
|
|
return err
|
|
case n == 0:
|
|
return &NotFoundError{group.Label}
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// ExecX is like Exec, but panics if an error occurs.
|
|
func (gdo *GroupDeleteOne) ExecX(ctx context.Context) {
|
|
gdo.gd.ExecX(ctx)
|
|
}
|