Skip to content

Commit

Permalink
feat: optimize version sql (#24)
Browse files Browse the repository at this point in the history
* feat: optimize version sql

* feat: optimize version sql
  • Loading branch information
hwbrzzl authored Mar 1, 2025
1 parent 386cd7e commit 64f47c6
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 13 deletions.
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ require (
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/otel/metric v1.33.0 // indirect
go.opentelemetry.io/otel/trace v1.33.0 // indirect
golang.org/x/crypto v0.35.0 // indirect
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa // indirect
golang.org/x/net v0.35.0 // indirect
Expand Down
6 changes: 2 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -138,14 +138,12 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw=
go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I=
go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M=
go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8=
go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ=
go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4=
go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU=
go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM=
go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8=
go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
Expand Down
21 changes: 14 additions & 7 deletions postgres.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ import (
var _ driver.Driver = &Postgres{}

type Postgres struct {
config contracts.ConfigBuilder
db *gorm.DB
log log.Log
config contracts.ConfigBuilder
db *gorm.DB
log log.Log
version string
}

func NewPostgres(config config.Config, log log.Log, connection string) *Postgres {
Expand All @@ -49,7 +50,7 @@ func (r *Postgres) Config() database.Config {
Prefix: writers[0].Prefix,
Schema: writers[0].Schema,
Username: writers[0].Username,
Version: r.version(),
Version: r.getVersion(),
PlaceholderFormat: sq.Dollar,
}
}
Expand Down Expand Up @@ -99,7 +100,11 @@ func (r *Postgres) Processor() contractsschema.Processor {
return NewProcessor()
}

func (r *Postgres) version() string {
func (r *Postgres) getVersion() string {
if r.version != "" {
return r.version
}

instance, _, err := r.Gorm()
if err != nil {
return ""
Expand All @@ -109,8 +114,10 @@ func (r *Postgres) version() string {
Value string
}
if err := instance.Raw("SELECT current_setting('server_version') AS value;").Scan(&version).Error; err != nil {
return fmt.Sprintf("UNKNOWN: %s", err)
r.version = fmt.Sprintf("UNKNOWN: %s", err)
} else {
r.version = version.Value
}

return version.Value
return r.version
}
2 changes: 1 addition & 1 deletion postgres_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func TestVersion(t *testing.T) {
config: mockConfig,
log: utils.NewTestLog(),
}
version := postgres.version()
version := postgres.getVersion()
assert.Contains(t, version, "Debian")
assert.NoError(t, docker.Shutdown())
}

0 comments on commit 64f47c6

Please sign in to comment.