Skip to content

Commit a5cd805

Browse files
authored
Merge branch 'main' into logical-replication-slots-on-replicas
2 parents 93ee092 + 8cbf5c7 commit a5cd805

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+391
-360
lines changed

.github/workflows/golangci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Checkout
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v5
1414

1515
- name: Setup Go
1616
uses: actions/setup-go@v5
1717
with:
18-
go-version: 1.23.x
18+
go-version: 1.24.x
1919

2020
- run: go mod vendor
2121

2222
- name: Run golangci-lint
23-
uses: golangci/golangci-lint-action@v6
23+
uses: golangci/golangci-lint-action@v8
2424
with:
25-
version: v1.61
25+
version: v2.4

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
name: Set up Go
2929
uses: actions/setup-go@v5
3030
with:
31-
go-version: '1.23'
31+
go-version: '1.24'
3232
-
3333
name: Import GPG key
3434
id: import_gpg

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: Set up Go
2525
uses: actions/setup-go@v5
2626
with:
27-
go-version: '1.23'
27+
go-version: '1.24'
2828

2929
- name: test
3030
run: make test

.golangci.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
version: "2"
2+
13
run:
24
timeout: 5m
35

4-
issues:
5-
exclude-rules:
6-
- linters:
7-
- errcheck
8-
text: "Error return value of `d.Set` is not checked"
6+
linters:
7+
settings:
8+
errcheck:
9+
exclude-functions:
10+
- (*github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.ResourceData).Set

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module github.com/terraform-providers/terraform-provider-postgresql
22

3-
go 1.23.0
3+
go 1.24.0
44

5-
toolchain go1.23.2
5+
toolchain go1.24.2
66

77
require (
88
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1
@@ -13,13 +13,14 @@ require (
1313
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.2.12
1414
github.com/aws/aws-sdk-go-v2/service/sts v1.21.1
1515
github.com/blang/semver v3.5.1+incompatible
16+
github.com/hashicorp/go-cty v1.5.0
1617
github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0
1718
github.com/lib/pq v1.10.9
1819
github.com/sean-/postgresql-acl v0.0.0-20161225120419-d10489e5d217
1920
github.com/stretchr/testify v1.9.0
2021
gocloud.dev v0.34.0
2122
golang.org/x/net v0.39.0
22-
golang.org/x/oauth2 v0.26.0
23+
golang.org/x/oauth2 v0.27.0
2324
google.golang.org/api v0.134.0
2425
)
2526

@@ -40,7 +41,7 @@ require (
4041
github.com/aws/aws-sdk-go-v2/service/sso v1.13.1 // indirect
4142
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.1 // indirect
4243
github.com/aws/smithy-go v1.14.0 // indirect
43-
github.com/cloudflare/circl v1.6.0 // indirect
44+
github.com/cloudflare/circl v1.6.1 // indirect
4445
github.com/davecgh/go-spew v1.1.1 // indirect
4546
github.com/fatih/color v1.16.0 // indirect
4647
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
@@ -55,7 +56,6 @@ require (
5556
github.com/hashicorp/errwrap v1.1.0 // indirect
5657
github.com/hashicorp/go-checkpoint v0.5.0 // indirect
5758
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
58-
github.com/hashicorp/go-cty v1.5.0 // indirect
5959
github.com/hashicorp/go-hclog v1.6.3 // indirect
6060
github.com/hashicorp/go-multierror v1.1.1 // indirect
6161
github.com/hashicorp/go-plugin v1.6.3 // indirect

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -808,8 +808,8 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR
808808
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
809809
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
810810
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
811-
github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk=
812-
github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
811+
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
812+
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
813813
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
814814
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
815815
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -1522,8 +1522,8 @@ golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw
15221522
golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
15231523
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
15241524
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
1525-
golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE=
1526-
golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
1525+
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
1526+
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
15271527
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
15281528
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
15291529
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

postgresql/config.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ func (c *Client) Connect() (*DBConnection, error) {
302302
}
303303
if err != nil {
304304
errString := strings.Replace(err.Error(), c.config.Password, "XXXX", 2)
305-
return nil, fmt.Errorf("Error connecting to PostgreSQL server %s (scheme: %s): %s", c.config.Host, c.config.Scheme, errString)
305+
return nil, fmt.Errorf("error connecting to PostgreSQL server %s (scheme: %s): %s", c.config.Host, c.config.Scheme, errString)
306306
}
307307

308308
// We don't want to retain connection
@@ -365,17 +365,17 @@ func openImpersonatedGCPDBConnection(ctx context.Context, dsn string, targetServ
365365
Scopes: []string{"https://www.googleapis.com/auth/sqlservice.admin"},
366366
})
367367
if err != nil {
368-
return nil, fmt.Errorf("Error creating token source with service account impersonation of %s: %w", targetServiceAccountEmail, err)
368+
return nil, fmt.Errorf("error creating token source with service account impersonation of %s: %w", targetServiceAccountEmail, err)
369369
}
370370
client, err := gcp.NewHTTPClient(gcp.DefaultTransport(), ts)
371371
if err != nil {
372-
return nil, fmt.Errorf("Error creating HTTP client with service account impersonation of %s: %w", targetServiceAccountEmail, err)
372+
return nil, fmt.Errorf("error creating HTTP client with service account impersonation of %s: %w", targetServiceAccountEmail, err)
373373
}
374374
certSource := cloudsql.NewCertSourceWithIAM(client, ts)
375375
opener := gcppostgres.URLOpener{CertSource: certSource}
376376
dbURL, err := url.Parse(dsn)
377377
if err != nil {
378-
return nil, fmt.Errorf("Error parsing connection string: %w", err)
378+
return nil, fmt.Errorf("error parsing connection string: %w", err)
379379
}
380380
return opener.OpenPostgresURL(ctx, dbURL)
381381
}

postgresql/data_source_helpers.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ const (
1818
)
1919

2020
func applyPatternMatchingToQuery(patternMatchingTarget string, d *schema.ResourceData) []string {
21-
likeAnyPatterns := d.Get("like_any_patterns").([]interface{})
22-
likeAllPatterns := d.Get("like_all_patterns").([]interface{})
23-
notLikeAllPatterns := d.Get("not_like_all_patterns").([]interface{})
21+
likeAnyPatterns := d.Get("like_any_patterns").([]any)
22+
likeAllPatterns := d.Get("like_all_patterns").([]any)
23+
notLikeAllPatterns := d.Get("not_like_all_patterns").([]any)
2424
regexPattern := d.Get("regex_pattern").(string)
2525

2626
filters := []string{}
@@ -46,7 +46,7 @@ func generatePatternMatchingString(patternMatchingTarget string, additionalQuery
4646
return patternMatchingFilter
4747
}
4848

49-
func applyTypeMatchingToQuery(objectKeyword string, objects []interface{}) string {
49+
func applyTypeMatchingToQuery(objectKeyword string, objects []any) string {
5050
var typeFilter string
5151
if len(objects) > 0 {
5252
typeFilter = fmt.Sprintf("%s = %s", objectKeyword, generatePatternArrayString(objects, queryArrayKeywordAny))
@@ -55,7 +55,7 @@ func applyTypeMatchingToQuery(objectKeyword string, objects []interface{}) strin
5555
return typeFilter
5656
}
5757

58-
func generatePatternArrayString(patterns []interface{}, queryArrayKeyword string) string {
58+
func generatePatternArrayString(patterns []any, queryArrayKeyword string) string {
5959
formattedPatterns := []string{}
6060

6161
for _, pattern := range patterns {

postgresql/data_source_postgresql_schemas.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package postgresql
22

33
import (
44
"fmt"
5+
"log"
56
"strconv"
67
"strings"
78

@@ -103,7 +104,11 @@ func dataSourcePostgreSQLSchemasRead(db *DBConnection, d *schema.ResourceData) e
103104
if err != nil {
104105
return err
105106
}
106-
defer rows.Close()
107+
defer func() {
108+
if err := rows.Close(); err != nil {
109+
log.Printf("error closing rows: %v", err)
110+
}
111+
}()
107112

108113
schemas := []string{}
109114
for rows.Next() {
@@ -124,9 +129,9 @@ func dataSourcePostgreSQLSchemasRead(db *DBConnection, d *schema.ResourceData) e
124129
func generateDataSourceSchemasID(d *schema.ResourceData, databaseName string) string {
125130
return strings.Join([]string{
126131
databaseName, strconv.FormatBool(d.Get("include_system_schemas").(bool)),
127-
generatePatternArrayString(d.Get("like_any_patterns").([]interface{}), queryArrayKeywordAny),
128-
generatePatternArrayString(d.Get("like_all_patterns").([]interface{}), queryArrayKeywordAll),
129-
generatePatternArrayString(d.Get("not_like_all_patterns").([]interface{}), queryArrayKeywordAll),
132+
generatePatternArrayString(d.Get("like_any_patterns").([]any), queryArrayKeywordAny),
133+
generatePatternArrayString(d.Get("like_all_patterns").([]any), queryArrayKeywordAll),
134+
generatePatternArrayString(d.Get("not_like_all_patterns").([]any), queryArrayKeywordAll),
130135
d.Get("regex_pattern").(string),
131136
}, "_")
132137
}

postgresql/data_source_postgresql_sequences.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package postgresql
22

33
import (
44
"fmt"
5+
"log"
56
"strings"
67

78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -102,9 +103,13 @@ func dataSourcePostgreSQLSequencesRead(db *DBConnection, d *schema.ResourceData)
102103
if err != nil {
103104
return err
104105
}
105-
defer rows.Close()
106+
defer func() {
107+
if err := rows.Close(); err != nil {
108+
log.Printf("error closing rows: %v", err)
109+
}
110+
}()
106111

107-
sequences := make([]interface{}, 0)
112+
sequences := make([]any, 0)
108113
for rows.Next() {
109114
var object_name string
110115
var schema_name string
@@ -114,7 +119,7 @@ func dataSourcePostgreSQLSequencesRead(db *DBConnection, d *schema.ResourceData)
114119
return fmt.Errorf("could not scan sequence output for database: %w", err)
115120
}
116121

117-
result := make(map[string]interface{})
122+
result := make(map[string]any)
118123
result["object_name"] = object_name
119124
result["schema_name"] = schema_name
120125
result["data_type"] = data_type
@@ -130,17 +135,17 @@ func dataSourcePostgreSQLSequencesRead(db *DBConnection, d *schema.ResourceData)
130135
func generateDataSourceSequencesID(d *schema.ResourceData, databaseName string) string {
131136
return strings.Join([]string{
132137
databaseName,
133-
generatePatternArrayString(d.Get("schemas").([]interface{}), queryArrayKeywordAny),
134-
generatePatternArrayString(d.Get("like_any_patterns").([]interface{}), queryArrayKeywordAny),
135-
generatePatternArrayString(d.Get("like_all_patterns").([]interface{}), queryArrayKeywordAll),
136-
generatePatternArrayString(d.Get("not_like_all_patterns").([]interface{}), queryArrayKeywordAll),
138+
generatePatternArrayString(d.Get("schemas").([]any), queryArrayKeywordAny),
139+
generatePatternArrayString(d.Get("like_any_patterns").([]any), queryArrayKeywordAny),
140+
generatePatternArrayString(d.Get("like_all_patterns").([]any), queryArrayKeywordAll),
141+
generatePatternArrayString(d.Get("not_like_all_patterns").([]any), queryArrayKeywordAll),
137142
d.Get("regex_pattern").(string),
138143
}, "_")
139144
}
140145

141146
func applySequenceDataSourceQueryFilters(query string, queryConcatKeyword string, d *schema.ResourceData) string {
142147
filters := []string{}
143-
schemasTypeFilter := applyTypeMatchingToQuery(sequenceSchemaKeyword, d.Get("schemas").([]interface{}))
148+
schemasTypeFilter := applyTypeMatchingToQuery(sequenceSchemaKeyword, d.Get("schemas").([]any))
144149
if len(schemasTypeFilter) > 0 {
145150
filters = append(filters, schemasTypeFilter)
146151
}

0 commit comments

Comments
 (0)