config root man

Current Path : /usr/opt/mysql57/mysql-test/suite/x/r/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //usr/opt/mysql57/mysql-test/suite/x/r/drop_index_crud.result

install plugin mysqlx soname "mysqlx.so";
call mtr.add_suppression("Plugin mysqlx reported: .Failed at SSL configuration: .SSL context is not usable without certificate and private key..");
call mtr.add_suppression("Plugin mysqlx reported: .SSL_CTX_load_verify_locations failed.");
call mtr.add_suppression("Error parsing message of type 12: args");
call mtr.add_suppression("Error handling message: args");
RUN CREATE DATABASE xplugintest

1 rows affected
RUN USE xplugintest

0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  namespace: "xplugin"
}


command ok
Namespace 'xplugin' is deprecated, please use 'mysqlx' instead
Create and drop indexes of different types on single fields
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TINYINT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_it_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_it_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` tinyint(4) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_it_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TINYINT UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_it_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_it_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` tinyint(3) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_it_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TINYINT(2) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_it2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_it2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` tinyint(2) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_it2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "SMALLINT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_is_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_is_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` smallint(6) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_is_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "SMALLINT UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_is_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_is_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` smallint(5) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_is_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "SMALLINT(4) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_is4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_is4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` smallint(4) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_is4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"12345","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_is4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "12345"}	1	12345
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "MEDIUMINT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_im_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_im_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` mediumint(9) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_im_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "MEDIUMINT UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_im_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_im_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` mediumint(8) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_im_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "MEDIUMINT(7) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_im7_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_im7_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` mediumint(7) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_im7_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"12345678","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_im7_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "12345678"}	1	12345678
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INTEGER"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_i_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_i_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` int(11) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_i_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INTEGER UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_i_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_i_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` int(10) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_i_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INTEGER(6) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_i6_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_i6_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` int(6) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_i6_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"1234567","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_i6_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "1234567"}	1	1234567
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "BIGINT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_ib_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_ib_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` bigint(20) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_ib_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "BIGINT UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_ib_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_ib_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` bigint(20) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_ib_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "BIGINT(13)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_ib13_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_ib13_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` bigint(13) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_ib13_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"123456789012345","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_ib13_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "123456789012345"}	1	123456789012345
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "BIGINT(22) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_ib22_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_ib22_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` bigint(22) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_ib22_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "REAL"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_fr_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_fr_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` double GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_fr_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "REAL UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_fr_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_fr_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` double unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_fr_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "FLOAT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_f_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_f_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` float GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_f_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "FLOAT UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_f_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_f_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` float unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_f_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DOUBLE"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_fd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_fd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` double GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_fd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DOUBLE UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_fd_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_fd_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` double unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_fd_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DOUBLE(7,4) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_fd7_4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_fd7_4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` double(7,4) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_fd7_4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"123.1234","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_fd7_4_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "123.1234"}	1	123.1234
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DECIMAL"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_xd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_xd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` decimal(10,0) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_xd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DECIMAL(10) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_xd10_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_xd10_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` decimal(10,0) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_xd10_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"123456.123","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_xd10_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "123456.123"}	1	123456
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DECIMAL(8,2) UNSIGNED"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_xd8_2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_xd8_2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70` decimal(8,2) unsigned GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_xd8_2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"123456.123","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_xd8_2_ur_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "123456.123"}	1	123456.12
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "NUMERIC"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_xn_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_xn_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` decimal(10,0) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_xn_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "NUMERIC(10,2)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_xn10_2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_xn10_2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` decimal(10,2) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_xn10_2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"12345.123456","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_xn10_2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "12345.123456"}	1	12345.12
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "NUMERIC(5)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_xn5_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_xn5_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` decimal(5,0) GENERATED ALWAYS AS (json_extract(`doc`,'$.col')) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_xn5_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"12345.123456","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_xn5_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "12345.123456"}	1	12345
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DATE"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_d_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_d_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` date GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_d_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TIME"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_dt_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_dt_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` time GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_dt_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TIME(2)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_dt2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_dt2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` time(2) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_dt2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"12:13:44","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_dt2_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "12:13:44"}	1	12:13:44
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TIMESTAMP"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_ds_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_ds_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` timestamp GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_ds_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TIMESTAMP(6)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_ds6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_ds6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` timestamp(6) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_ds6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"2038-01-19 03:14:07.123456","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_ds6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "2038-01-19 03:14:07.123456"}	1	2038/01/19 03:14:07.123456
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DATETIME"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_dd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_dd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` datetime GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_dd_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "DATETIME(6)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_dd6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_dd6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` datetime(6) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_dd6_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "YEAR"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_dy_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_dy_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` year(4) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_dy_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "VARCHAR(15)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 5017
  msg: "Invalid or unsupported type specification \'VARCHAR(15)\'"
  sql_state: "HY000"
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  PRIMARY KEY (`_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"QUITE LOOOONG STRING","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id
{"_id": 1, "col": "QUITE LOOOONG STRING"}	1
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 1091
  msg: "Can\'t DROP \'ix\'; check that column/key exists"
  sql_state: "42000"
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "CHAR(25)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 5017
  msg: "Invalid or unsupported type specification \'CHAR(25)\'"
  sql_state: "HY000"
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  PRIMARY KEY (`_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"LONG LONG STRING, LONGER THAN INDEX SIZE","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id
{"_id": 1, "col": "LONG LONG STRING, LONGER THAN INDEX SIZE"}	1
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 1091
  msg: "Can\'t DROP \'ix\'; check that column/key exists"
  sql_state: "42000"
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "BIT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_t_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	null	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_t_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` bit(1) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_t_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "BLOB(50)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_bt50_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	50	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_bt50_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` tinyblob GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_bt50_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`(50))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"BLOB BLOB BLOB BLOB BLOB VALUE LONG VALUE 0123456789 BLOB01234567890123456789","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_bt50_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "BLOB BLOB BLOB BLOB BLOB VALUE LONG VALUE 0123456789 BLOB01234567890123456789"}	1	BLOB BLOB BLOB BLOB BLOB VALUE LONG VALUE 0123456789 BLOB01234567890123456789
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TEXT(30)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	ix	1	$ix_t30_r_193639E0029FB71DA5916BDF64B75D481FD4CF70	A	0	30	null		BTREE		
0 rows affected
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `$ix_t30_r_193639E0029FB71DA5916BDF64B75D481FD4CF70` text GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.col'))) VIRTUAL NOT NULL,
  PRIMARY KEY (`_id`),
  UNIQUE KEY `ix` (`$ix_t30_r_193639E0029FB71DA5916BDF64B75D481FD4CF70`(30))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN INSERT INTO xplugintest.table1(doc) VALUES('{"col":"TEXT LONGER THAN INDEX SIZE WHICH EQUALS 30 1234567890","_id":1}')

1 rows affected
RUN SELECT * FROM xplugintest.table1
doc	_id	$ix_t30_r_193639E0029FB71DA5916BDF64B75D481FD4CF70
{"_id": 1, "col": "TEXT LONGER THAN INDEX SIZE WHICH EQUALS 30 1234567890"}	1	TEXT LONGER THAN INDEX SIZE WHICH EQUALS 30 1234567890
0 rows affected
RUN DELETE FROM xplugintest.table1

1 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "ix"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
Create index on two fields
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "two_field_index"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col_text"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TEXT(10)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col_int"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	two_field_index	1	$ix_t10_r_0AD3DA5237EEE3DFC9BAFF8E7071211F65E9713C	A	0	10	null		BTREE		
table1	0	two_field_index	2	$ix_i_r_B8701A5C0B839D9E3336ED0BD89272C2666E1C74	A	0	null	null		BTREE		
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "two_field_index"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
Create two indexes using the same field
send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "index1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col_1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col_2"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "index2"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col_2"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "INT"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	index1	1	$ix_i_r_391E85E134E06EE3BB933293E26546D764D922BD	A	0	null	null		BTREE		
table1	0	index1	2	$ix_i_r_EF67772F9C09859F0E6CC3208EDA759461EA79E2	A	0	null	null		BTREE		
table1	0	index2	1	$ix_i_r_EF67772F9C09859F0E6CC3208EDA759461EA79E2	A	0	null	null		BTREE		
0 rows affected
Drop the first of the indexes, it should keep the shared column
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "index1"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	0	index2	1	$ix_i_r_EF67772F9C09859F0E6CC3208EDA759461EA79E2	A	0	null	null		BTREE		
0 rows affected
Drop the second of the indexes, the column should be gone
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "index2"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
Error scenarios when dropping the index
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "nonexisting"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "date_index"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 5113
  msg: "Invalid collection name: nonexisting.table1"
  sql_state: "HY000"
}

send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "nonexisting"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "date_index"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 5113
  msg: "Invalid collection name: xplugintest.nonexisting"
  sql_state: "HY000"
}

send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "nonexisting"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 1091
  msg: "Can\'t DROP \'nonexisting\'; check that column/key exists"
  sql_state: "42000"
}

send Mysqlx.Sql.StmtExecute {
  stmt: "create_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "tblob_index"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "$.col_blob"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "TINYBLOB(10)"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_BOOL
      v_bool: true
    }
  }
  namespace: "xplugin"
}

Mysqlx.Error {
  severity: ERROR
  code: 5017
  msg: "Invalid or unsupported type specification \'TINYBLOB(10)\'"
  sql_state: "HY000"
}

RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
0 rows affected
RUN ALTER TABLE xplugintest.table1 ADD SUBJECT text GENERATED ALWAYS AS (json_extract( doc, '$.subject' )) STORED

0 rows affected
Records: 0  Duplicates: 0  Warnings: 0
RUN ALTER TABLE xplugintest.table1 ADD book text 

0 rows affected
Records: 0  Duplicates: 0  Warnings: 0
RUN ALTER TABLE xplugintest.table1 ADD INDEX `fulltext_idx_1` (subject(100))

0 rows affected
Records: 0  Duplicates: 0  Warnings: 0
RUN ALTER TABLE xplugintest.table1 ADD INDEX `fulltext_idx_2` (subject(100))

0 rows affected
Records: 0  Duplicates: 0  Warnings: 1
RUN ALTER TABLE xplugintest.table1 ADD INDEX `fulltext_idx_3` (book(100))

0 rows affected
Records: 0  Duplicates: 0  Warnings: 0
RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `SUBJECT` text GENERATED ALWAYS AS (json_extract(`doc`,'$.subject')) STORED,
  `book` text,
  PRIMARY KEY (`_id`),
  KEY `fulltext_idx_1` (`SUBJECT`(100)),
  KEY `fulltext_idx_2` (`SUBJECT`(100)),
  KEY `fulltext_idx_3` (`book`(100))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table1	0	PRIMARY	1	_id	A	0	null	null		BTREE		
table1	1	fulltext_idx_1	1	SUBJECT	A	0	100	null	YES	BTREE		
table1	1	fulltext_idx_2	1	SUBJECT	A	0	100	null	YES	BTREE		
table1	1	fulltext_idx_3	1	book	A	0	100	null	YES	BTREE		
0 rows affected
drop primary index
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "PRIMARY"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `SUBJECT` text GENERATED ALWAYS AS (json_extract(`doc`,'$.subject')) STORED,
  `book` text,
  KEY `fulltext_idx_1` (`SUBJECT`(100)),
  KEY `fulltext_idx_2` (`SUBJECT`(100)),
  KEY `fulltext_idx_3` (`book`(100))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "fulltext_idx_1"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "fulltext_idx_3"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table1"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "fulltext_idx_2"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

RUN SHOW CREATE TABLE xplugintest.table1
Table	Create Table
table1	CREATE TABLE `table1` (
  `doc` json DEFAULT NULL,
  `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
  `SUBJECT` text GENERATED ALWAYS AS (json_extract(`doc`,'$.subject')) STORED,
  `book` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
0 rows affected
RUN ALTER TABLE xplugintest.table1 DROP COLUMN subject

0 rows affected
Records: 0  Duplicates: 0  Warnings: 0
RUN SHOW INDEX FROM xplugintest.table1
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
0 rows affected
RUN CREATE TABLE xplugintest.table2 (
ID          TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name        VARCHAR(255) NOT NULL,
LastName        VARCHAR(255) NOT NULL,
UNIQUE `idx1` (Name),
UNIQUE `idx2` (LastName)
) 

0 rows affected
 drop index from data_model=TABLE
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table2"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "idx1"
      }
    }
  }
  namespace: "xplugin"
}

Mysqlx.Sql.StmtExecuteOk {
}

Error can not drop primary index when column defined as auto_increment
send Mysqlx.Sql.StmtExecute {
  stmt: "drop_collection_index"
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "xplugintest"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "table2"
      }
    }
  }
  args {
    type: SCALAR
    scalar {
      type: V_STRING
      v_string {
        value: "PRIMARY"
      }
    }
  }
  namespace: "xplugin"
}

Got expected error: Incorrect table definition; there can be only one auto column and it must be defined as a key (code 1075)
RUN SHOW CREATE TABLE xplugintest.table2
Table	Create Table
table2	CREATE TABLE `table2` (
  `ID` tinyint(4) NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) NOT NULL,
  `LastName` varchar(255) NOT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `idx2` (`LastName`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
0 rows affected
drop index using namespace=sql
send Mysqlx.Sql.StmtExecute {
  stmt: "ALTER TABLE xplugintest.table2 DROP INDEX `idx2`"
  namespace: "sql"
}


0 rows affected
Records: 0  Duplicates: 0  Warnings: 0
RUN SHOW INDEX FROM xplugintest.table2
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment	Index_comment
table2	0	PRIMARY	1	ID	A	0	null	null		BTREE		
0 rows affected
RUN DROP DATABASE IF EXISTS xplugintest

2 rows affected
Mysqlx.Ok {
  msg: "bye!"
}
ok
UNINSTALL PLUGIN mysqlx;

Man Man