From 0e58781daa70300e22ea4abdc0c36be7fba08d7c Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 16 Oct 2024 00:17:12 +0200 Subject: feat(tfstated): preserve lock information in states versions --- pkg/database/states.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'pkg/database/states.go') diff --git a/pkg/database/states.go b/pkg/database/states.go index 9c35212..36011ab 100644 --- a/pkg/database/states.go +++ b/pkg/database/states.go @@ -74,7 +74,13 @@ func (db *DB) SetState(name string, data []byte, lockID string) (bool, error) { err = fmt.Errorf("failed to update state, lock ID does not match") return true, err } - _, err = tx.ExecContext(db.ctx, `INSERT INTO versions(state_id, data) VALUES (?, ?);`, stateID, encryptedData) + _, err = tx.ExecContext(db.ctx, + `INSERT INTO versions(state_id, data, lock) + SELECT :stateID, :data, lock + FROM states + WHERE states.id = :stateID;`, + sql.Named("stateID", stateID), + sql.Named("data", encryptedData)) if err != nil { return false, err } -- cgit v1.2.3