Skip to content

Commit 29b9dac

Browse files
authored
fix: version compare missing cases (#3581)
1 parent 100ae60 commit 29b9dac

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

internal/db/start/start.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func NewContainerConfig() container.Config {
7676
"S3_ACCESS_KEY="+utils.Config.Experimental.S3AccessKey,
7777
"S3_SECRET_KEY="+utils.Config.Experimental.S3SecretKey,
7878
)
79-
} else if config.VersionCompare(utils.Config.Db.Image, "15.8.1.005") < 0 {
79+
} else if i := strings.IndexByte(utils.Config.Db.Image, ':'); config.VersionCompare(utils.Config.Db.Image[i+1:], "15.8.1.005") < 0 {
8080
env = append(env, "POSTGRES_INITDB_ARGS=--lc-collate=C.UTF-8")
8181
}
8282
config := container.Config{

pkg/config/config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ func (c *config) Load(path string, fsys fs.FS) error {
607607
if c.Db.MajorVersion > 14 {
608608
if version, err := fs.ReadFile(fsys, builder.PostgresVersionPath); err == nil {
609609
// Only replace image if postgres version is above 15.1.0.55
610-
if VersionCompare(c.Db.Image, "15.1.0.55") >= 0 {
610+
if i := strings.IndexByte(c.Db.Image, ':'); VersionCompare(c.Db.Image[i+1:], "15.1.0.55") >= 0 {
611611
c.Db.Image = replaceImageTag(Images.Pg, string(version))
612612
}
613613
}
@@ -650,11 +650,11 @@ func VersionCompare(a, b string) int {
650650
var pA, pB string
651651
if vA := strings.Split(a, "."); len(vA) > 3 {
652652
a = strings.Join(vA[:3], ".")
653-
pA = strings.Join(vA[3:], ".")
653+
pA = strings.TrimLeft(strings.Join(vA[3:], "."), "0")
654654
}
655655
if vB := strings.Split(b, "."); len(vB) > 3 {
656656
b = strings.Join(vB[:3], ".")
657-
pB = strings.Join(vB[3:], ".")
657+
pB = strings.TrimLeft(strings.Join(vB[3:], "."), "0")
658658
}
659659
if r := semver.Compare("v"+a, "v"+b); r != 0 {
660660
return r

pkg/config/config_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,9 @@ func TestVersionCompare(t *testing.T) {
625625
{"15.1.0.55", "15.1.0.55", 0},
626626
{"15.8.1.085", "15.1.0.55", 1},
627627
{"15.1.0.55", "15.8.1.085", -1},
628+
{"17.4.1.005", "17.4.1.005", 0},
629+
{"17.4.1.030", "17.4.1.005", 1},
630+
{"17.4.1.005", "17.4.1.030", -1},
628631
{"15.8.1", "15.8.1", 0},
629632
{"17", "15.8", 1},
630633
{"14", "15.8", -1},

0 commit comments

Comments
 (0)