From 5e6f8ba66b6d8a7b56f641f45eb3089dbf3f1c0c Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Fri, 16 May 2025 00:54:57 +0200 Subject: [PATCH] QmlDesigner: Remove recursions Change-Id: I1e4258721fa7f04d69854755810eb586cf2c8dec Reviewed-by: Thomas Hartmann --- .../designercore/projectstorage/projectstorage.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.cpp b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.cpp index 1fb953c2ea4..48b0d2d2c3f 100644 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.cpp +++ b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.cpp @@ -526,14 +526,18 @@ struct ProjectStorage::Statements mutable Sqlite::ReadStatement<1, 1> selectPrototypeAndExtensionIdsStatement{ "WITH RECURSIVE " " prototypes(typeId) AS ( " - " SELECT prototypeId FROM types WHERE typeId=?1 " + " SELECT prototypeId FROM types WHERE typeId=?1 AND prototypeId IS NOT NULL " " UNION ALL " - " SELECT extensionId FROM types WHERE typeId=?1 " + " SELECT extensionId FROM types WHERE typeId=?1 AND extensionId IS NOT NULL " " UNION ALL " - " SELECT prototypeId FROM types JOIN prototypes USING(typeId) " + " SELECT prototypeId " + " FROM types JOIN prototypes USING(typeId) " + " WHERE prototypeId IS NOT NULL " " UNION ALL " - " SELECT extensionId FROM types JOIN prototypes USING(typeId)) " - "SELECT typeId FROM prototypes WHERE typeId IS NOT NULL", + " SELECT extensionId " + " FROM types JOIN prototypes USING(typeId) " + " WHERE extensionId IS NOT NULL) " + "SELECT typeId FROM prototypes", database}; Sqlite::WriteStatement<3> updatePropertyDeclarationAliasIdAndTypeNameIdStatement{ "UPDATE propertyDeclarations "