From 50acb6811bfc031bb16ef4a01cd520c4b0dd43b1 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Sat, 7 Oct 2023 00:19:29 +0200 Subject: [PATCH] WIP: String IDs --- procedures/query/applyIDFilter.sql | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/procedures/query/applyIDFilter.sql b/procedures/query/applyIDFilter.sql index 3b3a00a..f35d5cd 100644 --- a/procedures/query/applyIDFilter.sql +++ b/procedures/query/applyIDFilter.sql @@ -54,19 +54,28 @@ CREATE PROCEDURE db_5_0.applyIDFilter(in sourceSet VARCHAR(255), in targetSet VA IDFILTER_LABEL: BEGIN DECLARE data VARCHAR(20000) DEFAULT NULL; DECLARE aggVal VARCHAR(255) DEFAULT NULL; +DECLARE direction CHAR(4) DEFAULT NULL; #-- get aggVal if possible IF agg IS NOT NULL THEN IF versioned THEN -- TODO versioned queries SELECT 1 FROM id_agg_with_versioning_not_implemented; + ELSEIF agg = "max" THEN + SET direction = "DESC"; + ELSEIF agg = "min" THEN + SET direction = "ASC "; + ELSE + SELECT 1 FROM unknown_agg_parameter; END IF; + SET @stmtIDAggValStr = CONCAT( - "SELECT ", - agg, - "(id) INTO @sAggVal FROM `", + "SELECT e.internal_id INTO @sAggVal FROM `", sourceSet, - "`"); + "` AS s LEFT JOIN entity_ids AS e ON (s.id=e.internal_id) WHERE s.id>99 ORDER BY CAST(e.id AS UNSIGNED INT) ", + direction, + " LIMIT 1"); + PREPARE stmtIDAggVal FROM @stmtIDAggValStr; EXECUTE stmtIDAggVal; DEALLOCATE PREPARE stmtIDAggVal; -- GitLab