Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions SQLCC.Core/Objects/DbCodeSegment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ namespace SQLCC.Core.Objects
{
public class DbCodeSegment
{
public string SchemaName { get; set; }

public string ObjectName { get; set; }

public int LinesOfCode { get; set; }
Expand Down
9 changes: 6 additions & 3 deletions SQLCC.Impl.MsSqlProvider/MsSqlProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,13 @@ public override void StopTrace(string traceName)
public override List<DbCodeSegment> GetTraceCodeSegments(string traceName)
{
var trace = Path.Combine(_traceDir, string.Format(TraceFileFormat, traceName));
var codeTrace = _db.Fetch<DbCodeSegment>(@"SELECT DISTINCT LineNumber, Offset as StartByte, IntegerData2 as EndByte, ObjectName
var codeTrace = _db.Fetch<DbCodeSegment>(@"SELECT LineNumber, StartByte, EndByte, ObjectName, OBJECT_SCHEMA_NAME(ObjectID) SchemaName
FROM (
SELECT DISTINCT LineNumber, Offset as StartByte, IntegerData2 as EndByte, ObjectName, ObjectID
FROM ::fn_trace_gettable('" + trace + @"', default)
WHERE EventClass IN (40,41,42,43,44) AND Offset IS NOT NULL AND ObjectName IS NOT NULL
ORDER BY ObjectName, LineNumber ASC, StartByte ASC, IntegerData2 ASC;");
WHERE EventClass IN (40,41,42,43,44) AND Offset IS NOT NULL AND ObjectName IS NOT NULL AND Offset <= IntegerData2
) cs
ORDER BY SchemaName, ObjectName, LineNumber ASC, StartByte ASC, EndByte ASC;");
return codeTrace;
}

Expand Down
2 changes: 1 addition & 1 deletion SQLCC/CodeCoverageProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public void ProcessAllCoverage(DbCodeCoverage codeCover)
{
foreach (var obj in codeCover.TotalObjects)
{
obj.CoveredSegments = codeCover.TraceCodeSegments.Where(p => p.ObjectName.Equals(obj.Name)).ToList();
obj.CoveredSegments = codeCover.TraceCodeSegments.Where(p => p.ObjectName.Equals(obj.Name) && p.SchemaName.Equals(obj.Schema)).ToList();
obj.Set(ProcessObjectCoverage(obj));
obj.CodeHighlighted = _highlightCodeProvider.HighlightCode(obj.Code, obj.CoveredSegments);

Expand Down