[perf] Actual review changes from https://skia-review.googlesource.com/c/buildbot/+/305522
Change-Id: Ic4d808759bef86973ad53562bf3e91f707b2fcf5
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/305599
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
diff --git a/perf/go/tracestore/sqltracestore/sqltracestore.go b/perf/go/tracestore/sqltracestore/sqltracestore.go
index b37aef1..cfdd491 100644
--- a/perf/go/tracestore/sqltracestore/sqltracestore.go
+++ b/perf/go/tracestore/sqltracestore/sqltracestore.go
@@ -176,14 +176,12 @@
var templatesByDialect = map[perfsql.Dialect]templates{
perfsql.CockroachDBDialect: {
insertIntoPostings: `
- INSERT INTO
+ UPSERT INTO
Postings (tile_number, key_value, trace_id)
VALUES
{{ range $index, $element := . -}}
{{ if $index }},{{end}}({{ $element.TileNumber }}, '{{ $element.KeyValue }}', {{ $element.TraceID }})
- {{ end }}
- ON CONFLICT
- DO NOTHING`,
+ {{ end }}`,
},
}
@@ -315,7 +313,7 @@
for key, tmpl := range templatesByDialect[dialect] {
t, err := template.New("").Parse(tmpl)
if err != nil {
- return nil, skerr.Wrapf(err, "parsting template %v, %q", key, tmpl)
+ return nil, skerr.Wrapf(err, "parsing template %v, %q", key, tmpl)
}
unpreparedStatements[key] = t
}
@@ -704,6 +702,7 @@
// the given traceID and tileNumber. The Params given are from the parse trace
// name.
func (s *SQLTraceStore) updatePostings(p paramtools.Params, tileNumber types.TileNumber, traceID int64) error {
+ // Clean the data to avoid SQL injection attacks.
p = query.ForceValid(p)
// Prepare the data for the SQL template.