Skip to content

Commit

Permalink
Update generic.go - fixed slow query
Browse files Browse the repository at this point in the history
  • Loading branch information
miro-balaz authored and berkayoz committed Feb 21, 2024
1 parent 79a9d2d commit 5506181
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions pkg/kine/drivers/generic/generic.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,17 @@ var (

listSQL = fmt.Sprintf(`
SELECT %s
FROM kine AS kv
LEFT JOIN kine kv2
ON kv.name = kv2.name
AND kv.id < kv2.id
WHERE kv2.name IS NULL
AND kv.name >= ? AND kv.name < ?
AND (? OR kv.deleted = 0)
%%s
FROM kine kv
JOIN (
SELECT MAX(mkv.id) as id
FROM kine mkv
WHERE
mkv.name >= ? AND mkv.name < ?
%%s
GROUP BY mkv.name) maxkv
ON maxkv.id = kv.id
WHERE
(kv.deleted = 0 OR ?)
ORDER BY kv.id ASC
`, columns)

Expand Down Expand Up @@ -200,7 +203,7 @@ func Open(ctx context.Context, driverName, dataSourceName string, paramCharacter
WHERE kv.id = ?`, columns), paramCharacter, numbered),

GetCurrentSQL: q(fmt.Sprintf(listSQL, ""), paramCharacter, numbered),
ListRevisionStartSQL: q(fmt.Sprintf(listSQL, "AND kv.id <= ?"), paramCharacter, numbered),
ListRevisionStartSQL: q(fmt.Sprintf(listSQL, "AND mkv.id <= ?"), paramCharacter, numbered),
GetRevisionAfterSQL: q(revisionAfterSQL, paramCharacter, numbered),

CountSQL: q(fmt.Sprintf(`
Expand Down

0 comments on commit 5506181

Please sign in to comment.