MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / countSubqueries

Function countSubqueries

pkg/advisor/optimizer.go:266–288  ·  view source on GitHub ↗

countSubqueries recursively counts subquery expressions in an expression tree.

(expr ast.Expression)

Source from the content-addressed store, hash-verified

264
265// countSubqueries recursively counts subquery expressions in an expression tree.
266func countSubqueries(expr ast.Expression) int {
267 if expr == nil {
268 return 0
269 }
270
271 count := 0
272
273 switch e := expr.(type) {
274 case *ast.SubqueryExpression:
275 count++
276 case *ast.InExpression:
277 if e.Subquery != nil {
278 count++
279 }
280 case *ast.ExistsExpression:
281 count++
282 case *ast.BinaryExpression:
283 count += countSubqueries(e.Left)
284 count += countSubqueries(e.Right)
285 }
286
287 return count
288}
289
290// calculateScore computes the optimization score (0-100).
291// Each suggestion reduces the score based on its severity.

Callers 1

statementComplexityFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected