From 2f09c32d2dab511ad389a6fe667b0d6cbeb0c512 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Thu, 18 Jan 2024 21:47:57 +0000 Subject: [PATCH] Fix getTiddler query --- .../modules/sql-tiddler-store.js | 24 +++++++------------ .../modules/tests-sql-tiddler-store.js | 1 + 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/plugins/tiddlywiki/multiwikiserver/modules/sql-tiddler-store.js b/plugins/tiddlywiki/multiwikiserver/modules/sql-tiddler-store.js index 4274c3690..7794d23fc 100644 --- a/plugins/tiddlywiki/multiwikiserver/modules/sql-tiddler-store.js +++ b/plugins/tiddlywiki/multiwikiserver/modules/sql-tiddler-store.js @@ -284,22 +284,14 @@ SqlTiddlerStore.prototype.getTiddler = function(title,recipename) { SELECT field_name, field_value FROM fields WHERE tiddler_id = ( - SELECT tt.tiddler_id - FROM ( - SELECT bb.bag_id, t.tiddler_id - FROM ( - SELECT b.bag_id - FROM bags AS b - INNER JOIN recipe_bags AS rb ON b.bag_id = rb.bag_id - INNER JOIN recipes AS r ON rb.recipe_id = r.recipe_id - WHERE r.recipe_name = $recipe_name - ORDER BY rb.position - ) AS bb - INNER JOIN tiddlers AS t ON bb.bag_id = t.bag_id - WHERE t.title = $title - ) AS tt - ORDER BY tt.tiddler_id DESC - LIMIT 1 + SELECT t.tiddler_id + FROM bags AS b + INNER JOIN recipe_bags AS rb ON b.bag_id = rb.bag_id + INNER JOIN recipes AS r ON rb.recipe_id = r.recipe_id + INNER JOIN tiddlers AS t ON b.bag_id = t.bag_id + WHERE r.recipe_name = $recipe_name + AND t.title = $title + ORDER BY rb.position DESC ) `,{ title: title, diff --git a/plugins/tiddlywiki/multiwikiserver/modules/tests-sql-tiddler-store.js b/plugins/tiddlywiki/multiwikiserver/modules/tests-sql-tiddler-store.js index d41613af6..3262c4ccd 100644 --- a/plugins/tiddlywiki/multiwikiserver/modules/tests-sql-tiddler-store.js +++ b/plugins/tiddlywiki/multiwikiserver/modules/tests-sql-tiddler-store.js @@ -47,6 +47,7 @@ describe("SQL tiddler store", function() { expect(sqlTiddlerStore.getTiddler("Another Tiddler","recipe-rho")).toEqual({ title: "Another Tiddler", text: "I'm in alpha", tags: "one two three" }); expect(sqlTiddlerStore.getTiddler("Hello There","recipe-sigma")).toEqual({ title: "Hello There", text: "I'm in gamma", tags: "seven eight nine" }); expect(sqlTiddlerStore.getTiddler("Another Tiddler","recipe-sigma")).toEqual({ title: "Another Tiddler", text: "I'm in alpha", tags: "one two three" }); + expect(sqlTiddlerStore.getTiddler("Hello There","recipe-upsilon")).toEqual({title: "Hello There",text: "I'm in beta",tags: "four five six"}); // Delete a tiddlers to ensure the underlying tiddler in the recipe shows through sqlTiddlerStore.deleteTiddler("Hello There","bag-beta"); expect(sqlTiddlerStore.getRecipeTiddlers("recipe-rho")).toEqual([ "Another Tiddler", "Hello There"]);