#!/bin/bash

function cmd_ti_schrodinger_ddl()
{
	local ti_file="${1}"
	local ti_args="${2}"
	local cmd_mod_names="${3}"
	local cmd_hosts="${4}"
	local cmd_indexes="${5}"
	local mods="${6}"
	shift 6

	local tidb_mod=`from_mods_random_mod "${mods}" 'tidb' 'false'`
	if [ -z "${tidb_mod}" ]; then
		echo "[cmd schrodinger/ddl] no selected tidb" >&2
		return 1
	fi

	if [ -z "${1+x}" ] || [ -z "${1}" ]; then
		local concurrency="20"
	else
		local concurrency="${1}"
	fi

	if [ -z "${2+x}" ] || [ -z "${2}" ]; then
		local mysql_compatible="false"
	else
		local mysql_compatible="${2}"
	fi

	if [ -z "${3+x}" ] || [ -z "${3}"]; then
		local allow_varchar_to_char="false"
	else
		local allow_varchar_to_char="${3}"
	fi

	local host=`from_mod_get_host "${tidb_mod}"`
	local dir=`from_mod_get_dir "${tidb_mod}"`

	local port=`ssh_get_value_from_proc_info "${host}" "${dir}" 'tidb_port'`

	local bin_dir="/tmp/ti/master/bins"
	# TODO: remove hardcode file path
	local conf_file="${integrated}/conf/tools_local.kv"
	local binary_url=`local_package_get_value "${conf_file}" "ddl_url" "${integrated}/resource"`
	copy_test_binary "${binary_url}" "ddl" "${bin_dir}"
	echo "Start to run ddl test..."
	echo "Concurrency worker count: ${concurrency}"
	echo "Mysql compatible: ${mysql_compatible}"
	echo "Allow varchar to char: ${allow_varchar_to_char}"
	export TIDB_SERVICE="${host}:${port}"; 
	"${bin_dir}/ddl" \
		-concurrency="${concurrency}" \
		-mysql-compatible="${mysql_compatible}" \
		-allow-varchar-to-char="${allow_varchar_to_char}" \
		1>ddl.log 2>&1	
}

set -euo pipefail
cmd_ti_schrodinger_ddl "${@}"
