(ctx context.Context, rs ...*relationtuple.RelationTuple)
| 202 | } |
| 203 | |
| 204 | func (p *Persister) DeleteRelationTuples(ctx context.Context, rs ...*relationtuple.RelationTuple) (err error) { |
| 205 | if len(rs) == 0 { |
| 206 | return nil |
| 207 | } |
| 208 | |
| 209 | ctx, span := p.d.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.DeleteRelationTuples", |
| 210 | trace.WithAttributes(attribute.Int("count", len(rs)))) |
| 211 | defer otelx.End(span, &err) |
| 212 | |
| 213 | return p.Transaction(ctx, func(ctx context.Context) error { |
| 214 | for chunk := range slices.Chunk(rs, chunkSizeDeleteTuple) { |
| 215 | q, args, err := buildDelete(p.NetworkID(ctx), chunk) |
| 216 | if err != nil { |
| 217 | return err |
| 218 | } |
| 219 | if q == "" { |
| 220 | continue |
| 221 | } |
| 222 | if err := p.Connection(ctx).RawQuery(q, args...).Exec(); err != nil { |
| 223 | return sqlcon.HandleError(err) |
| 224 | } |
| 225 | } |
| 226 | return nil |
| 227 | }) |
| 228 | } |
| 229 | |
| 230 | func (p *Persister) DeleteAllRelationTuples(ctx context.Context, query *relationtuple.RelationQuery) (err error) { |
| 231 | ctx, span := p.d.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.DeleteAllRelationTuples") |
no test coverage detected