Documentation
¶
Overview ¶
Package db provides database management functionality for the SQLite MCP server.
The package handles database registration, connection pooling, and query execution for multiple SQLite databases. It includes the following main components:
- Manager: Handles database connections and pooling
- Registry: Manages database registration and metadata
- Batch: Provides batch operation support
Example usage:
// Create a new registry
registry, err := db.NewRegistry("registry.db")
if err != nil {
log.Fatal(err)
}
// Create database manager
manager := db.NewManager(registry)
// Register a database
info := &db.DatabaseInfo{
Name: "mydb",
Path: "/path/to/db.sqlite",
Status: "active",
}
err = registry.RegisterDatabase(info)
// Execute a query
rows, err := manager.ExecuteQuery("mydb", "SELECT * FROM users WHERE id = ?", 1)
The package also supports batch operations and bulk inserts for efficient data manipulation.
Index ¶
- type BatchOperation
- type BatchResult
- type BulkInsertOperation
- type DatabaseInfo
- type Manager
- func (m *Manager) BulkInsert(ctx context.Context, operation BulkInsertOperation) (int64, error)
- func (m *Manager) CloseAll() error
- func (m *Manager) CloseConnection(name string) error
- func (m *Manager) ExecuteBatch(ctx context.Context, operations []BatchOperation) []BatchResult
- func (m *Manager) ExecuteQuery(name string, query string, args ...interface{}) (*sql.Rows, error)
- func (m *Manager) ExecuteUpdate(name string, query string, args ...interface{}) (sql.Result, error)
- func (m *Manager) GetConnection(name string) (*sql.DB, error)
- type Registry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BatchOperation ¶
type BatchResult ¶
type BulkInsertOperation ¶
type DatabaseInfo ¶
type DatabaseInfo struct {
ID string `json:"id"`
Name string `json:"name"`
Path string `json:"path"`
Description string `json:"description"`
ReadOnly bool `json:"readonly"`
CreatedAt time.Time `json:"created_at"`
LastAccessed *time.Time `json:"last_accessed,omitempty"`
Owner string `json:"owner"`
Status string `json:"status"`
}
type Manager ¶
type Manager struct {
Registry *Registry // Exported for API handlers
// contains filtered or unexported fields
}
func NewManager ¶
func (*Manager) BulkInsert ¶
func (*Manager) CloseConnection ¶
func (*Manager) ExecuteBatch ¶
func (m *Manager) ExecuteBatch(ctx context.Context, operations []BatchOperation) []BatchResult
func (*Manager) ExecuteQuery ¶
func (*Manager) ExecuteUpdate ¶
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
func NewRegistry ¶
func (*Registry) GetDatabase ¶
func (r *Registry) GetDatabase(name string) (*DatabaseInfo, error)
func (*Registry) ListDatabases ¶
func (r *Registry) ListDatabases() ([]DatabaseInfo, error)
func (*Registry) RegisterDatabase ¶
func (r *Registry) RegisterDatabase(info *DatabaseInfo) error
func (*Registry) UpdateLastAccessed ¶
Click to show internal directories.
Click to hide internal directories.