From eb32b3938079451b6cdd7e47b073c7eb7e85f493 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Fri, 30 May 2025 13:29:10 +0200 Subject: [PATCH] graph/db: demonstrate SQL upsert node bug --- graph/db/graph_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/graph/db/graph_test.go b/graph/db/graph_test.go index 6984517e0..49969ed7e 100644 --- a/graph/db/graph_test.go +++ b/graph/db/graph_test.go @@ -3359,6 +3359,20 @@ func TestAddChannelEdgeShellNodes(t *testing.T) { // error. err = graph.AddChannelEdge(&edgeInfo) require.ErrorIs(t, err, ErrEdgeAlreadyExist) + + // Show that updating the shell node to a full node record works. + err = graph.AddLightningNode(node2) + _, ok := graph.V1Store.(*KVStore) + if ok { + require.NoError(t, err) + } else { + // Currently the SQL UpsertNode query prevents us from updating + // the node record if the current record's last_update field + // is null (which is the case for node2). This is a bug that + // will be fixed in the following commit. + require.ErrorContains(t, graph.AddLightningNode(node2), + "sql: no rows in result set") + } } // TestNodePruningUpdateIndexDeletion tests that once a node has been removed