queryregistry

package
v0.0.0-...-706b979 Latest Latest
Warning

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

Go to latest
Published: May 4, 2026 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type QueryStatus

type QueryStatus string

QueryStatus represents the lifecycle state of a tracked query.

const (
	StatusRunning   QueryStatus = "running"
	StatusCompleted QueryStatus = "completed"
	StatusCancelled QueryStatus = "cancelled"
	StatusFailed    QueryStatus = "failed"
	StatusTimedOut  QueryStatus = "timed_out"
)

type Registry

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

Registry tracks active and recently completed queries.

func NewRegistry

func NewRegistry(cfg *RegistryConfig, logger zerolog.Logger) *Registry

NewRegistry creates a new query registry.

func (*Registry) ActiveCount

func (r *Registry) ActiveCount() int

ActiveCount returns the number of currently running queries.

func (*Registry) Cancel

func (r *Registry) Cancel(queryID string) bool

Cancel cancels a running query by ID. Returns true if the query was found and cancelled.

func (*Registry) Complete

func (r *Registry) Complete(queryID string, rowCount int)

Complete marks a query as completed and moves it to history.

func (*Registry) Fail

func (r *Registry) Fail(queryID string, errMsg string)

Fail marks a query as failed and moves it to history.

func (*Registry) GetActive

func (r *Registry) GetActive() []*TrackedQuery

GetActive returns a snapshot of all active queries.

func (*Registry) GetHistory

func (r *Registry) GetHistory(limit int) []*TrackedQuery

GetHistory returns a snapshot of the most recent completed queries (newest first).

func (*Registry) GetQuery

func (r *Registry) GetQuery(queryID string) *TrackedQuery

GetQuery returns a specific query by ID (checks active then history).

func (*Registry) HistoryLen

func (r *Registry) HistoryLen() int

HistoryLen returns the number of queries in the history buffer.

func (*Registry) Register

func (r *Registry) Register(parentCtx context.Context, sql string, tokenID int64, tokenName string, remoteAddr string, isParallel bool, partitionCount int) (string, context.Context)

Register registers a new active query. Returns the query ID and a context derived from parentCtx that can be cancelled via Cancel().

func (*Registry) TimedOut

func (r *Registry) TimedOut(queryID string)

TimedOut marks a query as timed out and moves it to history.

type RegistryConfig

type RegistryConfig struct {
	HistorySize int // Ring buffer size for completed queries (default: 100)
}

RegistryConfig holds configuration for the query registry.

type TrackedQuery

type TrackedQuery struct {
	ID             string      `json:"id"`
	SQL            string      `json:"sql"`
	TokenID        int64       `json:"token_id,omitempty"`
	TokenName      string      `json:"token_name,omitempty"`
	RemoteAddr     string      `json:"remote_addr,omitempty"`
	Status         QueryStatus `json:"status"`
	StartTime      time.Time   `json:"start_time"`
	EndTime        *time.Time  `json:"end_time,omitempty"`
	DurationMs     float64     `json:"duration_ms,omitempty"`
	RowCount       int         `json:"row_count,omitempty"`
	Error          string      `json:"error,omitempty"`
	IsParallel     bool        `json:"is_parallel"`
	PartitionCount int         `json:"partition_count,omitempty"`
}

TrackedQuery holds all metadata about a tracked query.

Jump to

Keyboard shortcuts

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