summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gitlab/metrics/obfuscated_sql.rb10
-rw-r--r--spec/lib/gitlab/metrics/obfuscated_sql_spec.rb8
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/gitlab/metrics/obfuscated_sql.rb b/lib/gitlab/metrics/obfuscated_sql.rb
index 45f2e2bc62a..7b15670aa6b 100644
--- a/lib/gitlab/metrics/obfuscated_sql.rb
+++ b/lib/gitlab/metrics/obfuscated_sql.rb
@@ -30,9 +30,17 @@ module Gitlab
regex = Regexp.union(regex, MYSQL_REPLACEMENTS)
end
- @sql.gsub(regex, '?').gsub(CONSECUTIVE) do |match|
+ sql = @sql.gsub(regex, '?').gsub(CONSECUTIVE) do |match|
"#{match.count(',') + 1} values"
end
+
+ # InfluxDB escapes double quotes upon output, so lets get rid of them
+ # whenever we can.
+ if Gitlab::Database.postgresql?
+ sql = sql.gsub('"', '')
+ end
+
+ sql
end
end
end
diff --git a/spec/lib/gitlab/metrics/obfuscated_sql_spec.rb b/spec/lib/gitlab/metrics/obfuscated_sql_spec.rb
index 6e9b62016d6..0f01ee588c9 100644
--- a/spec/lib/gitlab/metrics/obfuscated_sql_spec.rb
+++ b/spec/lib/gitlab/metrics/obfuscated_sql_spec.rb
@@ -75,5 +75,13 @@ describe Gitlab::Metrics::ObfuscatedSQL do
expect(sql.to_s).to eq('SELECT x FROM y WHERE z IN (2 values)')
end
end
+
+ if Gitlab::Database.postgresql?
+ it 'replaces double quotes' do
+ sql = described_class.new('SELECT "x" FROM "y"')
+
+ expect(sql.to_s).to eq('SELECT x FROM y')
+ end
+ end
end
end