summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/model_table_slice.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/uptrace/bun/model_table_slice.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/uptrace/bun/model_table_slice.go')
-rw-r--r--vendor/github.com/uptrace/bun/model_table_slice.go126
1 files changed, 0 insertions, 126 deletions
diff --git a/vendor/github.com/uptrace/bun/model_table_slice.go b/vendor/github.com/uptrace/bun/model_table_slice.go
deleted file mode 100644
index 67b421460..000000000
--- a/vendor/github.com/uptrace/bun/model_table_slice.go
+++ /dev/null
@@ -1,126 +0,0 @@
-package bun
-
-import (
- "context"
- "database/sql"
- "reflect"
- "time"
-
- "github.com/uptrace/bun/internal"
- "github.com/uptrace/bun/schema"
-)
-
-type sliceTableModel struct {
- structTableModel
-
- slice reflect.Value
- sliceLen int
- sliceOfPtr bool
- nextElem func() reflect.Value
-}
-
-var _ TableModel = (*sliceTableModel)(nil)
-
-func newSliceTableModel(
- db *DB, dest interface{}, slice reflect.Value, elemType reflect.Type,
-) *sliceTableModel {
- m := &sliceTableModel{
- structTableModel: structTableModel{
- db: db,
- table: db.Table(elemType),
- dest: dest,
- root: slice,
- },
-
- slice: slice,
- sliceLen: slice.Len(),
- nextElem: internal.MakeSliceNextElemFunc(slice),
- }
- m.init(slice.Type())
- return m
-}
-
-func (m *sliceTableModel) init(sliceType reflect.Type) {
- switch sliceType.Elem().Kind() {
- case reflect.Ptr, reflect.Interface:
- m.sliceOfPtr = true
- }
-}
-
-func (m *sliceTableModel) join(name string) *relationJoin {
- return m._join(m.slice, name)
-}
-
-func (m *sliceTableModel) ScanRows(ctx context.Context, rows *sql.Rows) (int, error) {
- columns, err := rows.Columns()
- if err != nil {
- return 0, err
- }
-
- m.columns = columns
- dest := makeDest(m, len(columns))
-
- if m.slice.IsValid() && m.slice.Len() > 0 {
- m.slice.Set(m.slice.Slice(0, 0))
- }
-
- var n int
-
- for rows.Next() {
- m.strct = m.nextElem()
- if m.sliceOfPtr {
- m.strct = m.strct.Elem()
- }
- m.structInited = false
-
- if err := m.scanRow(ctx, rows, dest); err != nil {
- return 0, err
- }
-
- n++
- }
- if err := rows.Err(); err != nil {
- return 0, err
- }
-
- return n, nil
-}
-
-var _ schema.BeforeAppendModelHook = (*sliceTableModel)(nil)
-
-func (m *sliceTableModel) BeforeAppendModel(ctx context.Context, query Query) error {
- if !m.table.HasBeforeAppendModelHook() || !m.slice.IsValid() {
- return nil
- }
-
- sliceLen := m.slice.Len()
- for i := 0; i < sliceLen; i++ {
- strct := m.slice.Index(i)
- if !m.sliceOfPtr {
- strct = strct.Addr()
- }
- err := strct.Interface().(schema.BeforeAppendModelHook).BeforeAppendModel(ctx, query)
- if err != nil {
- return err
- }
- }
- return nil
-}
-
-// Inherit these hooks from structTableModel.
-var (
- _ schema.BeforeScanRowHook = (*sliceTableModel)(nil)
- _ schema.AfterScanRowHook = (*sliceTableModel)(nil)
-)
-
-func (m *sliceTableModel) updateSoftDeleteField(tm time.Time) error {
- sliceLen := m.slice.Len()
- for i := 0; i < sliceLen; i++ {
- strct := indirect(m.slice.Index(i))
- fv := m.table.SoftDeleteField.Value(strct)
- if err := m.table.UpdateSoftDeleteField(fv, tm); err != nil {
- return err
- }
- }
- return nil
-}