Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsReadOnlySQL ¶
IsReadOnlySQL 做保守判定:默认拒绝;仅允许文档明确的只读语句。 使用词法分析而非简单字符串匹配,正确处理字符串、注释。 解析失败/多语句/包含禁止关键字时一律返回 false。
func RegisteredNames ¶
func RegisteredNames() []string
Types ¶
type ConnOptions ¶
type ConnOptions struct {
DSN string // 原生 DSN(优先级最高)
Host string
Port int
User string
Password string
Database string
Params map[string]string // 额外参数
Dialer Dialer // 自定义 dialer(如 SSH tunnel)
}
ConnOptions 是通用连接参数(由 config/CLI/ENV 合并而来)。
type Driver ¶
type Driver interface {
// Open 返回 *sql.DB;由具体 driver 实现连接参数解析。
Open(ctx context.Context, opts ConnOptions) (*sql.DB, *errors.XError)
}
Driver 是数据库驱动的最小抽象。
type QueryOptions ¶
type QueryOptions struct {
UnsafeAllowWrite bool // 允许写操作(绕过只读保护)
DBType string // 数据库类型:mysql 或 pg
}
QueryOptions 包含查询执行的选项。
type QueryResult ¶
type QueryResult struct {
Columns []string `json:"columns" yaml:"columns"`
Rows []map[string]any `json:"rows" yaml:"rows"`
}
QueryResult 是通用查询结果。
func Query ¶
func Query(ctx context.Context, db *sql.DB, query string, opts QueryOptions) (*QueryResult, *errors.XError)
Query 执行 SQL 查询并返回结果。 当 opts.UnsafeAllowWrite=false 时,会启用双重只读保护: 1. SQL 语句静态分析(客户端) 2. 数据库事务级只读模式(服务端) 当 opts.UnsafeAllowWrite=true 时,绕过所有只读保护。
func (*QueryResult) ToTableData ¶ added in v0.0.5
func (r *QueryResult) ToTableData() (columns []string, rows []map[string]any, ok bool)
ToTableData 实现 output.TableFormatter 接口,支持无 JSON 编解码的表格输出。
Click to show internal directories.
Click to hide internal directories.