196 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| package v1
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"database/sql"
 | |
| 	"strconv"
 | |
| )
 | |
| 
 | |
| type Mapping struct {
 | |
| 	OnServer string
 | |
| 	InExport string
 | |
| }
 | |
| 
 | |
| var Mappings = []*Mapping{
 | |
| 	{
 | |
| 		OnServer: "Aborted_",
 | |
| 		InExport: "aborted_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Bytes_",
 | |
| 		InExport: "bytes_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Com_",
 | |
| 		InExport: "commands_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Created_",
 | |
| 		InExport: "created_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Handler_",
 | |
| 		InExport: "handler_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Innodb_",
 | |
| 		InExport: "innodb_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Key_",
 | |
| 		InExport: "key_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Open_",
 | |
| 		InExport: "open_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Opened_",
 | |
| 		InExport: "opened_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Qcache_",
 | |
| 		InExport: "qcache_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Table_",
 | |
| 		InExport: "table_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Tokudb_",
 | |
| 		InExport: "tokudb_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Threads_",
 | |
| 		InExport: "threads_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Access_",
 | |
| 		InExport: "access_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Aria__",
 | |
| 		InExport: "aria_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Binlog__",
 | |
| 		InExport: "binlog_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Busy_",
 | |
| 		InExport: "busy_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Connection_",
 | |
| 		InExport: "connection_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Delayed_",
 | |
| 		InExport: "delayed_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Empty_",
 | |
| 		InExport: "empty_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Executed_",
 | |
| 		InExport: "executed_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Executed_",
 | |
| 		InExport: "executed_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Feature_",
 | |
| 		InExport: "feature_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Flush_",
 | |
| 		InExport: "flush_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Last_",
 | |
| 		InExport: "last_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Master_",
 | |
| 		InExport: "master_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Max_",
 | |
| 		InExport: "max_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Memory_",
 | |
| 		InExport: "memory_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Not_",
 | |
| 		InExport: "not_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Performance_",
 | |
| 		InExport: "performance_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Prepared_",
 | |
| 		InExport: "prepared_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Rows_",
 | |
| 		InExport: "rows_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Rpl_",
 | |
| 		InExport: "rpl_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Select_",
 | |
| 		InExport: "select_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Slave_",
 | |
| 		InExport: "slave_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Slow_",
 | |
| 		InExport: "slow_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Sort_",
 | |
| 		InExport: "sort_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Subquery_",
 | |
| 		InExport: "subquery_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Tc_",
 | |
| 		InExport: "tc_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Threadpool_",
 | |
| 		InExport: "threadpool_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "wsrep_",
 | |
| 		InExport: "wsrep_",
 | |
| 	},
 | |
| 	{
 | |
| 		OnServer: "Uptime_",
 | |
| 		InExport: "uptime_",
 | |
| 	},
 | |
| }
 | |
| 
 | |
| func ParseValue(value sql.RawBytes) (float64, bool) {
 | |
| 	if bytes.Compare(value, []byte("Yes")) == 0 || bytes.Compare(value, []byte("ON")) == 0 {
 | |
| 		return 1, true
 | |
| 	}
 | |
| 
 | |
| 	if bytes.Compare(value, []byte("No")) == 0 || bytes.Compare(value, []byte("OFF")) == 0 {
 | |
| 		return 0, true
 | |
| 	}
 | |
| 	n, err := strconv.ParseFloat(string(value), 64)
 | |
| 	return n, err == nil
 | |
| }
 |