summaryrefslogtreecommitdiff
path: root/mysql-test/main
diff options
context:
space:
mode:
authorRucha Deodhar <rucha.deodhar@mariadb.com>2023-03-03 13:50:46 +0530
committerRucha Deodhar <rucha.deodhar@mariadb.com>2023-04-26 11:00:09 +0530
commit4b67ff3b256a78994cb23dc4aa2ba531bbb06070 (patch)
treec2657db62d2677d65689f3dc8b9b02b53817d849 /mysql-test/main
parent2c4c7c8b02140ff3abb8325f6261ccf1ae18b477 (diff)
downloadmariadb-git-4b67ff3b256a78994cb23dc4aa2ba531bbb06070.tar.gz
MDEV-30705: JSON_SCHEMA_VALID: schema with multipleOf for big value
always return 1 Analysis: Implementation used double to store value. longlong is better choice Fix: Use longlong for multiple_of and the value to store it and num_flag to check for decimals.
Diffstat (limited to 'mysql-test/main')
-rw-r--r--mysql-test/main/func_json.result15
-rw-r--r--mysql-test/main/func_json.test11
2 files changed, 26 insertions, 0 deletions
diff --git a/mysql-test/main/func_json.result b/mysql-test/main/func_json.result
index 11eb3a5aefb..ec70e8b47bf 100644
--- a/mysql-test/main/func_json.result
+++ b/mysql-test/main/func_json.result
@@ -4634,4 +4634,19 @@ ERROR HY000: Invalid value for keyword maxLength
SET @schema= '{ "items" : ["str1"]}';
SELECT JSON_SCHEMA_VALID(@schema, '[]');
ERROR HY000: Invalid value for keyword items
+#
+# MDEV-30705: JSON_SCHEMA_VALID: schema with multipleOf for big value always return 1
+#
+SET @schema = '{
+ "multipleOf": 2
+ }';
+SELECT JSON_SCHEMA_VALID(@schema, '9007900000000001');
+JSON_SCHEMA_VALID(@schema, '9007900000000001')
+0
+SELECT JSON_SCHEMA_VALID(@schema, '9007900000000060');
+JSON_SCHEMA_VALID(@schema, '9007900000000060')
+1
+SELECT JSON_SCHEMA_VALID(@schema, '9007900000000061');
+JSON_SCHEMA_VALID(@schema, '9007900000000061')
+0
# End of 11.1 test
diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test
index 3d9a8e3116b..d5631c1578c 100644
--- a/mysql-test/main/func_json.test
+++ b/mysql-test/main/func_json.test
@@ -3533,4 +3533,15 @@ SET @schema= '{ "items" : ["str1"]}';
SELECT JSON_SCHEMA_VALID(@schema, '[]');
+--echo #
+--echo # MDEV-30705: JSON_SCHEMA_VALID: schema with multipleOf for big value always return 1
+--echo #
+SET @schema = '{
+ "multipleOf": 2
+ }';
+SELECT JSON_SCHEMA_VALID(@schema, '9007900000000001');
+SELECT JSON_SCHEMA_VALID(@schema, '9007900000000060');
+SELECT JSON_SCHEMA_VALID(@schema, '9007900000000061');
+
+
--echo # End of 11.1 test