query

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 35 Imported by: 0

Documentation

Overview

Package query 实现 query binder:SQL/Mongo/Redis 执行 + 三种面板连接缓存 + 表导出。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LangProvider

type LangProvider interface {
	Lang() string
}

LangProvider 由 system binder 实现。

type Query

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

Query binder:DB/Mongo/Redis 查询执行 + 面板连接缓存。

func New

func New(appCtx context.Context, lang LangProvider, pool *sshpool.Pool) *Query

New 构造 query binder。

func (*Query) Cleanup

func (q *Query) Cleanup()

Cleanup 关闭 evictor 并释放所有缓存连接。

func (*Query) ExecuteMongo

func (q *Query) ExecuteMongo(assetID int64, operation, database, collection, query string) (string, error)

ExecuteMongo 在指定 MongoDB 资产上执行操作

func (*Query) ExecuteRedis

func (q *Query) ExecuteRedis(assetID int64, command string, db int) (string, error)

ExecuteRedis 在指定 Redis 资产上执行命令

func (*Query) ExecuteRedisArgs

func (q *Query) ExecuteRedisArgs(assetID int64, args []string, db int) (string, error)

ExecuteRedisArgs 使用预拆分的参数执行 Redis 命令(支持含空格的值)

func (*Query) ExecuteSQL

func (q *Query) ExecuteSQL(assetID int64, sqlText string, database string) (string, error)

ExecuteSQL 在指定数据库资产上执行 SQL 查询

func (*Query) ExecuteSQLPaged

func (q *Query) ExecuteSQLPaged(assetID int64, sqlText string, database string, page int, pageSize int) (string, error)

ExecuteSQLPaged 在指定数据库资产上执行分页 SQL 查询(SELECT/WITH 子查询包装)

func (*Query) ExecuteTableImport

func (q *Query) ExecuteTableImport(
	assetID int64,
	database string,
	request query_svc.TableImportBatchRequest,
) (*query_svc.TableImportBatchResult, error)

ExecuteTableImport executes a prepared table import batch on one database session.

func (*Query) ExportTableToXlsx added in v1.10.0

func (q *Query) ExportTableToXlsx(assetID int64, database, selectSQL, filePath string) error

ExportTableToXlsx runs selectSQL against a database asset and streams the result set into an XLSX workbook at filePath. The query (with filters / ordering / scope) is built by the frontend via buildTableExportSelectSql; rows are streamed server-side so large exports never enter the frontend.

func (*Query) GetObjectSource added in v1.10.0

func (q *Query) GetObjectSource(assetID int64, database, objType, name, table string) (string, error)

GetObjectSource returns the read-only definition of a view / routine / trigger. table is only used for PostgreSQL triggers (see query_svc.ObjectMeta.Table).

func (*Query) GetTableMetadata added in v1.10.0

func (q *Query) GetTableMetadata(assetID int64, database, table string) (*query_svc.TableMetadata, error)

GetTableMetadata returns columns / indexes / foreign keys for a table.

func (*Query) ListDatabaseObjects added in v1.10.0

func (q *Query) ListDatabaseObjects(assetID int64, database string) (*query_svc.DatabaseObjects, error)

ListDatabaseObjects returns views / procedures / functions / triggers.

func (*Query) ListMongoCollections

func (q *Query) ListMongoCollections(assetID int64, database string) (string, error)

ListMongoCollections 列出指定 MongoDB 资产中某个数据库的所有集合

func (*Query) ListMongoDatabases

func (q *Query) ListMongoDatabases(assetID int64) (string, error)

ListMongoDatabases 列出指定 MongoDB 资产的所有数据库

func (*Query) OpenTable

func (q *Query) OpenTable(assetID int64, database, table string, pageSize int) (string, error)

OpenTable 一次性返回打开数据表所需的首屏数据。

func (*Query) ParseXlsx added in v1.10.0

func (q *Query) ParseXlsx(base64Content, sheet string) (*query_svc.ParsedXlsxTable, error)

ParseXlsx decodes a base64-encoded XLSX file (read in the frontend from a browser File) and returns the named sheet — or the first sheet when sheet is empty — as a ParsedXlsxTable JSON ({ headers, rows }) matching the frontend ParsedDelimitedTable so it flows straight into the import preview pipeline.

func (*Query) SelectTableExportFile

func (q *Query) SelectTableExportFile(defaultFilename, filterName, pattern string) (string, error)

SelectTableExportFile opens a native save dialog for table exports.

func (*Query) Startup

func (q *Query) Startup(ctx context.Context)

Startup 初始化三个面板连接缓存 + 各自的 evictor 协程。

func (*Query) WriteTableExportFile

func (q *Query) WriteTableExportFile(filePath, content string, options *TableExportWriteOptions) error

WriteTableExportFile writes exported table content to the path chosen by the user.

type TableExportWriteOptions

type TableExportWriteOptions struct {
	Encoding string `json:"encoding"`
	Append   bool   `json:"append"`
}

TableExportWriteOptions controls how exported table data is written to disk.

Jump to

Keyboard shortcuts

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