Commit 69232697751 for mysql.org
commit 6923269775122567b9003d701f004e05d331177b
Author: Tarang Ranpara <tarang.ranpara@oracle.com>
Date: Fri Sep 4 10:32:33 2026 +0200
WL#17054 Introduce Support for CHECK/NO CHECK at Table and Column Level,
and UPDATE/NO UPDATE at Column Level in JSON Duality View
Post-push fix for i_s_schema_definition_debug.test
Change-Id: Ic3c26b3504a17203b29392f071d966b17806fa02
diff --git a/mysql-test/suite/information_schema/r/i_s_schema_definition_debug.result b/mysql-test/suite/information_schema/r/i_s_schema_definition_debug.result
index 4ad33cb4653..8497ec40c24 100644
--- a/mysql-test/suite/information_schema/r/i_s_schema_definition_debug.result
+++ b/mysql-test/suite/information_schema/r/i_s_schema_definition_debug.result
@@ -118,7 +118,7 @@ include/assert.inc [All expected I_S system views are present.]
# I_S system views.
########################################################################
# Print the actual I_S version stored on disk.
-Current I_S_VERSION=90500
+Current I_S_VERSION=261000
CREATE TABLE I_S_check_table (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
t TEXT NOT NULL,
row_hash VARCHAR(64) DEFAULT NULL);
@@ -615,11 +615,12 @@ CREATE OR REPLACE DEFINER=`mysql.infoschema`@`localhost` VIEW information_schema
columns.allow_insert AS ALLOW_INSERT,
columns.allow_update AS ALLOW_UPDATE,
columns.allow_delete AS ALLOW_DELETE,
+ columns.allow_check AS ALLOW_CHECK,
columns.read_only AS READ_ONLY FROM
mysql.tables tbl
JOIN mysql.schemata sch ON tbl.schema_id=sch.id
JOIN mysql.catalogs cat ON cat.id=sch.catalog_id
- JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_COLUMNS'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', is_root_table TINYINT PATH '$.is_root_table', referenced_column_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_column_name', json_key_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.json_key_name', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', read_only TINYINT PATH '$.read_only' ) ) AS columns WHERE
+ JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_COLUMNS'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', is_root_table TINYINT PATH '$.is_root_table', referenced_column_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_column_name', json_key_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.json_key_name', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', allow_check TINYINT PATH '$.allow_check', read_only TINYINT PATH '$.read_only' ) ) AS columns WHERE
CAN_ACCESS_VIEW(sch.name, tbl.name, tbl.view_definer, tbl.options)
AND CAN_ACCESS_COLUMN(columns.referenced_table_schema, columns.referenced_table_name, columns.referenced_column_name)
AND tbl.type = 'VIEW'
@@ -639,11 +640,12 @@ INSERT INTO I_S_check_table(t) VALUES ("CREATE OR REPLACE DEFINER=`mysql.infosch
columns.allow_insert AS ALLOW_INSERT,
columns.allow_update AS ALLOW_UPDATE,
columns.allow_delete AS ALLOW_DELETE,
+ columns.allow_check AS ALLOW_CHECK,
columns.read_only AS READ_ONLY FROM
mysql.tables tbl
JOIN mysql.schemata sch ON tbl.schema_id=sch.id
JOIN mysql.catalogs cat ON cat.id=sch.catalog_id
- JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_COLUMNS'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', is_root_table TINYINT PATH '$.is_root_table', referenced_column_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_column_name', json_key_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.json_key_name', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', read_only TINYINT PATH '$.read_only' ) ) AS columns WHERE
+ JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_COLUMNS'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', is_root_table TINYINT PATH '$.is_root_table', referenced_column_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_column_name', json_key_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.json_key_name', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', allow_check TINYINT PATH '$.allow_check', read_only TINYINT PATH '$.read_only' ) ) AS columns WHERE
CAN_ACCESS_VIEW(sch.name, tbl.name, tbl.view_definer, tbl.options)
AND CAN_ACCESS_COLUMN(columns.referenced_table_schema, columns.referenced_table_name, columns.referenced_column_name)
AND tbl.type = 'VIEW'
@@ -708,6 +710,7 @@ CREATE OR REPLACE DEFINER=`mysql.infoschema`@`localhost` VIEW information_schema
tables.allow_insert AS ALLOW_INSERT,
tables.allow_update AS ALLOW_UPDATE,
tables.allow_delete AS ALLOW_DELETE,
+ tables.allow_check AS ALLOW_CHECK,
tables.read_only AS READ_ONLY,
tables.is_root_table AS IS_ROOT_TABLE,
tables.referenced_table_id AS REFERENCED_TABLE_ID,
@@ -716,7 +719,7 @@ CREATE OR REPLACE DEFINER=`mysql.infoschema`@`localhost` VIEW information_schema
mysql.tables tbl
JOIN mysql.schemata sch ON tbl.schema_id=sch.id
JOIN mysql.catalogs cat ON cat.id=sch.catalog_id
- JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_TABLES'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_parent_id INT PATH '$.referenced_table_parent_id', referenced_table_parent_relationship VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_parent_relationship', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', where_clause VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.where_clause', is_root_table TINYINT PATH '$.is_root_table', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', read_only TINYINT PATH '$.read_only' ) ) AS tables WHERE
+ JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_TABLES'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_parent_id INT PATH '$.referenced_table_parent_id', referenced_table_parent_relationship VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_parent_relationship', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', where_clause VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.where_clause', is_root_table TINYINT PATH '$.is_root_table', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', allow_check TINYINT PATH '$.allow_check', read_only TINYINT PATH '$.read_only' ) ) AS tables WHERE
CAN_ACCESS_VIEW(sch.name, tbl.name, tbl.view_definer, tbl.options)
AND CAN_ACCESS_TABLE(tables.referenced_table_schema, tables.referenced_table_name)
AND tbl.type = 'VIEW'
@@ -733,6 +736,7 @@ INSERT INTO I_S_check_table(t) VALUES ("CREATE OR REPLACE DEFINER=`mysql.infosch
tables.allow_insert AS ALLOW_INSERT,
tables.allow_update AS ALLOW_UPDATE,
tables.allow_delete AS ALLOW_DELETE,
+ tables.allow_check AS ALLOW_CHECK,
tables.read_only AS READ_ONLY,
tables.is_root_table AS IS_ROOT_TABLE,
tables.referenced_table_id AS REFERENCED_TABLE_ID,
@@ -741,7 +745,7 @@ INSERT INTO I_S_check_table(t) VALUES ("CREATE OR REPLACE DEFINER=`mysql.infosch
mysql.tables tbl
JOIN mysql.schemata sch ON tbl.schema_id=sch.id
JOIN mysql.catalogs cat ON cat.id=sch.catalog_id
- JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_TABLES'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_parent_id INT PATH '$.referenced_table_parent_id', referenced_table_parent_relationship VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_parent_relationship', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', where_clause VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.where_clause', is_root_table TINYINT PATH '$.is_root_table', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', read_only TINYINT PATH '$.read_only' ) ) AS tables WHERE
+ JOIN JSON_TABLE(GET_JDV_PROPERTY_KEY_VALUE(sch.name, tbl.name, GET_DD_PROPERTY_KEY_VALUE(tbl.options, 'view_valid'), 'JSON_DUALITY_VIEW_TABLES'), '$.entries[*]' COLUMNS ( referenced_table_id INT PATH '$.referenced_table_id', referenced_table_parent_id INT PATH '$.referenced_table_parent_id', referenced_table_parent_relationship VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_parent_relationship', referenced_table_catalog VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_catalog', referenced_table_schema VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_schema', referenced_table_name VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.referenced_table_name', where_clause VARCHAR(64) CHARACTER SET utf8mb4 PATH '$.where_clause', is_root_table TINYINT PATH '$.is_root_table', allow_insert TINYINT PATH '$.allow_insert', allow_update TINYINT PATH '$.allow_update', allow_delete TINYINT PATH '$.allow_delete', allow_check TINYINT PATH '$.allow_check', read_only TINYINT PATH '$.read_only' ) ) AS tables WHERE
CAN_ACCESS_VIEW(sch.name, tbl.name, tbl.view_definer, tbl.options)
AND CAN_ACCESS_TABLE(tables.referenced_table_schema, tables.referenced_table_name)
AND tbl.type = 'VIEW'
@@ -1915,8 +1919,8 @@ SET debug = '-d,fetch_system_view_definition';
include/assert.inc [Found expected number of system views in DD.]
include/assert.inc [Found expected number of system views in I_S_check_table.]
include/assert.inc [The group concat max length is sufficient.]
-The schema checksum corresponds to I_S version 90500.
+The schema checksum corresponds to I_S version 261000.
include/assert.inc [The schema checksum corresponds to a known I_S version.]
include/assert.inc [The schema checksum corresponds to
-IS_VERSION 90500 stored on disk.]
+IS_VERSION 261000 stored on disk.]
include/assert.inc [The stored I_S version is the latest published I_S version.]
diff --git a/mysql-test/suite/information_schema/t/i_s_schema_definition_debug.test b/mysql-test/suite/information_schema/t/i_s_schema_definition_debug.test
index f546145e8ac..6ac0159315b 100644
--- a/mysql-test/suite/information_schema/t/i_s_schema_definition_debug.test
+++ b/mysql-test/suite/information_schema/t/i_s_schema_definition_debug.test
@@ -362,6 +362,12 @@ INSERT INTO I_S_published_schema
INSERT INTO I_S_published_schema
VALUES ('90500', '90500', 1,
'797926c355c5bda0e300ad5fab20371e44d1bcacaf76f10d03636f37570fe732');
+INSERT INTO I_S_published_schema
+ VALUES ('261000', '261000', 0,
+ 'a6579d17b959d05060c01a6a54c6368bf8c4f4d2d9d8c62b28c3a18aae4f43b7');
+INSERT INTO I_S_published_schema
+ VALUES ('261000', '261000', 1,
+ 'f8ea12c48b0a95362154b0ff3e37cefb0fc34e24c5d5782a086df525db6d8d90');
LET $checksum_version = `SELECT IF(ISNULL(mysqld_version), "0", i_s_version)
FROM I_S_published_schema i RIGHT OUTER JOIN whole_schema w