Skip to content

Commit c05b8f7

Browse files
author
Shangmin Dou
committed
<fix>[ai]: use Json_getKeyValue for MySQL 5.5 compat
use Json_getKeyValue from beforeMigrate.sql to replace JSON_EXTRACT which requires MySQL 5.7+, and change endTime column type from TIMESTAMP to DATETIME. Resolves: ZSTAC-72079 Change-Id: I50f05f114eae474f94f1046811dc0a8734b88c42
1 parent 536cbc3 commit c05b8f7

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

conf/db/upgrade/V5.5.12__schema.sql

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,28 @@ CALL CREATE_INDEX('GpuDeviceSpecVO', 'idx_gpu_spec_normalized_model', 'normalize
66
-- Previously these values were only stored inside the opaque JSON TEXT field,
77
-- making them invisible to ZQL ORDER BY queries.
88
CALL ADD_COLUMN('ModelEvaluationTaskVO', 'totalScore', 'DOUBLE', 1, NULL);
9-
CALL ADD_COLUMN('ModelEvaluationTaskVO', 'endTime', 'TIMESTAMP', 1, '1970-01-02 00:00:00');
9+
CALL ADD_COLUMN('ModelEvaluationTaskVO', 'endTime', 'DATETIME', 1, NULL);
1010

1111
-- Add indexes to support efficient sorting
1212
CALL CREATE_INDEX('ModelEvaluationTaskVO', 'idx_ModelEvaluationTaskVO_totalScore', 'totalScore');
1313
CALL CREATE_INDEX('ModelEvaluationTaskVO', 'idx_ModelEvaluationTaskVO_endTime', 'endTime');
1414

1515
-- Backfill totalScore from opaque JSON for existing completed tasks
16+
-- Uses Json_getKeyValue defined in beforeMigrate.sql for MySQL 5.5+ compatibility
1617
UPDATE `zstack`.`ModelEvaluationTaskVO`
17-
SET `totalScore` = JSON_EXTRACT(`opaque`, '$.details.total_score')
18+
SET `totalScore` = CAST(Json_getKeyValue(`opaque`, 'total_score') AS DECIMAL(20,6))
1819
WHERE `opaque` IS NOT NULL
1920
AND `totalScore` IS NULL
20-
AND JSON_EXTRACT(`opaque`, '$.details.total_score') IS NOT NULL;
21+
AND Json_getKeyValue(`opaque`, 'total_score') IS NOT NULL;
2122

2223
-- Backfill endTime from opaque JSON for existing completed/failed tasks
2324
-- end_time format from Python agent: "MMM dd, yyyy hh:mm:ss a" (e.g. "Jan 01, 2025 10:30:00 AM")
2425
UPDATE `zstack`.`ModelEvaluationTaskVO`
2526
SET `endTime` = STR_TO_DATE(
26-
JSON_UNQUOTE(JSON_EXTRACT(`opaque`, '$.details.end_time')),
27+
Json_getKeyValue(`opaque`, 'end_time'),
2728
'%b %d, %Y %h:%i:%s %p'
2829
)
2930
WHERE `opaque` IS NOT NULL
3031
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')) != '';
32+
AND Json_getKeyValue(`opaque`, 'end_time') IS NOT NULL
33+
AND Json_getKeyValue(`opaque`, 'end_time') != '';

0 commit comments

Comments
 (0)