From 69b32c6440a17e818b12cd6fd34e3c266106fc31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Tue, 31 Jan 2023 10:24:33 +0100 Subject: [PATCH] server: fix include children in search --- server.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/server.rb b/server.rb index 42deb1e..a1ee889 100755 --- a/server.rb +++ b/server.rb @@ -169,6 +169,7 @@ def search(terms) statements << @db.prepare("SELECT id FROM part WHERE mpn LIKE ?") statements << @db.prepare("SELECT id FROM part WHERE description LIKE ?") statements << @db.prepare("SELECT property_value.part AS id FROM property_value JOIN property ON property.id = property_value.property WHERE property.name = 'category' AND property_value.value LIKE ?") + children = @db.prepare("SELECT id FROM part WHERE family = ?") term_ids = [] terms.each do |term| ids = Set.new @@ -176,17 +177,13 @@ def search(terms) statements.each do |statement| statement.execute("%#{term}%").each do |row| ids << row["id"] + children.execute(row["id"]).each do |child| + ids << child["id"] + end end end term_ids << ids end - # get all children - statement = @db.prepare("SELECT id FROM part WHERE family IN (?)") - term_ids.each do |term_id| - statement.execute(term_id.to_a * ",").each do |row| - term_id << row["id"] - end - end # AND terms ids = term_ids.shift term_ids.each do |term_id|