diff --git a/pkg/analyze/database_shared.go b/pkg/analyze/database_shared.go index f0b56f51..55fe8f5d 100644 --- a/pkg/analyze/database_shared.go +++ b/pkg/analyze/database_shared.go @@ -35,14 +35,18 @@ func compareDatabaseConditionalToActual(conditional string, result *collect.Data return false, errors.New("unable to parse postgres connected analyzer") case "version": - expectedRange, err := semver.ParseRange(fmt.Sprintf("%s %s", parts[1], parts[2])) + expected, err := semver.ParseTolerant(strings.Replace(parts[2], "x", "0", -1)) if err != nil { - return false, errors.Wrap(err, "failed to parse semver range") + return false, errors.Wrap(err, "failed to parse expected version") + } + actual, err := semver.ParseTolerant(strings.Replace(result.Version, "x", "0", -1)) + if err != nil { + return false, errors.Wrap(err, "failed to parse postgres db actual version") } - actual, err := semver.Parse(result.Version) + expectedRange, err := semver.ParseRange(fmt.Sprintf("%s %s", parts[1], expected.String())) if err != nil { - return false, errors.Wrap(err, "failed to parse actual psotgres version") + return false, errors.Wrap(err, "failed to parse semver range") } return expectedRange(actual), nil