From b341e372bc7419e1df9be32b09a7310d73dc73ac Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 27 Mar 2024 15:44:29 +0100 Subject: [PATCH] QmlDesigner: Improve prototypes statement Task-number: QTCREATORBUG-30599 Change-Id: I025e654b39a3182c324b540ab3dc8aa24d32f589 Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Thomas Hartmann --- .../designercore/projectstorage/projectstorage.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h b/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h index 113eecb5e9e..4bc850ab246 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h +++ b/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h @@ -4586,16 +4586,15 @@ public: "UPDATE types SET extensionId=?2 WHERE typeId=?1", database}; mutable ReadStatement<1, 1> selectTypeIdsForPrototypeChainIdStatement{ "WITH RECURSIVE " - " all_prototype_and_extension(typeId, prototypeId) AS (" - " SELECT typeId, prototypeId FROM types WHERE prototypeId IS NOT NULL" + " prototypes(typeId) AS ( " + " SELECT prototypeId FROM types WHERE typeId=?1 " " UNION ALL " - " SELECT typeId, extensionId FROM types WHERE extensionId IS NOT NULL)," - " prototypes(typeId) AS (" - " SELECT prototypeId FROM all_prototype_and_extension WHERE typeId=?" + " SELECT extensionId FROM types WHERE typeId=?1 " " UNION ALL " - " SELECT prototypeId FROM all_prototype_and_extension JOIN " - " prototypes USING(typeId)) " - "SELECT typeId FROM prototypes", + " SELECT prototypeId FROM types JOIN prototypes USING(typeId) " + " UNION ALL " + " SELECT extensionId FROM types JOIN prototypes USING(typeId)) " + "SELECT typeId FROM prototypes WHERE typeId IS NOT NULL", database}; WriteStatement<3> updatePropertyDeclarationAliasIdAndTypeNameIdStatement{ "UPDATE propertyDeclarations SET aliasPropertyDeclarationId=?2, "