Align AI decimal validation bounds

This commit is contained in:
王鹏
2026-05-22 15:13:39 +08:00
parent 948e664f22
commit 9ade3e9cb0
2 changed files with 5 additions and 1 deletions

View File

@@ -52,7 +52,7 @@ public class AiDatabaseSchemaValidator
}
int precision = Integer.parseInt(matcher.group(1));
int scale = Integer.parseInt(matcher.group(2));
return scale <= precision;
return precision >= 1 && precision <= 65 && scale >= 0 && scale <= 30 && scale <= precision;
}
public boolean isSafeSql(String sql)

View File

@@ -18,6 +18,10 @@ public class AiDatabaseSchemaValidatorTest
assertTrue(validator.isAllowedColumnType("varchar(100)"));
assertTrue(validator.isAllowedColumnType("decimal(10,2)"));
assertTrue(validator.isAllowedColumnType("decimal(10,0)"));
assertTrue(validator.isAllowedColumnType("decimal(65,30)"));
assertFalse(validator.isAllowedColumnType("decimal(66,0)"));
assertFalse(validator.isAllowedColumnType("decimal(65,31)"));
assertFalse(validator.isAllowedColumnType("decimal(99,99)"));
assertFalse(validator.isAllowedColumnType("decimal(5,9)"));
assertFalse(validator.isAllowedColumnType("json"));
assertFalse(validator.isSafeSql("drop table sys_user"));