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

85 lines
3.1 KiB
Plaintext

## Doc: Find using docpaths in expression
--source include/xplugin_preamble.inc
--source include/xplugin_create_user.inc
CREATE SCHEMA xtest DEFAULT CHARSET 'utf8mb4';
## Test starts here
--write_file $MYSQL_TMP_DIR/crud_find_doc_criteria.tmp
## Test data
-->quiet
-->stmtadmin create_collection {"schema":"xtest","name":"xcoll"}
-->recvresult
-->sql
INSERT INTO xtest.xcoll (doc) VALUES ('{"_id": "1", "name": "Anabel"}');
CREATE TABLE xtest.ycoll (ydoc JSON, _id VARBINARY(16) GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(ydoc, '$._id'))) STORED PRIMARY KEY);
INSERT INTO xtest.ycoll (ydoc) VALUES ('{"_id": "1", "name": "Anabel"}');
CREATE TABLE xtest.zcoll (doc JSON, _zid VARBINARY(16) GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(doc, '$._id'))) STORED PRIMARY KEY);
INSERT INTO xtest.zcoll (doc) VALUES ('{"_id": "1", "name": "Anabel"}');
-->endsql
-->macro Find_value %COLL% %IDENT% %VALUE% %ERROR%
Mysqlx.Crud.Find {
collection {
name: "%COLL%"
schema: "xtest"
}
data_model: DOCUMENT
criteria {
type: OPERATOR
operator {
name: "=="
param {
type: IDENT
identifier {
%IDENT%
}
}
param {
type: LITERAL
literal {
type: V_OCTETS
v_octets {value: "%VALUE%"}
}
}
}
}
}
-->expecterror %ERROR%
-->recvresult
-->endmacro
-->title * xcoll is corect collection
-->callmacro Find_value xcoll name:"_id" 1 ER_SUCCESS
-->callmacro Find_value xcoll name:"_id" no_data ER_SUCCESS
-->callmacro Find_value xcoll name:"doc" no_data ER_SUCCESS
-->callmacro Find_value xcoll document_path{type:MEMBER value:"name"} Anabel ER_SUCCESS
-->callmacro Find_value xcoll document_path{type:MEMBER value:"name"} no_data ER_SUCCESS
-->callmacro Find_value xcoll name:"name" no_data ER_X_DOC_REQUIRED_FIELD_MISSING
-->title * ycoll is not corect collection; missing `doc` column
-->callmacro Find_value ycoll name:"_id" 1 ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value ycoll name:"_id" no_data ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value ycoll name:"doc" no_data ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value ycoll document_path{type:MEMBER value:"name"} Anabel ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value ycoll document_path{type:MEMBER value:"name"} no_data ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value ycoll name:"name" no_data ER_X_DOC_REQUIRED_FIELD_MISSING
-->title * zcoll is not corect collection; missing `_id` column
-->callmacro Find_value zcoll name:"_id" 1 ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value zcoll name:"_id" no_data ER_X_DOC_REQUIRED_FIELD_MISSING
-->callmacro Find_value zcoll name:"doc" no_data ER_SUCCESS
-->callmacro Find_value zcoll document_path{type:MEMBER value:"name"} Anabel ER_SUCCESS
-->callmacro Find_value zcoll document_path{type:MEMBER value:"name"} no_data ER_SUCCESS
-->callmacro Find_value zcoll name:"name" no_data ER_X_DOC_REQUIRED_FIELD_MISSING
EOF
--exec $MYSQLXTEST -ux_root --password='' --file=$MYSQL_TMP_DIR/crud_find_doc_criteria.tmp 2>&1
## Cleanup
DROP SCHEMA IF EXISTS xtest;
--remove_file $MYSQL_TMP_DIR/crud_find_doc_criteria.tmp
--source include/xplugin_drop_user.inc