func (handler MysqlHandler) GetColumns(table string) []string {
	if _, ok := tableColumns[table]; !ok {
		sql := "SELECT COLUMN_NAME AS 'column' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='" + config_database + "' AND TABLE_NAME=?"
		db, err := DB()
		if err != nil {
			log.Error("No connection when fetching meta columns", "")
		}
		columns := []struct {
			Column string `boil:"column"`
		}{}
		err = queries.Raw(sql, table).Bind(context.Background(), db, &columns)
		if err != nil {
			log.Error(err.Error(), "")
		}
		result := []string{}
		for _, column := range columns {
			result = append(result, column.Column)
		}
		tableColumns[table] = result
	}
	return tableColumns[table]
}
get table columns with Cache
package db
import (
	"context"
	"database/sql"
	"errors"
	"fmt"
	"strconv"
	"strings"
	"github.com/digimakergo/digimaker/core/definition"
	"github.com/digimakergo/digimaker/core/log"
	"github.com/digimakergo/digimaker/core/util"
	"github.com/volatiletech/sqlboiler/queries"
	_ "github.com/go-sql-driver/mysql"  
)
type Datamap map[string]interface{}
type DatamapList []Datamap
var tableColumns = map[string][]string{}
type MysqlHandler struct {
}