package dbctrl

import (
	"database/sql"
	"validate/util"
)

type GlobalVariables struct {
	Name  string
	Value string
}

const ShowAllGlobalVariableStmt = "SHOW GLOBAL VARIABLES;"

func GetGlobalVariableList(tx *sql.Tx) ([]*GlobalVariables, error) {
	rows, err := tx.Query(ShowAllGlobalVariableStmt)
	if err != nil {
		return nil, err
	}

	var globalVariableList []*GlobalVariables
	for rows.Next() {
		variable := &GlobalVariables{}
		if err = rows.Scan(&variable.Name, &variable.Value); err != nil {
			util.Logger.Fatalf(err.Error())
		}

		globalVariableList = append(globalVariableList, variable)
	}

	return globalVariableList, nil
}
