MCPcopy Create free account
hub / github.com/bytebase/bytebase / queryTypeFromText

Function queryTypeFromText

backend/plugin/parser/trino/query_type.go:73–87  ·  view source on GitHub ↗

queryTypeFromText parses statement and classifies its single top-level statement, applying the legacy statement-text system-schema promotion: a base.Select that references a Trino system/metadata schema becomes base.SelectInfoSchema. EXPLAIN over such a query is likewise promoted. On parse failure

(statement string)

Source from the content-addressed store, hash-verified

71//
72// On parse failure or empty/multi input it returns base.QueryTypeUnknown.
73func queryTypeFromText(statement string) base.QueryType {
74 file, errs := parser.Parse(statement)
75 if len(errs) > 0 || file == nil || len(file.Stmts) == 0 {
76 return base.QueryTypeUnknown
77 }
78 qt, _ := getQueryType(file.Stmts[0])
79 switch qt {
80 case base.Select, base.Explain:
81 if containsSystemSchema(statement) {
82 return base.SelectInfoSchema
83 }
84 default:
85 }
86 return qt
87}
88
89// IsReadOnlyStatement reports whether the given omni AST node is a read-only
90// Trino statement (SELECT family, EXPLAIN, SHOW/DESCRIBE, session-state).

Callers 1

TestTrinoQueryTypeFunction · 0.85

Calls 2

containsSystemSchemaFunction · 0.85
getQueryTypeFunction · 0.70

Tested by 1

TestTrinoQueryTypeFunction · 0.68