dsn.go
func GenClickhouse(u *URL) (string, error) {
	z := &url.URL{
		Scheme:   "tcp",
		Opaque:   u.Opaque,
		Host:     u.Host,
		Path:     u.Path,
		RawPath:  u.RawPath,
		RawQuery: u.RawQuery,
		Fragment: u.Fragment,
	}

	if hostport(z.Host) == "" {
		z.Host += ":9000"
	}

	// add parameters
	q := z.Query()
	if u.User != nil {
		if user := u.User.Username(); len(user) > 0 {
			q.Set("username", user)
		}
		if pass, ok := u.User.Password(); ok {
			q.Set("password", pass)
		}
	}
	z.RawQuery = q.Encode()

	return z.String(), nil
}
func GenClickhouse(u *URL) (string, error) {
	z := &url.URL{
		Scheme:   "tcp",
		Opaque:   u.Opaque,
		Host:     u.Host,
		Path:     u.Path,
		RawPath:  u.RawPath,
		RawQuery: u.RawQuery,
		Fragment: u.Fragment,
	}

	if hostport(z.Host) == "" {
		z.Host += ":9000"
	}

	// add parameters
	q := z.Query()
	if u.User != nil {
		if user := u.User.Username(); len(user) > 0 {
			q.Set("username", user)
		}
		if pass, ok := u.User.Password(); ok {
			q.Set("password", pass)
		}
	}
	z.RawQuery = q.Encode()

	return z.String(), nil
}
func GenClickhouse ( u * URL ) ( string , error ) { z := & url . URL { Scheme : " " , Opaque : u . Opaque , Host : u . Host , Path : u . Path , RawPath : u . RawPath , RawQuery : u . RawQuery , Fragment : u . Fragment , } if hostport ( z . Host ) == " " { z . Host += " " } // add parameters q := z . Query ( ) if u . User != nil { if user := u . User . Username ( ) ; len ( user ) > 0 { q . Set ( " " , user ) } if pass , ok := u . User . Password ( ) ; ok { q . Set ( " " , pass ) } } z . RawQuery = q . Encode ( ) return z . String ( ) , nil }
// GenClickhouse generates a clickhouse DSN from the passed URL.
GenClickhouse generates a clickhouse DSN from the passed URL .