dbresolver

package
v5.0.0-...-1b49765 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2025 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Use = dbresolver.Use
)

Functions

func IsMysqlConn

func IsMysqlConn(conn any) bool

func IsSQLiteConn

func IsSQLiteConn(conn any) bool

func NewResolverModeLogger

func NewResolverModeLogger(l logger.Interface) logger.Interface

Types

type ClauseBuilder

type ClauseBuilder interface {
	ClauseBuilders() map[string]clause.ClauseBuilder
}

type DBResolver

type DBResolver struct {
	*openurl.Pool[gorm.Dialector]

	*gorm.DB
	// contains filtered or unexported fields
}

func New

func New(pool *openurl.Pool[gorm.Dialector]) *DBResolver

func (*DBResolver) Call

func (dr *DBResolver) Call(fc func(connPool gorm.ConnPool) error) error

func (*DBResolver) Dialector

func (dr *DBResolver) Dialector() gorm.Dialector

func (*DBResolver) Initialize

func (dr *DBResolver) Initialize(db *gorm.DB) error

func (*DBResolver) Name

func (dr *DBResolver) Name() string

func (*DBResolver) SetConnMaxIdleTime

func (dr *DBResolver) SetConnMaxIdleTime(d time.Duration) *DBResolver

func (*DBResolver) SetConnMaxLifetime

func (dr *DBResolver) SetConnMaxLifetime(d time.Duration) *DBResolver

func (*DBResolver) SetMaxIdleConns

func (dr *DBResolver) SetMaxIdleConns(n int) *DBResolver

func (*DBResolver) SetMaxOpenConns

func (dr *DBResolver) SetMaxOpenConns(n int) *DBResolver

type DBResolverDialector

type DBResolverDialector struct {
	// contains filtered or unexported fields
}

func (*DBResolverDialector) BindVarTo

func (d *DBResolverDialector) BindVarTo(writer clause.Writer, stmt *gorm.Statement, v interface{})

func (*DBResolverDialector) DataTypeOf

func (d *DBResolverDialector) DataTypeOf(field *schema.Field) string

func (*DBResolverDialector) DefaultValueOf

func (d *DBResolverDialector) DefaultValueOf(field *schema.Field) clause.Expression

func (*DBResolverDialector) Explain

func (d *DBResolverDialector) Explain(sql string, vars ...interface{}) string

func (*DBResolverDialector) Initialize

func (d *DBResolverDialector) Initialize(db *gorm.DB) error

func (*DBResolverDialector) Migrator

func (d *DBResolverDialector) Migrator(db *gorm.DB) gorm.Migrator

func (*DBResolverDialector) Name

func (d *DBResolverDialector) Name() string

func (*DBResolverDialector) QuoteTo

func (d *DBResolverDialector) QuoteTo(writer clause.Writer, s string)

type Operation

type Operation string

Operation specifies dbresolver mode

const (
	Write Operation = "write"
	Read  Operation = "read"
)

func (Operation) Build

func (op Operation) Build(clause.Builder)

Build implements clause.Expression interface

func (Operation) ModifyStatement

func (op Operation) ModifyStatement(stmt *gorm.Statement)

ModifyStatement modify operation mode

type Policy

type Policy interface {
	Resolve([]gorm.ConnPool) gorm.ConnPool
}

type RandomPolicy

type RandomPolicy struct {
}

func (RandomPolicy) Resolve

func (RandomPolicy) Resolve(connPools []gorm.ConnPool) gorm.ConnPool

type ResolverMode

type ResolverMode string
const (
	ResolverModeSource  ResolverMode = "source"
	ResolverModeReplica ResolverMode = "replica"
)

type ResolverModeKey

type ResolverModeKey string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL