generated from oracle/template-repo
    
        
        - 
                Notifications
    You must be signed in to change notification settings 
- Fork 1
Closed
Description
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
Assignees
Labels
No labels