Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ConnectionAttributes is skipped in FormatDSN #1618

Open
bogcon opened this issue Aug 2, 2024 · 0 comments · May be fixed by #1619
Open

ConnectionAttributes is skipped in FormatDSN #1618

bogcon opened this issue Aug 2, 2024 · 0 comments · May be fixed by #1619

Comments

@bogcon
Copy link

bogcon commented Aug 2, 2024

Issue description

Config.FormatDSN does not take into account ConnectionAttributes property.

Example code

package main

import (
	"log"

	"github.com/go-sql-driver/mysql"
)

func main() {
	testDSN := "usr/pwd@tcp(127.0.0.1:3306)/dbname?connectionAttributes=foo:bar"
	cfg, err := mysql.ParseDSN(testDSN)
	if err != nil {
		log.Fatal("something went really wrong")
	}

	if cfg.ConnectionAttributes == "foo:bar" {
		reformattedDSN := cfg.FormatDSN()
		if reformattedDSN != testDSN {
			log.Fatalf("Ooops, that's buggy\noriginalDSN = %q\nreformattedDSN = %q", testDSN, reformattedDSN)
		}
	} else {
		log.Fatal("I wasn't expecting this")
	}
}

Error log

Running code from above will produce something like

2024/08/02 10:23:24 Ooops, that's buggy
originalDSN = "usr/pwd@tcp(127.0.0.1:3306)/dbname?connectionAttributes=foo:bar"
reformattedDSN = "usr/pwd@tcp(127.0.0.1:3306)/dbname"

Configuration

Not relevant in this particular case, but still:

Driver version (or git SHA): 1.8.1

Go version: go1.22.4 darwin/arm64

Server version: mysql Ver 8.4.0 for Linux on aarch64 (MySQL Community Server - GPL)

Server OS: linux c44dcabf32be 6.6.32-linuxkit #1 SMP Thu Jun 13 14:13:01 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

@bogcon bogcon linked a pull request Aug 2, 2024 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant