polardbxengine/mysql-test/suite/x/t/admin_create_index_fulltext...

183 lines
7.3 KiB
Plaintext

## manipulate of fulltext indexes on document
--source include/xplugin_preamble.inc
--source include/xplugin_create_user.inc
## Test starts here
--let $xtest_file= $MYSQL_TMP_DIR/admin_create_index_fulltext.tmp
--write_file $xtest_file
-->quiet
## Test data
-->macro Insert %COLL% %VALUE% %ERROR%
Mysqlx.Crud.Insert {
collection {
name: "%COLL%"
schema: "xtest"
}
data_model: DOCUMENT
row {
field {
type: LITERAL
literal {
type: V_STRING
v_string {
value: %VALUE%
}
}
}
}
}
-->expecterror %ERROR%
-->recvresult
-->endmacro
-->macro Show %COLL%
-->echo ### Columns of %COLL%
-->stmtsql show columns from xtest.%COLL%
-->recvresult
-->echo ### Indexes of %COLL%
-->stmtsql show index from xtest.%COLL%
-->recvresult
-->echo ############################
-->endmacro
-->title =Create collection fulltext1
-->stmtadmin create_collection {"schema":"xtest", "name":"fulltext1"}
-->recvresult
-->title =check required status var updated
-->sql
SHOW STATUS like 'Mysqlx_stmt_create_collection_index%';
SHOW STATUS like 'Mysqlx_stmt_drop_collection_index%';
SHOW STATUS LIKE 'Mysqlx_stmt_execute_mysqlx';
-->endsql
-->title =Create entire document fulltext index and drop it
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"one", "unique":false, "constraint":{"member":"$", "type":"fulltext", "required":true}}
-->recvresult
-->callmacro Show fulltext1
-->stmtadmin drop_collection_index {"schema":"xtest", "collection":"fulltext1", "name":"one"}
-->recvresult
-->callmacro Show fulltext1
-->sql
SHOW STATUS like 'Mysqlx_stmt_create_collection_index%';
SHOW STATUS like 'Mysqlx_stmt_drop_collection_index%';
SHOW STATUS LIKE 'Mysqlx_stmt_execute_mysqlx';
-->endsql
-->title =Create fulltext index (without constraint.type) and drop it
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"one", "unique":false, "constraint":{"member":"$.first", "required":true}}
-->recvresult
-->callmacro Show fulltext1
-->stmtadmin drop_collection_index {"schema":"xtest", "collection":"fulltext1", "name":"one"}
-->recvresult
-->callmacro Show fulltext1
-->title =Create two fulltext indexes on the same member and drop one
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"one", "unique":false, "constraint":{"member":"$.first", "type":"fulltext", "required":true}}
-->recvresult
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"two", "unique":false, "constraint":{"member":"$.first", "type":"fulltext", "required":true}}
-->recvresult
-->callmacro Show fulltext1
-->title =Drop fulltext index on $.first
-->stmtadmin drop_collection_index {"schema":"xtest", "collection":"fulltext1", "name":"one"}
-->recvresult
-->callmacro Show fulltext1
-->title =Create fulltext index on two memebers
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"three", "unique":false, "constraint":[{"member":"$.first", "type":"fulltext", "required":true},{"member":"$.second", "type":"fulltext", "required":true}]}
-->recvresult
-->callmacro Show fulltext1
-->title =Create fulltext index on not requiered member
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"four", "unique":false, "constraint":{"member":"$.second", "type":"fulltext", "required":false}}
-->recvresult
-->callmacro Show fulltext1
-->title =Create fulltext index with parser
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"fulltext", "name":"five", "unique":false, "with_parser":"ngram", "constraint":{"member":"$.third", "type":"fulltext", "required":false}}
-->recvresult
-->callmacro Show fulltext1
-->title =Is collection with fulltext index still collection?
-->stmtadmin list_objects {"schema":"xtest"}
-->recvresult
-->title =Drop collection fulltext1
-->stmtadmin drop_collection {"schema":"xtest", "name":"fulltext1"}
-->recvresult
-->title =Create collection fulltext1
-->stmtadmin create_collection {"schema":"xtest", "name":"fulltext1"}
-->recvresult
-->title =Create fulltext index with FULLTEXT instead of fulltext
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"FULLTEXT", "name":"four", "unique":false, "constraint":{"member":"$.second", "type":"FULLTEXT", "required":true}}
-->recvresult
-->title =Verify "NOT NULL" for generated column
-->callmacro Show fulltext1
-->title =Check generated column can be dropped
-->stmtsql ALTER TABLE xtest.fulltext1 DROP COLUMN `$ix_ft_r_350BEBA0BA8F7BA4E147A3E652BE04A3B53B4479`;
-->recvresult
-->title =Create fulltext index with FULLTEXT nested doc
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext1", "type":"FULLTEXT", "name":"five", "unique":false, "constraint":{"member":"$.b[1].c", "type":"FULLTEXT", "required":true}}
-->recvresult
-->stmtadmin disable_notices {"notice":"warnings"}
-->recvresult
-->title =Drop collection fulltext1
-->stmtadmin drop_collection {"schema":"xtest", "name":"fulltext1"}
-->recvresult
-->title =Create collection fulltext2
-->stmtadmin create_collection {"schema":"xtest", "name":"fulltext2"}
-->recvresult
-->title =Try to create unique fulltext index
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext2", "type":"fulltext", "name":"five", "unique":true, "constraint":{"member":"$.first", "type":"fulltext", "required":true}}
-->expecterror ER_X_CMD_ARGUMENT_VALUE
-->recvresult
-->title =Insert not-text values to collection with fulltext index
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext2", "type":"fulltext", "name":"six", "unique":false, "constraint":{"member":"$.first", "type":"fulltext", "required":false}}
-->recvresult
-->callmacro Insert fulltext2 '{"_id": "one", "first":30}' ER_SUCCESS
-->callmacro Insert fulltext2 '{"_id": "three", "first":{"second":42}}' ER_SUCCESS
-->callmacro Insert fulltext2 '{"_id": "two", "first":null}' ER_SUCCESS
-->callmacro Insert fulltext2 '{"_id": "five", "second":30}' ER_SUCCESS
-->title =Try to create fulltext index on missing member
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext2", "type":"fulltext", "name":"seven", "unique":false, "constraint":{"member":"$.first", "type":"fulltext", "required":true}}
-->expecterror ER_X_DOC_REQUIRED_FIELD_MISSING
-->recvresult
-->title =Try to create fulltext index with unknown parser
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext2", "type":"fulltext", "name":"eight", "unique":false, "with_parser": "blablabla", "constraint":{"member":"$.first", "type":"fulltext", "required":false}}
-->expecterror ER_FUNCTION_NOT_DEFINED
-->recvresult
-->title =Try to create 'regular' index with parser
-->stmtadmin create_collection_index {"schema":"xtest", "collection":"fulltext2", "type":"index", "name":"nine", "unique":false, "with_parser": "ngram", "constraint":{"member":"$.first", "type":"fulltext", "required":false}}
-->expecterror ER_X_CMD_ARGUMENT_VALUE
-->recvresult
EOF
CREATE SCHEMA xtest DEFAULT CHARSET 'utf8mb4';
--exec $MYSQLXTEST -ux_root --password='' --file=$xtest_file 2>&1
## Cleanup
DROP SCHEMA IF EXISTS xtest;
--remove_file $xtest_file
--source include/xplugin_drop_user.inc