chore(sonar): bulk-fix production INFO analyzer warnings + skill update #12

Merged
bermudalamb merged 7 commits from chore/sonarqube-info-prod-bulk into main 2026-05-26 16:49:02 -05:00
4 changed files with 9 additions and 13 deletions
Showing only changes of commit 81254c12f9 - Show all commits
@@ -186,9 +186,9 @@ public class QueryCollectionAnalyzer
var table = query.FromClause?.Clause?.Trim(); var table = query.FromClause?.Clause?.Trim();
if (!string.IsNullOrWhiteSpace(table)) if (!string.IsNullOrWhiteSpace(table))
{ {
if (tableUsage.ContainsKey(table)) if (tableUsage.TryGetValue(table, out int value))
{ {
tableUsage[table]++; tableUsage[table] = ++value;
} }
else else
{ {
@@ -221,9 +221,9 @@ public class QueryCollectionAnalyzer
foreach (var col in columns) foreach (var col in columns)
{ {
var columnName = col.Trim(); var columnName = col.Trim();
if (columnUsage.ContainsKey(columnName)) if (columnUsage.TryGetValue(columnName, out int value))
{ {
columnUsage[columnName]++; columnUsage[columnName] = ++value;
} }
else else
{ {
@@ -113,9 +113,8 @@ public class StatementParser : SqlServerStatementParser
// PostgreSQL-specific: Append LIMIT/OFFSET to ORDER BY if present // PostgreSQL-specific: Append LIMIT/OFFSET to ORDER BY if present
var orderByClause = clauses.OrderByClause?.Clause ?? string.Empty; var orderByClause = clauses.OrderByClause?.Clause ?? string.Empty;
if (clausePositions.ContainsKey(KeywordLimit)) if (clausePositions.TryGetValue(KeywordLimit, out int limitStart))
{ {
var limitStart = clausePositions[KeywordLimit];
var limitEnd = clausePositions.Values var limitEnd = clausePositions.Values
.Where(v => v > limitStart) .Where(v => v > limitStart)
.Order() .Order()
@@ -127,9 +126,8 @@ public class StatementParser : SqlServerStatementParser
: $"{orderByClause} {limitClause}"; : $"{orderByClause} {limitClause}";
} }
if (clausePositions.ContainsKey(KeywordOffset)) if (clausePositions.TryGetValue(KeywordOffset, out int offsetStart))
{ {
var offsetStart = clausePositions[KeywordOffset];
var offsetEnd = clausePositions.Values var offsetEnd = clausePositions.Values
.Where(v => v > offsetStart) .Where(v => v > offsetStart)
.Order() .Order()
@@ -119,9 +119,9 @@ public class StatementParser : SqlServerStatementParser
protected override void PostProcessClauses(SqlClauses clauses, string sql, Dictionary<string, int> clausePositions) protected override void PostProcessClauses(SqlClauses clauses, string sql, Dictionary<string, int> clausePositions)
{ {
// Snowflake-specific: Append LIMIT to ORDER BY if present // Snowflake-specific: Append LIMIT to ORDER BY if present
if (clausePositions.ContainsKey(KeywordLimit)) if (clausePositions.TryGetValue(KeywordLimit, out int value))
{ {
var limitClause = sql.Substring(clausePositions[KeywordLimit]).Trim(); var limitClause = sql.Substring(value).Trim();
if (clauses.OrderByClause != null) if (clauses.OrderByClause != null)
{ {
clauses.OrderByClause.Clause = string.IsNullOrEmpty(clauses.OrderByClause.Clause) clauses.OrderByClause.Clause = string.IsNullOrEmpty(clauses.OrderByClause.Clause)
@@ -271,15 +271,13 @@ public static class FlatDataUtils
{ {
ArgumentNullException.ThrowIfNull(data); ArgumentNullException.ThrowIfNull(data);
if (!data.ContainsKey(key)) if (!data.TryGetValue(key, out object? rawValue))
{ {
throw new ArgumentException( throw new ArgumentException(
$"The specified key is not available. Requested key: [{key}] Available keys: [{string.Join(", ", data.Keys)}]", $"The specified key is not available. Requested key: [{key}] Available keys: [{string.Join(", ", data.Keys)}]",
nameof(key)); nameof(key));
} }
var rawValue = data[key];
return rawValue; return rawValue;
} }