func main() { datname := os.Getenv("PGDATABASE") sslmode := os.Getenv("PGSSLMODE") if datname == "" { os.Setenv("PGDATABASE", "pqgotest") } if sslmode == "" { os.Setenv("PGSSLMODE", "disable") } db, err := sql.Open("postgres", "") if err != nil { log.Fatal(err) } cmd := exec.Command("gofmt") cmd.Stderr = os.Stderr w, err := cmd.StdinPipe() if err != nil { log.Fatal(err) } f, err := os.Create("types.go") if err != nil { log.Fatal(err) } cmd.Stdout = f err = cmd.Start() if err != nil { log.Fatal(err) } fmt.Fprintln(w, "// generated by 'go run gen.go'; do not edit") fmt.Fprintln(w, "\npackage oid") fmt.Fprintln(w, "const (") rows, err := db.Query(` SELECT typname, oid FROM pg_type WHERE oid < 10000 ORDER BY oid; `) if err != nil { log.Fatal(err) } var name string var oid int for rows.Next() { err = rows.Scan(&name, &oid) if err != nil { log.Fatal(err) } fmt.Fprintf(w, "T_%s Oid = %d\n", name, oid) } if err = rows.Err(); err != nil { log.Fatal(err) } fmt.Fprintln(w, ")") w.Close() cmd.Wait() }
func openTestConnConninfo(conninfo string) (*sql.DB, error) { defaultTo := func(envvar string, value string) { if os.Getenv(envvar) == "" { os.Setenv(envvar, value) } } defaultTo("PGDATABASE", "pqgotest") defaultTo("PGSSLMODE", "disable") defaultTo("PGCONNECT_TIMEOUT", "20") if forceBinaryParameters() && !strings.HasPrefix(conninfo, "postgres://") && !strings.HasPrefix(conninfo, "postgresql://") { conninfo = conninfo + " binary_parameters=yes" } return sql.Open("postgres", conninfo) }
func openTestConn(t Fatalistic) *sql.DB { datname := os.Getenv("PGDATABASE") sslmode := os.Getenv("PGSSLMODE") if datname == "" { os.Setenv("PGDATABASE", "pqgotest") } if sslmode == "" { os.Setenv("PGSSLMODE", "disable") } conn, err := sql.Open("postgres", "") if err != nil { t.Fatal(err) } return conn }