diff --git a/SQLLinter.CLI/Program.cs b/SQLLinter.CLI/Program.cs index 487b27c..3f3a664 100644 --- a/SQLLinter.CLI/Program.cs +++ b/SQLLinter.CLI/Program.cs @@ -45,7 +45,7 @@ namespace SQLLinter.CLI ["SetVariable"] = Common.RuleViolationSeverity.Critical, ["CreateProcedureInDbo"] = Common.RuleViolationSeverity.Warning, }, - GenerateDetails = true, + GenerateDetails = false, }; //var linter = new Linter(con, rep); @@ -63,7 +63,7 @@ namespace SQLLinter.CLI Dictionary files = new(); - for (int i = 0; i < 15; i++) + for (int i = 0; i < 5; i++) { files[name + i + ".sql"] = reader.BaseStream; } diff --git a/SQLLinter/Infrastructure/Parser/SqlRuleVisitor.cs b/SQLLinter/Infrastructure/Parser/SqlRuleVisitor.cs index 90a16a9..3cb28bf 100644 --- a/SQLLinter/Infrastructure/Parser/SqlRuleVisitor.cs +++ b/SQLLinter/Infrastructure/Parser/SqlRuleVisitor.cs @@ -39,7 +39,7 @@ public class SqlRuleVisitor : IRuleVisitor if (sqlFragment == null) return; //Dictionary? parentMap = generateDetails ? ParentMapBuilder.Build(sqlFragment) : null; - Dictionary? parentMap = new Dictionary(); + Dictionary? parentMap = generateDetails ? new Dictionary() : null; var ruleExceptions = ignoredRules as IRuleException[] ?? ignoredRules.ToArray(); if (errors.Any()) diff --git a/SQLLinter/Infrastructure/Rules/ConditionalBeginEndRule.cs b/SQLLinter/Infrastructure/Rules/ConditionalBeginEndRule.cs index d364b17..3a11fa4 100644 --- a/SQLLinter/Infrastructure/Rules/ConditionalBeginEndRule.cs +++ b/SQLLinter/Infrastructure/Rules/ConditionalBeginEndRule.cs @@ -17,7 +17,7 @@ public class ConditionalBeginEndRule : BaseRuleVisitor, IRule public override void Visit(IfStatement node) { - if (node.ThenStatement != null && node.ThenStatement is not BeginEndBlockStatement) + if (node.ThenStatement != null && node.ThenStatement is not BeginEndBlockStatement && node.ThenStatement is not TryCatchStatement) { if (node.ThenStatement.StartLine != node.StartLine || node.ScriptTokenStream.Where(t => t.Offset <= node.ThenStatement.StartOffset + node.ThenStatement.FragmentLength).Max(t => t.Line) != node.StartLine) { @@ -25,7 +25,7 @@ public class ConditionalBeginEndRule : BaseRuleVisitor, IRule } } - if (node.ElseStatement != null && node.ElseStatement is not BeginEndBlockStatement && node.ElseStatement is not IfStatement) + if (node.ElseStatement != null && node.ElseStatement is not BeginEndBlockStatement && node.ElseStatement is not TryCatchStatement && node.ElseStatement is not IfStatement) { if (node.ElseStatement.StartLine != node.StartLine || node.ScriptTokenStream.Where(t => t.Offset <= node.ElseStatement.StartOffset + node.ElseStatement.FragmentLength).Max(t => t.Line) != node.StartLine) { diff --git a/SQLLinter/Infrastructure/Rules/DeleteWhereRule.cs b/SQLLinter/Infrastructure/Rules/DeleteWhereRule.cs index 9ddf99a..6b094bb 100644 --- a/SQLLinter/Infrastructure/Rules/DeleteWhereRule.cs +++ b/SQLLinter/Infrastructure/Rules/DeleteWhereRule.cs @@ -20,6 +20,6 @@ public class DeleteWhereRule : BaseRuleVisitor, IRule .Select(t => t.Text) ); - AddViolation(node, name); + AddViolation(node.Target, name); } }