10 ** mysql> select VARIABLE_VALUE from information_schema.global_variables where variable_name = 'hostname';
16 * 1 row in set (0.00 sec)
18 func SelectGlobalVariableByVariableName(dbh *sql.DB, variable_name string) (error, string) {
19 sql_select := "SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = ?"
21 var variable_value string
22 err := dbh.QueryRow(sql_select, variable_name).Scan(&variable_value)
24 case err == sql.ErrNoRows:
25 log.Println("No setting with that variable_name", variable_name)
29 // fmt.Println("variable_value for", variable_name, "is", variable_value)
32 return err, variable_value
35 // Provide a slice of string and get back a hash of variable_name to value.
36 // - note the query is case insensitive for variable names.
37 // - they key values are lower-cased.
38 func SelectGlobalVariablesByVariableName(dbh *sql.DB, wanted []string) (error, map[string]string) {
39 hashref := make(map[string]string)
41 // create an IN list to make up the query
42 quoted := make([]string, 0, len(wanted))
43 sql_select := "SELECT VARIABLE_NAME, VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME IN ("
46 log.Fatal("SelectGlobalVariablesByVariableName() needs at least one entry")
49 for i := range wanted {
50 quoted = append(quoted, "'"+wanted[i]+"'")
53 sql_select += strings.Join(quoted, ",")
56 rows, err := dbh.Query(sql_select)
60 var variable, value string
61 if err := rows.Scan(&variable, &value); err != nil {
64 hashref[strings.ToLower(variable)] = value
66 if err := rows.Err(); err != nil {
73 // Return all global variables as a hashref
74 func SelectAllGlobalVariablesByVariableName(dbh *sql.DB) (error, map[string]string) {
75 hashref := make(map[string]string)
77 sql_select := "SELECT VARIABLE_NAME, VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES"
79 rows, err := dbh.Query(sql_select)
83 var variable, value string
84 if err := rows.Scan(&variable, &value); err != nil {
87 hashref[strings.ToLower(variable)] = value
89 if err := rows.Err(); err != nil {