MCPcopy Index your code
hub / github.com/ccfos/nightingale / formatSQLDatabaseNameWithRegex

Function formatSQLDatabaseNameWithRegex

datasource/postgresql/postgresql.go:290–296  ·  view source on GitHub ↗

formatSQLDatabaseNameWithRegex 只对 dbname.scheme.tabname 格式进行数据库名称格式化,转为 "dbname".scheme.tabname 在pgsql中,大小写是通过"" 双引号括起来区分的,默认pg都是转为小写的,所以这里转为 "dbname".scheme."tabname"

(sql string)

Source from the content-addressed store, hash-verified

288// formatSQLDatabaseNameWithRegex 只对 dbname.scheme.tabname 格式进行数据库名称格式化,转为 "dbname".scheme.tabname
289// 在pgsql中,大小写是通过"" 双引号括起来区分的,默认pg都是转为小写的,所以这里转为 "dbname".scheme."tabname"
290func formatSQLDatabaseNameWithRegex(sql string) string {
291 // 匹配 from dbname.scheme.table_name 的模式
292 // 使用捕获组来精确匹配数据库名称,确保后面跟着scheme和table
293 re := regexp.MustCompile(`(?i)\bfrom\s+([a-zA-Z_][a-zA-Z0-9_]*)\s*\.\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\.\s*([a-zA-Z_][a-zA-Z0-9_]*)`)
294
295 return re.ReplaceAllString(sql, `from "$1"."$2"."$3"`)
296}
297
298func extractColumns(sql string) ([]string, error) {
299 // 将 SQL 转换为小写以简化匹配

Callers 2

QueryDataMethod · 0.85
QueryLogMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected