package executor

//import (
//	_ "github.com/go-sql-driver/mysql"
//)

//func MysqlSqlFileLoad(jackeyLoveIp string, jackeyLoveFileList []string) (bool, []string) {
//
//	dsn := "root:QzfXQhd3bQ@tcp(" + jackeyLoveIp + ":33306)/"
//	db, err := sql.Open("mysql", dsn)
//	if err != nil {
//		errConnect := fmt.Sprintf("[MysqlSqlFileLoad]- mysql connection error ! please check ! => %s  error is %s ", dsn, err.Error())
//		log.Error(errConnect)
//		return false, []string{
//			errConnect,
//		}
//	}
//	defer db.Close()
//
//	// 确保数据库连接是有效的
//	if err := db.Ping(); err != nil {
//		errConnect := "[MysqlSqlFileLoad]- mysql ping error ! please check !"
//		log.Error(errConnect)
//		return false, []string{
//			errConnect,
//		}
//	}
//
//	for _, jackeyLoveFile := range jackeyLoveFileList {
//
//		// 打开 SQL 文件
//		jackeyLove, err := os.Open(jackeyLoveFile)
//		if err != nil {
//			log.ErrorF("[MysqlSqlFileLoad] - failed to load jackeyLoveFile => %s", jackeyLove.Name())
//		}
//		defer jackeyLove.Close()
//
//		// 逐行读取 SQL 文件并执行
//		query := ""
//		delimiterSwitched := false
//		scanner := bufio.NewScanner(jackeyLove)
//		for scanner.Scan() {
//			sqlStatement := scanner.Text()
//
//			if strings.HasPrefix(strings.TrimSpace(sqlStatement), "DELIMITER") {
//				delimiterSwitched = true
//				continue
//			}
//			if delimiterSwitched {
//				if strings.TrimSpace(sqlStatement) == "" || strings.TrimSpace(sqlStatement) == ";" {
//					delimiterSwitched = false
//					// 替换自定义分隔符为 ;
//					sqlStatement = strings.ReplaceAll(sqlStatement, ";;", ";")
//				} else {
//					// 忽略自定义分隔符行
//					continue
//				}
//			}
//
//			// 这里可以添加逻辑来忽略空行或注释行
//			if sqlStatement == "" || sqlStatement[:2] == "--" || sqlStatement[:2] == "/*" {
//				continue
//			}
//
//			query += sqlStatement
//
//			if strings.HasSuffix(strings.TrimSpace(sqlStatement), ";") {
//
//				fmt.Printf("%s -> %s", jackeyLoveFile, query)
//
//				_, err := db.Exec(query)
//				if err != nil {
//					executeError := fmt.Sprintf("[MysqlSqlFileLoad] - jackeyLoveFile %s 执行出错: %s, 错误信息: %s", jackeyLove.Name(), sqlStatement, err.Error())
//					log.Error(executeError)
//					return false, []string{
//						executeError,
//					}
//				}
//				query = ""
//			} else {
//				query += " " // 添加空格以便连接多行语句
//			}
//		}
//
//		// 检查扫描过程中是否有错误
//		if err := scanner.Err(); err != nil {
//			executeError := fmt.Sprintf("[MysqlSqlFileLoad] - jackeyLoveFile %s  文件加载错误!  错误信息: %s", jackeyLove.Name(), err.Error())
//			log.Error(executeError)
//			return false, []string{
//				executeError,
//			}
//		}
//		log.DebugF("[MysqlSqlFileLoad] - jackeyLoveFile %s  execute success !", jackeyLove.Name())
//	}
//
//	return true, append(jackeyLoveFileList, "[MysqlSqlFileLoad] all file loaded !")
//}

//func MySqlParseSQLFile(sqlFilePath string) []string {
//
//	var result []string
//
//	// 打开 SQL 文件
//	jackeyLove, err := os.Open(sqlFilePath)
//	if err != nil {
//		log.ErrorF("[MySqlParseSQLFile] - failed to load jackeyLoveFile => %s", jackeyLove.Name())
//	}
//	defer jackeyLove.Close()
//
//	// 逐行读取 SQL 文件并执行
//	query := ""
//	delimiterSwitched := false
//	scanner := bufio.NewScanner(jackeyLove)
//	for scanner.Scan() {
//		sqlStatement := scanner.Text()
//
//		if strings.HasPrefix(strings.TrimSpace(sqlStatement), "DELIMITER") {
//			delimiterSwitched = true
//			continue
//		}
//		if delimiterSwitched {
//			if strings.TrimSpace(sqlStatement) == "" || strings.TrimSpace(sqlStatement) == ";" {
//				delimiterSwitched = false
//				// 替换自定义分隔符为 ;
//				sqlStatement = strings.ReplaceAll(sqlStatement, ";;", ";")
//			} else {
//				// 忽略自定义分隔符行
//				continue
//			}
//		}
//
//		// 这里可以添加逻辑来忽略空行或注释行
//		if sqlStatement == "" || sqlStatement[:2] == "--" || sqlStatement[:2] == "/*" {
//			continue
//		}
//
//		query += sqlStatement
//
//		if strings.HasSuffix(strings.TrimSpace(sqlStatement), ";") {
//
//			result = append(result, query)
//
//			query = ""
//		} else {
//			query += "" // 添加空格以便连接多行语句
//		}
//	}
//
//	// 检查扫描过程中是否有错误
//	if err := scanner.Err(); err != nil {
//		executeError := fmt.Sprintf("[MysqlSqlFileLoad] - jackeyLoveFile %s  文件加载错误!  错误信息: %s", jackeyLove.Name(), err.Error())
//		log.Error(executeError)
//
//
//	}
//
//	return result
//}
//
//func MySqlConnection(jackeyLoveIp string, jackeyLovePort string) (bool, []string) {
//
//	dsn := "root:QzfXQhd3bQ@tcp(" + jackeyLoveIp + ":33306)/"
//	db, err := sql.Open("mysql", dsn)
//	if err != nil {
//		errConnect := fmt.Sprintf("[MysqlSqlFileLoad]- mysql connection error ! please check ! => %s  error is %s ", dsn, err.Error())
//		log.Error(errConnect)
//		return false, []string{
//			errConnect,
//		}
//	}
//	defer db.Close()
//
//	// 确保数据库连接是有效的
//	if err := db.Ping(); err != nil {
//		errConnect := "[MysqlSqlFileLoad]- mysql ping error ! please check !"
//		log.Error(errConnect)
//		return false, []string{
//			errConnect,
//		}
//	}
//
//	return true, nil
//}
