Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.23.x
go-version: 1.24.x

- run: go mod vendor

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v6
uses: golangci/golangci-lint-action@v8
with:
version: v1.61
version: v2.4
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
go-version: '1.24'
-
name: Import GPG key
id: import_gpg
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
go-version: '1.24'

- name: test
run: make test
Expand Down
12 changes: 7 additions & 5 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
version: "2"

run:
timeout: 5m

issues:
exclude-rules:
- linters:
- errcheck
text: "Error return value of `d.Set` is not checked"
linters:
settings:
errcheck:
exclude-functions:
- (*github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.ResourceData).Set
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
module github.com/terraform-providers/terraform-provider-postgresql

go 1.23.0
go 1.24.0

toolchain go1.23.2
toolchain go1.24.2

require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1
Expand Down
8 changes: 4 additions & 4 deletions postgresql/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ func (c *Client) Connect() (*DBConnection, error) {
}
if err != nil {
errString := strings.Replace(err.Error(), c.config.Password, "XXXX", 2)
return nil, fmt.Errorf("Error connecting to PostgreSQL server %s (scheme: %s): %s", c.config.Host, c.config.Scheme, errString)
return nil, fmt.Errorf("error connecting to PostgreSQL server %s (scheme: %s): %s", c.config.Host, c.config.Scheme, errString)
}

// We don't want to retain connection
Expand Down Expand Up @@ -365,17 +365,17 @@ func openImpersonatedGCPDBConnection(ctx context.Context, dsn string, targetServ
Scopes: []string{"https://www.googleapis.com/auth/sqlservice.admin"},
})
if err != nil {
return nil, fmt.Errorf("Error creating token source with service account impersonation of %s: %w", targetServiceAccountEmail, err)
return nil, fmt.Errorf("error creating token source with service account impersonation of %s: %w", targetServiceAccountEmail, err)
}
client, err := gcp.NewHTTPClient(gcp.DefaultTransport(), ts)
if err != nil {
return nil, fmt.Errorf("Error creating HTTP client with service account impersonation of %s: %w", targetServiceAccountEmail, err)
return nil, fmt.Errorf("error creating HTTP client with service account impersonation of %s: %w", targetServiceAccountEmail, err)
}
certSource := cloudsql.NewCertSourceWithIAM(client, ts)
opener := gcppostgres.URLOpener{CertSource: certSource}
dbURL, err := url.Parse(dsn)
if err != nil {
return nil, fmt.Errorf("Error parsing connection string: %w", err)
return nil, fmt.Errorf("error parsing connection string: %w", err)
}
return opener.OpenPostgresURL(ctx, dbURL)
}
10 changes: 5 additions & 5 deletions postgresql/data_source_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ const (
)

func applyPatternMatchingToQuery(patternMatchingTarget string, d *schema.ResourceData) []string {
likeAnyPatterns := d.Get("like_any_patterns").([]interface{})
likeAllPatterns := d.Get("like_all_patterns").([]interface{})
notLikeAllPatterns := d.Get("not_like_all_patterns").([]interface{})
likeAnyPatterns := d.Get("like_any_patterns").([]any)
likeAllPatterns := d.Get("like_all_patterns").([]any)
notLikeAllPatterns := d.Get("not_like_all_patterns").([]any)
regexPattern := d.Get("regex_pattern").(string)

filters := []string{}
Expand All @@ -46,7 +46,7 @@ func generatePatternMatchingString(patternMatchingTarget string, additionalQuery
return patternMatchingFilter
}

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

func generatePatternArrayString(patterns []interface{}, queryArrayKeyword string) string {
func generatePatternArrayString(patterns []any, queryArrayKeyword string) string {
formattedPatterns := []string{}

for _, pattern := range patterns {
Expand Down
13 changes: 9 additions & 4 deletions postgresql/data_source_postgresql_schemas.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package postgresql

import (
"fmt"
"log"
"strconv"
"strings"

Expand Down Expand Up @@ -103,7 +104,11 @@ func dataSourcePostgreSQLSchemasRead(db *DBConnection, d *schema.ResourceData) e
if err != nil {
return err
}
defer rows.Close()
defer func() {
if err := rows.Close(); err != nil {
log.Printf("error closing rows: %v", err)
}
}()

schemas := []string{}
for rows.Next() {
Expand All @@ -124,9 +129,9 @@ func dataSourcePostgreSQLSchemasRead(db *DBConnection, d *schema.ResourceData) e
func generateDataSourceSchemasID(d *schema.ResourceData, databaseName string) string {
return strings.Join([]string{
databaseName, strconv.FormatBool(d.Get("include_system_schemas").(bool)),
generatePatternArrayString(d.Get("like_any_patterns").([]interface{}), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_all_patterns").([]interface{}), queryArrayKeywordAll),
generatePatternArrayString(d.Get("not_like_all_patterns").([]interface{}), queryArrayKeywordAll),
generatePatternArrayString(d.Get("like_any_patterns").([]any), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_all_patterns").([]any), queryArrayKeywordAll),
generatePatternArrayString(d.Get("not_like_all_patterns").([]any), queryArrayKeywordAll),
d.Get("regex_pattern").(string),
}, "_")
}
Expand Down
21 changes: 13 additions & 8 deletions postgresql/data_source_postgresql_sequences.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package postgresql

import (
"fmt"
"log"
"strings"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand Down Expand Up @@ -102,9 +103,13 @@ func dataSourcePostgreSQLSequencesRead(db *DBConnection, d *schema.ResourceData)
if err != nil {
return err
}
defer rows.Close()
defer func() {
if err := rows.Close(); err != nil {
log.Printf("error closing rows: %v", err)
}
}()

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

result := make(map[string]interface{})
result := make(map[string]any)
result["object_name"] = object_name
result["schema_name"] = schema_name
result["data_type"] = data_type
Expand All @@ -130,17 +135,17 @@ func dataSourcePostgreSQLSequencesRead(db *DBConnection, d *schema.ResourceData)
func generateDataSourceSequencesID(d *schema.ResourceData, databaseName string) string {
return strings.Join([]string{
databaseName,
generatePatternArrayString(d.Get("schemas").([]interface{}), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_any_patterns").([]interface{}), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_all_patterns").([]interface{}), queryArrayKeywordAll),
generatePatternArrayString(d.Get("not_like_all_patterns").([]interface{}), queryArrayKeywordAll),
generatePatternArrayString(d.Get("schemas").([]any), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_any_patterns").([]any), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_all_patterns").([]any), queryArrayKeywordAll),
generatePatternArrayString(d.Get("not_like_all_patterns").([]any), queryArrayKeywordAll),
d.Get("regex_pattern").(string),
}, "_")
}

func applySequenceDataSourceQueryFilters(query string, queryConcatKeyword string, d *schema.ResourceData) string {
filters := []string{}
schemasTypeFilter := applyTypeMatchingToQuery(sequenceSchemaKeyword, d.Get("schemas").([]interface{}))
schemasTypeFilter := applyTypeMatchingToQuery(sequenceSchemaKeyword, d.Get("schemas").([]any))
if len(schemasTypeFilter) > 0 {
filters = append(filters, schemasTypeFilter)
}
Expand Down
25 changes: 15 additions & 10 deletions postgresql/data_source_postgresql_tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package postgresql

import (
"fmt"
"log"
"strings"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand Down Expand Up @@ -110,9 +111,13 @@ func dataSourcePostgreSQLTablesRead(db *DBConnection, d *schema.ResourceData) er
if err != nil {
return err
}
defer rows.Close()
defer func() {
if err := rows.Close(); err != nil {
log.Printf("error closing rows: %v\n", err)
}
}()

tables := make([]interface{}, 0)
tables := make([]any, 0)
for rows.Next() {
var object_name string
var schema_name string
Expand All @@ -122,7 +127,7 @@ func dataSourcePostgreSQLTablesRead(db *DBConnection, d *schema.ResourceData) er
return fmt.Errorf("could not scan table output for database: %w", err)
}

result := make(map[string]interface{})
result := make(map[string]any)
result["object_name"] = object_name
result["schema_name"] = schema_name
result["table_type"] = table_type
Expand All @@ -138,22 +143,22 @@ func dataSourcePostgreSQLTablesRead(db *DBConnection, d *schema.ResourceData) er
func generateDataSourceTablesID(d *schema.ResourceData, databaseName string) string {
return strings.Join([]string{
databaseName,
generatePatternArrayString(d.Get("schemas").([]interface{}), queryArrayKeywordAny),
generatePatternArrayString(d.Get("table_types").([]interface{}), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_any_patterns").([]interface{}), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_all_patterns").([]interface{}), queryArrayKeywordAll),
generatePatternArrayString(d.Get("not_like_all_patterns").([]interface{}), queryArrayKeywordAll),
generatePatternArrayString(d.Get("schemas").([]any), queryArrayKeywordAny),
generatePatternArrayString(d.Get("table_types").([]any), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_any_patterns").([]any), queryArrayKeywordAny),
generatePatternArrayString(d.Get("like_all_patterns").([]any), queryArrayKeywordAll),
generatePatternArrayString(d.Get("not_like_all_patterns").([]any), queryArrayKeywordAll),
d.Get("regex_pattern").(string),
}, "_")
}

func applyTableDataSourceQueryFilters(query string, queryConcatKeyword string, d *schema.ResourceData) string {
filters := []string{}
schemasTypeFilter := applyTypeMatchingToQuery(tableSchemaKeyword, d.Get("schemas").([]interface{}))
schemasTypeFilter := applyTypeMatchingToQuery(tableSchemaKeyword, d.Get("schemas").([]any))
if len(schemasTypeFilter) > 0 {
filters = append(filters, schemasTypeFilter)
}
tableTypeFilter := applyTypeMatchingToQuery(tableTypeKeyword, d.Get("table_types").([]interface{}))
tableTypeFilter := applyTypeMatchingToQuery(tableTypeKeyword, d.Get("table_types").([]any))
if len(tableTypeFilter) > 0 {
filters = append(filters, tableTypeFilter)
}
Expand Down
Loading