func InferType(sc *variable.StatementContext, node ast.Node) error {
	var inferrer typeInferrer
	inferrer.sc = sc
	// TODO: get the default charset from ctx
	inferrer.defaultCharset = "utf8"
	node.Accept(&inferrer)
	return inferrer.err
}
// InferType infers result type for ast.ExprNode.
InferType infers result type for ast.ExprNode.
// InferType infers result type for ast . ExprNode .
func InferType(sc *variable.StatementContext, node ast.Node) error {
	var inferrer typeInferrer
	inferrer.sc = sc
	inferrer.defaultCharset = "utf8"
	node.Accept(&inferrer)
	return inferrer.err
}
func InferType ( sc * variable . StatementContext , node ast . Node ) error { var inferrer typeInferrer inferrer . sc = sc inferrer . defaultCharset = " " node . Accept ( & inferrer ) return inferrer . err }
InferType infers result type for ast.ExprNode.
InferType infers result type for ast . ExprNode .
// TODO: get the default charset from ctx