diff --git a/uno/.gitrepo b/uno/.gitrepo index 064b0745..13484bf2 100644 --- a/uno/.gitrepo +++ b/uno/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://github.com/prrvchr/uno.git branch = main - commit = 0aea53f7e51930c629cefeab56a58031a88f8b22 - parent = 852b73bfc4e843efb768878a3642e8ed92666aba + commit = 7ea99b1d1c36ce85e9c1d3dcd416609abefcd22f + parent = 691fc2be73026d6e2faef426da79a8f88378881a method = merge cmdver = 0.4.3 diff --git a/uno/lib/uno/card/dbinit.py b/uno/lib/uno/card/dbinit.py index 8a65dd95..4dad307f 100644 --- a/uno/lib/uno/card/dbinit.py +++ b/uno/lib/uno/card/dbinit.py @@ -169,10 +169,10 @@ def _getProcedures(): for name in ('SelectUser', 'InsertUser', 'InsertBook', 'UpdateAddressbookName', 'MergeCard', 'MergeGroup', 'MergeGroupMembers', 'DeleteCard', 'UpdateCardSync', 'GetLastCardSync', 'GetLastBookSync', - 'GetLastGroupSync', 'SelectChangedCards', 'SelectColumns', + 'GetLastGroupSync', 'SelectChangedCards', 'SelectColumns', 'SelectColumnIds' 'SelectPaths', 'SelectLists', 'SelectTypes', 'SelectMaps', 'SelectTmps', 'SelectFields', 'SelectGroups', 'SelectCardGroup', - 'InitGroups', 'InsertGroup', 'MergeCardValue', 'MergeCardData', + 'InitGroups', 'InsertGroup', 'MergeCardValue', 'MergeCardData', 'MergeCardGroup', 'MergeCardGroups', 'SelectChangedBooks', 'SelectChangedGroups', 'UpdateBookSync', 'UpdateGroupSync', 'SelectCardProperties'): yield name diff --git a/uno/lib/uno/card/dbqueries.py b/uno/lib/uno/card/dbqueries.py index 257d16d4..cb3763b5 100644 --- a/uno/lib/uno/card/dbqueries.py +++ b/uno/lib/uno/card/dbqueries.py @@ -461,6 +461,26 @@ def getSqlQuery(ctx, name, format=None): OPEN RSLT; END""" + # The getColumnIds query allows to obtain all the columns available from parser properties. + elif name == 'createSelectColumnIds': + query = """\ +CREATE PROCEDURE "SelectColumnIds"() + SPECIFIC "SelectColumnIds_1" + READS SQL DATA + DYNAMIC RESULT SETS 1 + BEGIN ATOMIC + DECLARE Rslt CURSOR WITH RETURN FOR + SELECT ARRAY_AGG(R."Name" || P."Path" || COALESCE(T."Path",'') + ORDER BY R."Resource", P."Property", T."Type") + FROM "Resources" AS R + INNER JOIN "Properties" AS P ON R."Resource"=P."Resource" + LEFT JOIN "PropertyType" AS PT ON P."Property"=PT."Property" + LEFT JOIN "Types" AS T ON PT."Type"=T."Type" + WHERE P."Name" IS NOT NULL + FOR READ ONLY; + OPEN Rslt; + END""" + # The getColumns query allows to obtain all the columns available from parser properties. elif name == 'createSelectColumns': query = """\ @@ -729,6 +749,17 @@ def getSqlQuery(ctx, name, format=None): SET GID = IDENTITY(); END""" + elif name == 'createMergeCardGroup': + query = """\ +CREATE PROCEDURE "MergeCardGroup"(IN CID INTEGER, + IN GID INTEGER) + SPECIFIC "MergeCardGroup_1" + MODIFIES SQL DATA + BEGIN ATOMIC + DELETE FROM "GroupCards" WHERE "Card" = CID; + INSERT INTO "GroupCards" ("Group","Card") VALUES (GID, CID); + END""" + elif name == 'createMergeCardGroups': query = """\ CREATE PROCEDURE "MergeCardGroups"(IN Book INTEGER, @@ -768,6 +799,8 @@ def getSqlQuery(ctx, name, format=None): query = 'CALL "DeleteCard"(?)' elif name == 'getColumns': query = 'CALL "SelectColumns"()' + elif name == 'getColumnIds': + query = 'CALL "SelectColumnIds"()' elif name == 'getPaths': query = 'CALL "SelectPaths"()' elif name == 'getLists': @@ -808,6 +841,8 @@ def getSqlQuery(ctx, name, format=None): query = 'CALL "InitGroups"(?,?,?,?,?)' elif name == 'insertGroup': query = 'CALL "InsertGroup"(?,?,?,?)' + elif name == 'mergeCardGroup': + query = 'CALL "MergeCardGroup"(?,?)' elif name == 'mergeCardGroups': query = 'CALL "MergeCardGroups"(?,?,?)' elif name == 'mergeGroup':