"testManagement": {
"disableEditingBuiltInFieldsName" : false }
WITH TEST_STEPS_FIELDS as (SELECT FIELD.parent_id, FIELD.reference_id
FROM object FIELD
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE FIELD.type_id = 25
AND FIELD_REV.name = 'Test Steps')
SELECT TEST_CASE_TRACKER.id as tracker_id,
TRACKER_REV_ART.name as tracker_name,
TEST_CASE_TRACKER.proj_id as project_id
FROM task_type TEST_CASE_TRACKER
INNER JOIN object TRACKER_ARTIFACT
on TEST_CASE_TRACKER.id = TRACKER_ARTIFACT.id
INNER JOIN object_revision TRACKER_REV_ART ON TRACKER_ARTIFACT.id = TRACKER_REV_ART.object_id AND TRACKER_ARTIFACT.revision = TRACKER_REV_ART.revision
LEFT OUTER JOIN TEST_STEPS_FIELDS ON TEST_CASE_TRACKER.id = TEST_STEPS_FIELDS.parent_id
WHERE TEST_CASE_TRACKER.desc_id = 102
AND TEST_CASE_TRACKER.template_id is NULL
AND TRACKER_ARTIFACT.deleted IN (0, 1)
AND TEST_STEPS_FIELDS.reference_id IS NULL
|
|
The following queries are database-specific. Ensure you run only the query that corresponds to your specific database system. Running a query designed for a different database can result in errors or unexpected behavior. Verify your database type before executing any queries.
|
WITH TEST_STEPS_FIELDS as (SELECT FIELD.parent_id, FIELD.reference_id
FROM object FIELD
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE FIELD.type_id = 25
AND FIELD_REV.name = 'Test Steps'),
TEMPLATE_TRACKERS_WITH_TEST_STEPS as (SELECT TEST_CASE_TRACKER.id as tracker_id,
TEST_STEPS_FIELDS.reference_id
FROM task_type TEST_CASE_TRACKER
INNER JOIN object TRACKER_ARTIFACT
on TEST_CASE_TRACKER.id = TRACKER_ARTIFACT.id
INNER JOIN object_revision TRACKER_REV_ART
ON TRACKER_ARTIFACT.id = TRACKER_REV_ART.object_id AND
TRACKER_ARTIFACT.revision = TRACKER_REV_ART.revision
LEFT OUTER JOIN TEST_STEPS_FIELDS ON TEST_CASE_TRACKER.id = TEST_STEPS_FIELDS.parent_id
WHERE TEST_CASE_TRACKER.desc_id = 102
AND TEST_CASE_TRACKER.template_id is NULL
AND TRACKER_ARTIFACT.deleted IN (0, 1))
,
CHILD_TRACKERS (tracker_id, proj_id, reference_id) as (SELECT child.id as tracker_id,
child.proj_id,
TEMPLATE_TRACKERS_WITH_TEST_STEPS.reference_id
FROM task_type child
INNER JOIN TEMPLATE_TRACKERS_WITH_TEST_STEPS
ON TEMPLATE_TRACKERS_WITH_TEST_STEPS.tracker_id = child.template_id
INNER JOIN object o on child.id = o.parent_id and
TEMPLATE_TRACKERS_WITH_TEST_STEPS.reference_id =
o.reference_id
INNER join object_revision r on o.id = r.object_id and o.revision = r.revision
UNION ALL
SELECT child_x.id as tracker_id,
child_x.proj_id,
CHILD_TRACKERS.reference_id
FROM task_type child_x
INNER JOIN CHILD_TRACKERS ON child_x.template_id = CHILD_TRACKERS.tracker_id
INNER JOIN object o
on child_x.id = o.parent_id and CHILD_TRACKERS.reference_id = o.reference_id
INNER join object_revision r on o.id = r.object_id and o.revision = r.revision)
SELECT CHILD_TRACKERS.tracker_id, CHILD_TRACKERS.proj_id, CHILD_TRACKERS.reference_id, TEST_STEPS_FIELD_REV.name
FROM CHILD_TRACKERS
LEFT OUTER JOIN object TEST_STEPS_FIELD ON CHILD_TRACKERS.tracker_id = TEST_STEPS_FIELD.parent_id and
CHILD_TRACKERS.reference_id = TEST_STEPS_FIELD.reference_id
INNER JOIN object_revision TEST_STEPS_FIELD_REV on TEST_STEPS_FIELD.id = TEST_STEPS_FIELD_REV.object_id AND
TEST_STEPS_FIELD.revision = TEST_STEPS_FIELD_REV.revision
WHERE TEST_STEPS_FIELD_REV.name NOT IN ('Test Steps', '..');
WITH RECURSIVE
TEST_STEPS_FIELDS as (SELECT FIELD.parent_id, FIELD.reference_id
FROM object FIELD
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE FIELD.type_id = 25
AND FIELD_REV.name = 'Test Steps'),
TEMPLATE_TRACKERS_WITH_TEST_STEPS as (SELECT TEST_CASE_TRACKER.id as tracker_id,
TEST_STEPS_FIELDS.reference_id
FROM task_type TEST_CASE_TRACKER
INNER JOIN object TRACKER_ARTIFACT
on TEST_CASE_TRACKER.id = TRACKER_ARTIFACT.id
INNER JOIN object_revision TRACKER_REV_ART
ON TRACKER_ARTIFACT.id = TRACKER_REV_ART.object_id AND
TRACKER_ARTIFACT.revision = TRACKER_REV_ART.revision
LEFT OUTER JOIN TEST_STEPS_FIELDS ON TEST_CASE_TRACKER.id = TEST_STEPS_FIELDS.parent_id
WHERE TEST_CASE_TRACKER.desc_id = 102
AND TEST_CASE_TRACKER.template_id is NULL
AND TRACKER_ARTIFACT.deleted IN (0, 1))
,
CHILD_TRACKERS as (SELECT child.id as tracker_id, child.proj_id, TEMPLATE_TRACKERS_WITH_TEST_STEPS.reference_id
FROM task_type child
INNER JOIN TEMPLATE_TRACKERS_WITH_TEST_STEPS
ON TEMPLATE_TRACKERS_WITH_TEST_STEPS.tracker_id = child.template_id
INNER JOIN object o on child.id = o.parent_id and
TEMPLATE_TRACKERS_WITH_TEST_STEPS.reference_id = o.reference_id
INNER join object_revision r on o.id = r.object_id and o.revision = r.revision
UNION ALL
SELECT child_x.id as tracker_id, child_x.proj_id, CHILD_TRACKERS.reference_id
FROM task_type child_x
INNER JOIN CHILD_TRACKERS ON child_x.template_id = CHILD_TRACKERS.tracker_id
INNER JOIN object o on child_x.id = o.parent_id and CHILD_TRACKERS.reference_id = o.reference_id
INNER join object_revision r on o.id = r.object_id and o.revision = r.revision)
SELECT CHILD_TRACKERS.tracker_id, CHILD_TRACKERS.proj_id, CHILD_TRACKERS.reference_id, TEST_STEPS_FIELD_REV.name
FROM CHILD_TRACKERS
LEFT OUTER JOIN object TEST_STEPS_FIELD ON CHILD_TRACKERS.tracker_id = TEST_STEPS_FIELD.parent_id and
CHILD_TRACKERS.reference_id = TEST_STEPS_FIELD.reference_id
INNER JOIN object_revision TEST_STEPS_FIELD_REV on TEST_STEPS_FIELD.id = TEST_STEPS_FIELD_REV.object_id AND
TEST_STEPS_FIELD.revision = TEST_STEPS_FIELD_REV.revision
WHERE TEST_STEPS_FIELD_REV.name NOT IN ('Test Steps', '..');
select orev.name, tt.id as tracker_id, tt.proj_id as project_id, o.reference_id
from object_revision orev
inner join object o on orev.object_id = o.id and orev.revision = o.revision
inner join task_type tt on o.parent_id = tt.id and tt.desc_id = 102
where o.reference_id < 1000000
and orev.name = 'Test Steps';
WITH BRANCHES AS (SELECT BRANCH_ARTIFACT.id,
BRANCH.proj_id,
BRANCH_ARTIFACT_REVISON.name
FROM object BRANCH_ARTIFACT
INNER JOIN object_revision BRANCH_ARTIFACT_REVISON
ON BRANCH_ARTIFACT.id = BRANCH_ARTIFACT_REVISON.object_id AND
BRANCH_ARTIFACT.revision = BRANCH_ARTIFACT_REVISON.revision
INNER JOIN task_type BRANCH on BRANCH_ARTIFACT.id = BRANCH.id
WHERE BRANCH_ARTIFACT.type_id = 36
AND BRANCH.desc_id = 102)
SELECT BRANCHES.*
FROM BRANCHES
WHERE BRANCHES.id NOT IN (SELECT BRANCHES.id
FROM BRANCHES
INNER JOIN object TEST_STEP_FIELD ON TEST_STEP_FIELD.parent_id = BRANCHES.id
INNER JOIN object_revision TEST_STEP_FIELD_REVISION
on TEST_STEP_FIELD.id = TEST_STEP_FIELD_REVISION.object_id AND
TEST_STEP_FIELD.revision = TEST_STEP_FIELD_REVISION.revision
WHERE TEST_STEP_FIELD_REVISION.name = 'Test Steps');
|
|
In case a tracker cannot be found in the relevant project, the trash should also be checked.
|
WITH PROJECT_ADMIN AS (SELECT id
from ACL_ROLE
WHERE NAME = 'Project Admin'),
PROJECT_ADMIN_USER_IDS AS (SELECT DISTINCT MBR.to_id AS user_id, PRL.proj_id
FROM object PRL
INNER JOIN object_reference MBR
ON MBR.from_type_id = 5 AND MBR.from_id = PRL.id AND MBR.field_id = 1 AND
MBR.to_type_id = 1
INNER JOIN object PMA ON PMA.id = MBR.assoc_id AND PMA.type_id = 21
INNER JOIN PROJECT_ADMIN ON PRL.REFERENCE_ID = PROJECT_ADMIN.id
WHERE PRL.proj_id IN (<PROJECT_IDS_TO_CHECK>)
AND PRL.type_id = 19
AND PRL.deleted = 0
AND MBR.status_id = 3
AND MBR.deleted = 0)
SELECT PROJECT_ADMIN_USER_IDS.proj_id, USER_TABLE.*
FROM PROJECT_ADMIN_USER_IDS
INNER JOIN users USER_TABLE ON PROJECT_ADMIN_USER_IDS.user_id = USER_TABLE.id
ORDER BY PROJECT_ADMIN_USER_IDS.proj_id, USER_TABLE.id;



|
|
This issue is officially fixed from 22.10-SP8.
|
|
|
The following queries are database-specific. Ensure you run only the query that corresponds to your specific database system. Running a query designed for a different database can result in errors or unexpected behavior. Verify your database type before executing any queries.
|
WITH TEST_STEP_TABLE AS (SELECT DISTINCT FIELD.reference_id, FIELD.parent_id
FROM task TEST_CASE
INNER JOIN task_type TEST_CASE_TRACKER ON TEST_CASE.type_id = TEST_CASE_TRACKER.id
INNER JOIN object FIELD ON TEST_CASE_TRACKER.id = FIELD.parent_id
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE TEST_CASE_TRACKER.desc_id = 102
AND FIELD.type_id = 25
AND FIELD_REV.name = 'Test Steps'),
TEST_TABLE_FIELDS AS (SELECT DISTINCT FIELD_REV.name, FIELD.reference_id, FIELD.parent_id
FROM TEST_STEP_TABLE
INNER JOIN object FIELD ON TEST_STEP_TABLE.parent_id = FIELD.parent_id
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE FIELD.reference_id BETWEEN TEST_STEP_TABLE.reference_id + 1 AND TEST_STEP_TABLE.reference_id + 999999
AND FIELD.deleted IN (0, 1))
SELECT LISTAGG(TFV.field_value, '|') WITHIN GROUP (ORDER BY TFV.field_value) as step_id_regexp
FROM task_field_value TFV
INNER JOIN task TEST_CASE ON TFV.task_id = TEST_CASE.id
INNER JOIN TEST_TABLE_FIELDS ON TEST_CASE.type_id = TEST_TABLE_FIELDS.parent_id
INNER JOIN TEST_STEP_TABLE ON TEST_CASE.type_id = TEST_STEP_TABLE.parent_id
WHERE TFV.label_id BETWEEN TEST_STEP_TABLE.reference_id + 1 AND TEST_STEP_TABLE.reference_id + 999999
AND FLOOR(MOD(MOD(TFV.label_id, 1000000), 100)) = FLOOR(MOD(MOD(TEST_TABLE_FIELDS.reference_id, 1000000), 100))
AND TEST_TABLE_FIELDS.name = 'Id'
AND DBMS_LOB.GETLENGTH(TFV.field_value) > 255;
SELECT TEST_CASE.id as test_case_id,
TEST_CASE_TRACKER.id as tracker_id,
TEST_CASE_TRACKER.proj_id as proj_id
FROM object ASSOC
INNER JOIN object_revision LATEST_ASSOC ON ASSOC.id = LATEST_ASSOC.object_id AND ASSOC.revision = LATEST_ASSOC.revision
INNER JOIN object_reference ASSOC_REF ON ASSOC.id = ASSOC_REF.assoc_id
INNER JOIN task TEST_CASE ON ASSOC_REF.from_id = TEST_CASE.id
INNER JOIN task_type TEST_CASE_TRACKER ON TEST_CASE.type_id = TEST_CASE_TRACKER.id
INNER JOIN object TRACKER_ARTIFACT on TEST_CASE_TRACKER.id = TRACKER_ARTIFACT.id
WHERE LATEST_ASSOC.deleted IN (0)
AND LATEST_ASSOC.name = 'derived'
AND LATEST_ASSOC.description LIKE '{"TestStepReferenceMap"%'
AND ASSOC_REF.field_id = 0
AND ASSOC_REF.assoc_id IS NOT NULL
AND ASSOC_REF.from_type_id = 9
AND ASSOC_REF.to_type_id = 9
AND TEST_CASE_TRACKER.desc_id = 102
AND TRACKER_ARTIFACT.deleted IN (0, 1)
AND REGEXP_LIKE(LATEST_ASSOC.description, ' < step_id_regexp_from_the_first_query > ');
WITH TEST_STEP_TABLE AS (SELECT DISTINCT FIELD.reference_id, FIELD.parent_id
FROM task TEST_CASE
INNER JOIN task_type TEST_CASE_TRACKER ON TEST_CASE.type_id = TEST_CASE_TRACKER.id
INNER JOIN object FIELD ON TEST_CASE_TRACKER.id = FIELD.parent_id
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE TEST_CASE_TRACKER.desc_id = 102
AND FIELD.type_id = 25
AND FIELD_REV.name = 'Test Steps'),
TEST_TABLE_FIELDS AS (SELECT DISTINCT FIELD_REV.name, FIELD.reference_id, FIELD.parent_id
FROM TEST_STEP_TABLE
INNER JOIN object FIELD ON TEST_STEP_TABLE.parent_id = FIELD.parent_id
INNER JOIN object_revision FIELD_REV
ON FIELD.id = FIELD_REV.object_id AND FIELD.revision = FIELD_REV.revision
WHERE FIELD.reference_id BETWEEN TEST_STEP_TABLE.reference_id + 1 AND TEST_STEP_TABLE.reference_id + 999999
AND FIELD.deleted IN (0, 1))
SELECT string_agg(DISTINCT '%' || TFV.field_value || '%', '|') as step_id_regexp
FROM task_field_value TFV
INNER JOIN task TEST_CASE ON TFV.task_id = TEST_CASE.id
INNER JOIN TEST_TABLE_FIELDS ON TEST_CASE.type_id = TEST_TABLE_FIELDS.parent_id
INNER JOIN TEST_STEP_TABLE ON TEST_CASE.type_id = TEST_STEP_TABLE.parent_id
WHERE TFV.label_id BETWEEN TEST_STEP_TABLE.reference_id + 1 AND TEST_STEP_TABLE.reference_id + 999999
AND MOD(MOD(TFV.label_id, 1000000), 100) = MOD(MOD(TEST_TABLE_FIELDS.reference_id, 1000000), 100)
AND TEST_TABLE_FIELDS.name = 'Id'
AND LENGTH(TFV.field_value) > 255;
SELECT TEST_CASE.id as test_case_id,
TEST_CASE_TRACKER.id as tracker_id,
TEST_CASE_TRACKER.proj_id as proj_id
FROM object ASSOC
INNER JOIN object_revision LATEST_ASSOC ON ASSOC.id = LATEST_ASSOC.object_id AND ASSOC.revision = LATEST_ASSOC.revision
INNER JOIN object_reference ASSOC_REF ON ASSOC.id = ASSOC_REF.assoc_id
INNER JOIN task TEST_CASE ON ASSOC_REF.from_id = TEST_CASE.id
INNER JOIN task_type TEST_CASE_TRACKER ON TEST_CASE.type_id = TEST_CASE_TRACKER.id
INNER JOIN object TRACKER_ARTIFACT on TEST_CASE_TRACKER.id = TRACKER_ARTIFACT.id
WHERE LATEST_ASSOC.deleted IN (0)
AND LATEST_ASSOC.name = 'derived'
AND LATEST_ASSOC.description LIKE '{"TestStepReferenceMap"%'
AND ASSOC_REF.field_id = 0
AND ASSOC_REF.assoc_id IS NOT NULL
AND ASSOC_REF.from_type_id = 9
AND ASSOC_REF.to_type_id = 9
AND TEST_CASE_TRACKER.desc_id = 102
AND TRACKER_ARTIFACT.deleted IN (0, 1)
AND LATEST_ASSOC.description SIMILAR TO ' ( < step_id_regexp_from_the_first_query > ) ';


