private string GetDeclareStatement(QueryPlanType queryPlan) { if (queryPlan?.ParameterList == null || queryPlan.ParameterList.Length == 0) { return(""); } var result = StringBuilderCache.Get(); var paramTypeList = paramRegex.Match(StatementText); if (!paramTypeList.Success) { return(""); } // TODO: get test cases and move this to a single multi-match regex var paramTypes = paramSplitRegex.Split(paramTypeList.Groups[1].Value).Select(p => p.Split(StringSplits.Space)); foreach (var p in queryPlan.ParameterList) { var paramType = paramTypes.FirstOrDefault(pt => pt[0] == p.Column); if (paramType != null) { result.AppendFormat(declareFormat, p.Column, paramType[1], p.ParameterCompiledValue) .AppendLine(); } } return(result.Length > 0 ? result.Insert(0, "-- Compiled Params\n").ToStringRecycle() : result.ToStringRecycle()); }
private string GetDeclareStatement(QueryPlanType queryPlan) { if (queryPlan == null || queryPlan.ParameterList == null || !queryPlan.ParameterList.Any()) { return(""); } var result = new StringBuilder(); var paramTypeList = paramRegex.Match(StatementText); if (!paramTypeList.Success) { return(""); } var paramTypes = paramTypeList.Groups[1].Value.Split(StringSplits.Comma).Select(p => p.Split(StringSplits.Space)); queryPlan.ParameterList.ForEach(p => { var paramType = paramTypes.FirstOrDefault(pt => pt[0] == p.Column); if (paramType != null) { result.AppendFormat(declareFormat, p.Column, paramType[1], p.ParameterCompiledValue) .AppendLine(); } }); return(result.Length > 0 ? result.Insert(0, "-- Compiled Params\n").ToString() : ""); }