spanner-annotationsimpls-fixes (#102622)

* Fix DELETE statements.
* Reset sequence generator when truncating tables.
* Quote "at", since it's a keyword in Spanner.
This commit is contained in:
Peter Štibraný
2025-03-21 16:10:51 +01:00
committed by GitHub
parent 19d1ded3bf
commit 3d53968ecb
7 changed files with 28 additions and 6 deletions
@@ -119,8 +119,8 @@ func TestIntegrationAnnotationCleanUp(t *testing.T) {
t.Cleanup(func() {
err := fakeSQL.WithDbSession(context.Background(), func(session *db.Session) error {
_, deleteAnnotationErr := session.Exec("DELETE FROM annotation")
_, deleteAnnotationTagErr := session.Exec("DELETE FROM annotation_tag")
_, deleteAnnotationErr := session.Exec("DELETE FROM annotation WHERE true")
_, deleteAnnotationTagErr := session.Exec("DELETE FROM annotation_tag WHERE true")
return errors.Join(deleteAnnotationErr, deleteAnnotationTagErr)
})
assert.NoError(t, err)
@@ -157,7 +157,7 @@ func TestIntegrationOldAnnotationsAreDeletedFirst(t *testing.T) {
t.Cleanup(func() {
err := fakeSQL.WithDbSession(context.Background(), func(session *db.Session) error {
_, err := session.Exec("DELETE FROM annotation")
_, err := session.Exec("DELETE FROM annotation WHERE true")
return err
})
assert.NoError(t, err)
@@ -333,10 +333,11 @@ func (r *xormRepositoryImpl) Get(ctx context.Context, query annotations.ItemQuer
}
if len(tags) > 0 {
// "at" is a keyword in Spanner and needs to be quoted.
tagsSubQuery := fmt.Sprintf(`
SELECT SUM(1) FROM annotation_tag at
INNER JOIN tag on tag.id = at.tag_id
WHERE at.annotation_id = a.id
SELECT SUM(1) FROM annotation_tag `+r.db.Quote("at")+`
INNER JOIN tag on tag.id = `+r.db.Quote("at")+`.tag_id
WHERE `+r.db.Quote("at")+`.annotation_id = a.id
AND (
%s
)