Help us shape the future of Go! Take the 2026 Go Developer Survey

sqlinspect

package
v0.1.62 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultMaxRelations       = native.DefaultMaxRelations
	DefaultMaxColumns         = native.DefaultMaxColumns
	DefaultMaxMetadata        = native.DefaultMaxMetadata
	DefaultMaxRoutines        = native.DefaultMaxRoutines
	DefaultMaxDefinitionBytes = native.DefaultMaxDefinitionBytes
)

Variables

This section is empty.

Functions

func ListDatabases

func ListDatabases(ctx context.Context, db *sql.DB, driver string) ([]string, error)

func NewMemoryCache added in v0.1.35

func NewMemoryCache() *inspection.Memo[Catalog]

NewMemoryCache creates an isolated cache with the SQL freshness and capacity policy. Reuse it across inspections; nil Options.Cache uses the shared default. Like all Memos, it registers with inspection.Stats and inspection.Flush.

Types

type Cache added in v0.1.35

type Cache interface {
	Get(context.Context, inspection.GetOptions[Catalog]) (inspection.Result[Catalog], error)
}

Cache owns catalogue storage and fill coordination. Implementations must honor GetOptions.Refresh and inspection.WithRefresh, coalesce concurrent fills, and return cache metadata, including stale values alongside refresh errors. Load runs locally; a remote implementation stores the Catalog, not the callback. *inspection.Memo[Catalog] implements this interface.

type Catalog

type Catalog struct {
	Driver         string                         `json:"driver"`
	Database       string                         `json:"database,omitempty"`
	Capabilities   connection.BackendCapabilities `json:"capabilities"`
	Databases      []string                       `json:"databases,omitempty"`
	DefaultSchema  string                         `json:"defaultSchema,omitempty"`
	Schemas        []Schema                       `json:"schemas"`
	Truncated      bool                           `json:"truncated,omitempty"`
	TruncateReason string                         `json:"truncateReason,omitempty"`
	Cache          *inspection.CacheMetadata      `json:"cache,omitempty"`
}

func Inspect

func Inspect(ctx context.Context, db *sql.DB, driver string, options Options) (Catalog, error)

Inspect returns a cached catalogue of the current database, with freshness metadata. Pass either a caller-owned db or Options.Open and identify its connection, authorization context, revision, and selected database in CacheKey. Keep a caller-owned db open while background refreshes may use it. Returned slices and nested pointers are shared cache values and must be treated as read-only. A failed explicit refresh returns the last known catalogue alongside its error.

type Column

type Column = native.Column

type ForeignKey added in v0.1.32

type ForeignKey = native.ForeignKey

type Index added in v0.1.32

type Index = native.Index

type Limits

type Limits = native.Limits

type Options added in v0.1.35

type Options struct {
	// CacheKey must isolate the connection, authorization/context scope, selected
	// database, and connection revision. Change it when credentials or connection
	// settings change. Use an opaque identity, never credentials or a raw DSN.
	// Driver and effective limits are appended by Inspect.
	CacheKey string
	// Cache replaces the default process-lifetime memory cache; it is not layered
	// with it. A shared backend needs CacheKey values stable across processes.
	Cache   Cache
	Refresh bool
	// Limits bounds the catalogue; zero fields use the defaults.
	Limits Limits
	// Open is used instead of db for short-lived connections. It is called only
	// on a fill, with the fill context, and Inspect closes the returned pool.
	Open func(context.Context) (*sql.DB, error)
}

Options identifies the source independently of transient SQL pool handles.

type Relation

type Relation = native.Relation

type Routine added in v0.1.32

type Routine = native.Routine

type RoutineParameter added in v0.1.32

type RoutineParameter = native.RoutineParameter

type Schema

type Schema = native.Schema

type Trigger added in v0.1.32

type Trigger = native.Trigger

Directories

Path Synopsis
Package inspector preserves the commons-db API; implementations live in sqlglot-go.
Package inspector preserves the commons-db API; implementations live in sqlglot-go.
Package snapshot preserves the commons-db API; implementations live in sqlglot-go.
Package snapshot preserves the commons-db API; implementations live in sqlglot-go.

Jump to

Keyboard shortcuts

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