Align AI decimal validation bounds
This commit is contained in:
@@ -52,7 +52,7 @@ public class AiDatabaseSchemaValidator
|
|||||||
}
|
}
|
||||||
int precision = Integer.parseInt(matcher.group(1));
|
int precision = Integer.parseInt(matcher.group(1));
|
||||||
int scale = Integer.parseInt(matcher.group(2));
|
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)
|
public boolean isSafeSql(String sql)
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ public class AiDatabaseSchemaValidatorTest
|
|||||||
assertTrue(validator.isAllowedColumnType("varchar(100)"));
|
assertTrue(validator.isAllowedColumnType("varchar(100)"));
|
||||||
assertTrue(validator.isAllowedColumnType("decimal(10,2)"));
|
assertTrue(validator.isAllowedColumnType("decimal(10,2)"));
|
||||||
assertTrue(validator.isAllowedColumnType("decimal(10,0)"));
|
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("decimal(5,9)"));
|
||||||
assertFalse(validator.isAllowedColumnType("json"));
|
assertFalse(validator.isAllowedColumnType("json"));
|
||||||
assertFalse(validator.isSafeSql("drop table sys_user"));
|
assertFalse(validator.isSafeSql("drop table sys_user"));
|
||||||
|
|||||||
Reference in New Issue
Block a user