From 54439d56aa1ffe8a1df23468bc26fce5a99c954f Mon Sep 17 00:00:00 2001 From: eaudetcobello Date: Tue, 20 Feb 2024 15:11:11 +0000 Subject: [PATCH] Fixes --- pkg/kine/drivers/generic/generic.go | 34 +++++++++++++++++++---------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/pkg/kine/drivers/generic/generic.go b/pkg/kine/drivers/generic/generic.go index bc8c1fdf..862b7089 100644 --- a/pkg/kine/drivers/generic/generic.go +++ b/pkg/kine/drivers/generic/generic.go @@ -22,18 +22,30 @@ var ( SELECT MAX(rkv.id) AS id FROM kine AS rkv` + compactRevSQL = ` + SELECT MAX(crkv.prev_revision) AS prev_revision + FROM kine AS crkv + WHERE crkv.name = 'compact_rev_key'` + 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 - ORDER BY kv.id ASC - `, columns) + SELECT * + FROM ( + SELECT (%s), (%s), %s + FROM kine AS kv + JOIN ( + SELECT MAX(mkv.id) AS id + FROM kine AS mkv + WHERE + mkv.name LIKE ? + %%s + GROUP BY mkv.name) AS maxkv + ON maxkv.id = kv.id + WHERE + kv.deleted = 0 OR + ? + ) AS lkv + ORDER BY lkv.theid ASC + `, revSQL, compactRevSQL, columns) // FIXME this query doesn't seem sound. revisionAfterSQL = fmt.Sprintf(`