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

Assignees

No one assigned

    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