Skip to content

Commit e835b3a

Browse files
author
Shangmin Dou
committed
<feature>[ai]: add eval task sort columns for ZQL
Resolves: ZSTAC-72079 Change-Id: Ifa08d55dedbc6ff7beaf96c96142b470d1993dbf
1 parent 009b170 commit e835b3a

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
11
-- ZSTAC-75319: Add normalizedModelName column for GPU spec dedup
22
CALL ADD_COLUMN('GpuDeviceSpecVO', 'normalizedModelName', 'VARCHAR(255)', 1, NULL);
33
CALL CREATE_INDEX('GpuDeviceSpecVO', 'idx_gpu_spec_normalized_model', 'normalizedModelName');
4+
5+
-- Add totalScore and endTime columns to ModelEvaluationTaskVO for ZQL sorting support
6+
-- Previously these values were only stored inside the opaque JSON TEXT field,
7+
-- making them invisible to ZQL ORDER BY queries.
8+
CALL ADD_COLUMN('ModelEvaluationTaskVO', 'totalScore', 'DOUBLE', 1, NULL);
9+
CALL ADD_COLUMN('ModelEvaluationTaskVO', 'endTime', 'TIMESTAMP', 1, NULL);
10+
11+
-- Add indexes to support efficient sorting
12+
CALL CREATE_INDEX('ModelEvaluationTaskVO', 'idx_ModelEvaluationTaskVO_totalScore', 'totalScore');
13+
CALL CREATE_INDEX('ModelEvaluationTaskVO', 'idx_ModelEvaluationTaskVO_endTime', 'endTime');
14+
15+
-- Backfill totalScore from opaque JSON for existing completed tasks
16+
UPDATE `zstack`.`ModelEvaluationTaskVO`
17+
SET `totalScore` = JSON_EXTRACT(`opaque`, '$.details.total_score')
18+
WHERE `opaque` IS NOT NULL
19+
AND `totalScore` IS NULL
20+
AND JSON_EXTRACT(`opaque`, '$.details.total_score') IS NOT NULL;
21+
22+
-- Backfill endTime from opaque JSON for existing completed/failed tasks
23+
-- end_time format from Python agent: "MMM dd, yyyy hh:mm:ss a" (e.g. "Jan 01, 2025 10:30:00 AM")
24+
UPDATE `zstack`.`ModelEvaluationTaskVO`
25+
SET `endTime` = STR_TO_DATE(
26+
JSON_UNQUOTE(JSON_EXTRACT(`opaque`, '$.details.end_time')),
27+
'%b %d, %Y %h:%i:%s %p'
28+
)
29+
WHERE `opaque` IS NOT NULL
30+
AND `endTime` IS NULL
31+
AND JSON_EXTRACT(`opaque`, '$.details.end_time') IS NOT NULL
32+
AND JSON_UNQUOTE(JSON_EXTRACT(`opaque`, '$.details.end_time')) != '';

0 commit comments

Comments
 (0)