Skip to content

Potential dead code in query.go #71

@shelly-li-sl

Description

@shelly-li-sl

In query.go, the else branch for 'results[2] != "" ' seems dead code to me. Could you please review?

var tableRegexp = regexp.MustCompile(`^"(\w+)"\s+"?(\w+)"?$`)  -----> This regex matches tables like ("users" u) or ("users" "u")

func BeforeQuery(db *gorm.DB) {
	if db == nil || db.Statement == nil || db.Statement.TableExpr == nil {
		return
	}
	name := db.Statement.TableExpr.SQL
	if strings.Contains(name, " ") || strings.Contains(name, "`") {
		if results := tableRegexp.FindStringSubmatch(name); len(results) == 3 { ----> here the table name must match either ("users" u) or ("users" "u"), the returned results will be either ["users" u, "users", u] or ["users" "u", "users", "u"], so results[2] cannot be empty
			if results[2] != "" {
				db.Statement.Table = results[2]
			} else {
				db.Statement.Table = results[1]
			}
		}
	}
	return
}

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions