executor

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-11 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-13 11:05:04 * @FilePath: \go-sqlbuilder\executor\executor.go * @Description: * * Copyright (c) 2025 by kamalyes, All Rights Reserved.

Index

Constants

View Source
const (
	HookTypeBeforeExecution = "before_execution"
	HookTypeAfterExecution  = "after_execution"
	HookTypeOnError         = "on_error"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ExecutionContext

type ExecutionContext struct {
	Context    context.Context
	SQL        string
	Args       []interface{}
	StartTime  time.Time
	EndTime    time.Time
	Duration   time.Duration
	Error      error
	Metadata   map[string]interface{}
	IsRetry    bool
	RetryCount int
}

type Executor

type Executor interface {
	Query(ctx context.Context, sql string, args ...interface{}) (*sql.Rows, error)
	Exec(ctx context.Context, sql string, args ...interface{}) (sql.Result, error)
	WithDB(db *gorm.DB) Executor
	WithLogger(logger logger.Logger) Executor
	RegisterHook(hookType string, hook Hook) Executor
	Execute(ctx context.Context, condition *core.QueryCondition) (*QueryResult, error)
}

func NewExecutor

func NewExecutor(db *gorm.DB) Executor

type GormResult

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

func (*GormResult) LastInsertId

func (gr *GormResult) LastInsertId() (int64, error)

func (*GormResult) RowsAffected

func (gr *GormResult) RowsAffected() (int64, error)

type Hook

type Hook func(ctx *ExecutionContext) error

type HookRegistry

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

func NewHookRegistry

func NewHookRegistry() *HookRegistry

func (*HookRegistry) Execute

func (hr *HookRegistry) Execute(hookType string, ctx *ExecutionContext) error

func (*HookRegistry) Register

func (hr *HookRegistry) Register(hookType string, hook Hook)

type QueryMetrics

type QueryMetrics struct {
	TotalQueries    int64
	TotalDuration   time.Duration
	FastestQuery    time.Duration
	SlowestQuery    time.Duration
	AverageDuration time.Duration
}

func NewQueryMetrics

func NewQueryMetrics() *QueryMetrics

func (*QueryMetrics) RecordQuery

func (qm *QueryMetrics) RecordQuery(duration time.Duration)

func (*QueryMetrics) Reset

func (qm *QueryMetrics) Reset()

type QueryResult

type QueryResult struct {
	Rows          *sql.Rows
	RowsAffected  int64
	LastInsertID  int64
	Duration      time.Duration
	Error         error
	CacheHit      bool
	ExecutedCount int
}

type RetryPolicy

type RetryPolicy struct {
	MaxRetries int
	Delay      time.Duration
	BackOff    bool
}

Jump to

Keyboard shortcuts

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