Current Path : /home/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 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/x/r/find_crud_conditionalclauses_o.result |
============================================== CRUD FIND CONDITIONAL CLAUSES SCENARIOS ============================================== ================================================================================ PREAMBLE ================================================================================ 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."); create user crudfinduser@localhost identified by 'crudfinduser'; grant all on *.* to crudfinduser@localhost; ================================================================================ TEST START ================================================================================ RUN DROP SCHEMA if EXISTS minisakila 0 rows affected RUN CREATE SCHEMA minisakila 1 rows affected RUN USE minisakila 0 rows affected RUN CREATE TABLE actor ( actor_id int unsigned NOT NULL AUTO_INCREMENT, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, is_active bit(1) NOT NULL, PRIMARY KEY (actor_id) ) 0 rows affected RUN INSERT INTO actor VALUES (NULL,'Victor','Otero',true), (NULL,'Gonzalo','Crhystens',false), (NULL,'Abraham','Vega',true), (NULL,'Jennifer','Leon',false), (NULL,'Jhonny','Test',true) 5 rows affected last insert id: 1 Records: 5 Duplicates: 0 Warnings: 0 Table based scenarios Find all the rows including all the metadata send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE } Mysqlx.Resultset.ColumnMetaData { type: UINT name: "actor_id" original_name: "actor_id" table: "actor" original_table: "actor" schema: "minisakila" catalog: "def" collation: 0 fractional_digits: 0 length: 10 flags: 304 } Mysqlx.Resultset.ColumnMetaData { type: BYTES name: "first_name" original_name: "first_name" table: "actor" original_table: "actor" schema: "minisakila" catalog: "def" collation: 8 fractional_digits: 0 length: 45 flags: 16 } Mysqlx.Resultset.ColumnMetaData { type: BYTES name: "last_name" original_name: "last_name" table: "actor" original_table: "actor" schema: "minisakila" catalog: "def" collation: 8 fractional_digits: 0 length: 45 flags: 16 } Mysqlx.Resultset.ColumnMetaData { type: BIT name: "is_active" original_name: "is_active" table: "actor" original_table: "actor" schema: "minisakila" catalog: "def" collation: 0 fractional_digits: 0 length: 1 flags: 16 } Mysqlx.Resultset.Row { field: "\001" field: "Victor\000" field: "Otero\000" field: "\001" } Mysqlx.Resultset.Row { field: "\002" field: "Gonzalo\000" field: "Crhystens\000" field: "\000" } Mysqlx.Resultset.Row { field: "\003" field: "Abraham\000" field: "Vega\000" field: "\001" } Mysqlx.Resultset.Row { field: "\004" field: "Jennifer\000" field: "Leon\000" field: "\000" } Mysqlx.Resultset.Row { field: "\005" field: "Jhonny\000" field: "Test\000" field: "\001" } Mysqlx.Resultset.FetchDone { } Mysqlx.Sql.StmtExecuteOk { } Find all the rows without the metadata send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE } actor_id first_name last_name is_active 1 Victor Otero 1 2 Gonzalo Crhystens 0 3 Abraham Vega 1 4 Jennifer Leon 0 5 Jhonny Test 1 command ok Find with limit row count and offset send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE limit { row_count: 1 offset: 3 } } actor_id first_name last_name is_active 4 Jennifer Leon 0 command ok Find with limit row count send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE limit { row_count: 4 } } actor_id first_name last_name is_active 1 Victor Otero 1 2 Gonzalo Crhystens 0 3 Abraham Vega 1 4 Jennifer Leon 0 command ok Find specific row with == Operator send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } } } } actor_id first_name last_name is_active 1 Victor Otero 1 command ok Find specific row with != Operator send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "!=" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } } } } actor_id first_name last_name is_active 2 Gonzalo Crhystens 0 3 Abraham Vega 1 4 Jennifer Leon 0 5 Jhonny Test 1 command ok Find specific row with like Operator send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "like" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%on%" } } } } } } actor_id first_name last_name is_active 2 Gonzalo Crhystens 0 5 Jhonny Test 1 command ok Find specific row with && and like Operators send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "&&" param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%on%" } } } } } param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { name: "last_name" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%ns%" } } } } } } } } actor_id first_name last_name is_active 2 Gonzalo Crhystens 0 command ok Find specific row with || and in Operators send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "||" param { type: OPERATOR operator { name: "in" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } param { type: LITERAL literal { type: V_SINT v_signed_int: 2 } } } } param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%ham%" } } } } } } } } actor_id first_name last_name is_active 1 Victor Otero 1 2 Gonzalo Crhystens 0 3 Abraham Vega 1 command ok Find specific row with not_in Operators send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "||" param { type: OPERATOR operator { name: "not_in" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } param { type: LITERAL literal { type: V_SINT v_signed_int: 2 } } } } param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%ham%" } } } } } } } } actor_id first_name last_name is_active 3 Abraham Vega 1 4 Jennifer Leon 0 5 Jhonny Test 1 command ok Find specific row with &&, <= and >= Operators send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "&&" param { type: OPERATOR operator { name: "<=" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 4 } } } } param { type: OPERATOR operator { name: ">=" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 2 } } } } } } } actor_id first_name last_name is_active 2 Gonzalo Crhystens 0 3 Abraham Vega 1 4 Jennifer Leon 0 command ok Find specific row with &&, < and > Operators send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "&&" param { type: OPERATOR operator { name: "<" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 4 } } } } param { type: OPERATOR operator { name: ">" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 2 } } } } } } } actor_id first_name last_name is_active 3 Abraham Vega 1 command ok Find specific row with like Operator using string send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "like" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_STRING v_string { value: "%on%" } } } } } } actor_id first_name last_name is_active 2 Gonzalo Crhystens 0 5 Jhonny Test 1 command ok Find specific row with != Operator with order desc send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "!=" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_STRING v_string { value: "Omar" } } } } } order { expr { type: IDENT identifier { name: "last_name" } } direction: DESC } } actor_id first_name last_name is_active 3 Abraham Vega 1 5 Jhonny Test 1 1 Victor Otero 1 4 Jennifer Leon 0 2 Gonzalo Crhystens 0 command ok Find specific row with != Operator with order asc send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "!=" param { type: IDENT identifier { name: "first_name" } } param { type: LITERAL literal { type: V_STRING v_string { value: "Omar" } } } } } order { expr { type: IDENT identifier { name: "last_name" } } direction: ASC } } actor_id first_name last_name is_active 2 Gonzalo Crhystens 0 4 Jennifer Leon 0 1 Victor Otero 1 5 Jhonny Test 1 3 Abraham Vega 1 command ok Find using not available schema name send Mysqlx.Crud.Find { collection { name: "actor" schema: "noavailableschema" } data_model: TABLE criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } } } } Got expected error: Table 'noavailableschema.actor' doesn't exist (code 1146) Find using not available table name send Mysqlx.Crud.Find { collection { name: "notavailableatable" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { name: "actor_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } } } } Got expected error: Table 'minisakila.notavailableatable' doesn't exist (code 1146) Find using not available column name send Mysqlx.Crud.Find { collection { name: "actor" schema: "minisakila" } data_model: TABLE criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { name: "notavailablecolumn" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 1 } } } } } Got expected error: Unknown column 'notavailablecolumn' in 'where clause' (code 1054) Mysqlx.Ok { msg: "bye!" } ok RUN DROP SCHEMA if EXISTS mysqlxcoll 0 rows affected RUN CREATE SCHEMA mysqlxcoll 1 rows affected RUN USE mysqlxcoll 0 rows affected RUN CREATE TABLE maincoll (doc JSON, _id VARCHAR(32) NOT NULL PRIMARY KEY) 0 rows affected RUN INSERT INTO maincoll (doc, _id) values ('{"_id": "1", "name": "Victor", "last_name": "Otero","amount": 4.99}',json_unquote(json_extract(doc, '$._id'))) 1 rows affected RUN INSERT INTO maincoll (doc, _id) values ('{"_id": "2", "name": "Gonzalo", "last_name": "Crhystens","amount": 120.57}',json_unquote(json_extract(doc, '$._id'))) 1 rows affected RUN INSERT INTO maincoll (doc, _id) values ('{"_id": "3", "name": "Abraham", "last_name": "Vega","amount": 74.56}',json_unquote(json_extract(doc, '$._id'))) 1 rows affected RUN INSERT INTO maincoll (doc, _id) values ('{"_id": "4", "name": "Jennifer", "last_name": "Leon","amount": 387.14}',json_unquote(json_extract(doc, '$._id'))) 1 rows affected RUN INSERT INTO maincoll (doc, _id) values ('{"_id": "5", "name": "Jhonny", "last_name": "Test","amount": 125.45}',json_unquote(json_extract(doc, '$._id'))) 1 rows affected Collection based scenarios Find all the rows including all metadata send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT } Mysqlx.Resultset.ColumnMetaData { type: BYTES name: "doc" original_name: "doc" table: "maincoll" original_table: "maincoll" schema: "mysqlxcoll" catalog: "def" collation: 63 fractional_digits: 0 length: 4294967295 flags: 0 content_type: 2 } Mysqlx.Resultset.Row { field: "{\"_id\": \"1\", \"name\": \"Victor\", \"amount\": 4.99, \"last_name\": \"Otero\"}\000" } Mysqlx.Resultset.Row { field: "{\"_id\": \"2\", \"name\": \"Gonzalo\", \"amount\": 120.57, \"last_name\": \"Crhystens\"}\000" } Mysqlx.Resultset.Row { field: "{\"_id\": \"3\", \"name\": \"Abraham\", \"amount\": 74.56, \"last_name\": \"Vega\"}\000" } Mysqlx.Resultset.Row { field: "{\"_id\": \"4\", \"name\": \"Jennifer\", \"amount\": 387.14, \"last_name\": \"Leon\"}\000" } Mysqlx.Resultset.Row { field: "{\"_id\": \"5\", \"name\": \"Jhonny\", \"amount\": 125.45, \"last_name\": \"Test\"}\000" } Mysqlx.Resultset.FetchDone { } Mysqlx.Sql.StmtExecuteOk { } Find all the rows without all metadata send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT } doc {"_id": "1", "name": "Victor", "amount": 4.99, "last_name": "Otero"} {"_id": "2", "name": "Gonzalo", "amount": 120.57, "last_name": "Crhystens"} {"_id": "3", "name": "Abraham", "amount": 74.56, "last_name": "Vega"} {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} {"_id": "5", "name": "Jhonny", "amount": 125.45, "last_name": "Test"} command ok Find with limit row count and offset send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT limit { row_count: 2 offset: 3 } } doc {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} {"_id": "5", "name": "Jhonny", "amount": 125.45, "last_name": "Test"} command ok Find with limit row count send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT limit { row_count: 3 } } doc {"_id": "1", "name": "Victor", "amount": 4.99, "last_name": "Otero"} {"_id": "2", "name": "Gonzalo", "amount": 120.57, "last_name": "Crhystens"} {"_id": "3", "name": "Abraham", "amount": 74.56, "last_name": "Vega"} command ok Find specific row with == Operator send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { name: "_id" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "1" } } } } } } doc {"_id": "1", "name": "Victor", "amount": 4.99, "last_name": "Otero"} command ok Find specific row with != Operator send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "!=" param { type: IDENT identifier { document_path { type: MEMBER value: "name" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "Jhonny" } } } } } } doc {"_id": "1", "name": "Victor", "amount": 4.99, "last_name": "Otero"} {"_id": "2", "name": "Gonzalo", "amount": 120.57, "last_name": "Crhystens"} {"_id": "3", "name": "Abraham", "amount": 74.56, "last_name": "Vega"} {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} command ok Find specific row with like Operator send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "like" param { type: IDENT identifier { document_path { type: MEMBER value: "name" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%er%" } } } } } } doc {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} command ok Find specific row with && and like Operators send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "&&" param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { document_path { type: MEMBER value: "name" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%er%" } } } } } param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { document_path { type: MEMBER value: "last_name" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "%on%" } } } } } } } } doc {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} command ok Find specific row with || and in Operators send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "||" param { type: OPERATOR operator { name: "in" param { type: IDENT identifier { name: "_id" } } param { type: LITERAL literal { type: V_SINT v_signed_int: 3 } } param { type: LITERAL literal { type: V_SINT v_signed_int: 4 } } } } param { type: OPERATOR operator { name: "like" param { type: IDENT identifier { document_path { type: MEMBER value: "name" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "Gonzalo" } } } } } } } } doc {"_id": "2", "name": "Gonzalo", "amount": 120.57, "last_name": "Crhystens"} {"_id": "3", "name": "Abraham", "amount": 74.56, "last_name": "Vega"} {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} command ok Find specific row with not_in Operators send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "not_in" param { type: IDENT identifier { name: "_id" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "1" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "2" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "3" } } } } } } doc {"_id": "4", "name": "Jennifer", "amount": 387.14, "last_name": "Leon"} {"_id": "5", "name": "Jhonny", "amount": 125.45, "last_name": "Test"} command ok Find specific row with &&, <= and >= Operators send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "&&" param { type: OPERATOR operator { name: "<=" param { type: IDENT identifier { document_path { type: MEMBER value: "amount" } } } param { type: LITERAL literal { type: V_DOUBLE v_double: 120.57 } } } } param { type: OPERATOR operator { name: ">=" param { type: IDENT identifier { document_path { type: MEMBER value: "amount" } } } param { type: LITERAL literal { type: V_DOUBLE v_double: 4.99 } } } } } } } doc {"_id": "1", "name": "Victor", "amount": 4.99, "last_name": "Otero"} {"_id": "2", "name": "Gonzalo", "amount": 120.57, "last_name": "Crhystens"} {"_id": "3", "name": "Abraham", "amount": 74.56, "last_name": "Vega"} command ok Find specific row with &&, < and > Operators send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "&&" param { type: OPERATOR operator { name: "<" param { type: IDENT identifier { document_path { type: MEMBER value: "amount" } } } param { type: LITERAL literal { type: V_DOUBLE v_double: 120.57 } } } } param { type: OPERATOR operator { name: ">" param { type: IDENT identifier { document_path { type: MEMBER value: "amount" } } } param { type: LITERAL literal { type: V_DOUBLE v_double: 4.99 } } } } } } } doc {"_id": "3", "name": "Abraham", "amount": 74.56, "last_name": "Vega"} command ok Find with not available schema name send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "notavailableschema" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "not_in" param { type: IDENT identifier { document_path { type: MEMBER value: "==" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "1" } } } } } } Got expected error: Table 'notavailableschema.maincoll' doesn't exist (code 1146) Find with not available table name send Mysqlx.Crud.Find { collection { name: "notavailabletable" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { name: "_id" } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "1" } } } } } } Got expected error: Table 'mysqlxcoll.notavailabletable' doesn't exist (code 1146) Find with not available column name send Mysqlx.Crud.Find { collection { name: "maincoll" schema: "mysqlxcoll" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "==" param { type: IDENT identifier { document_path { type: MEMBER value: "notavailablecolumn" } } } param { type: LITERAL literal { type: V_OCTETS v_octets { value: "1" } } } } } } doc command ok ================================================================================ CLEAN UP ================================================================================ RUN DROP SCHEMA IF EXISTS minisakila 1 rows affected RUN DROP SCHEMA IF EXISTS mysqlxcoll 1 rows affected RUN DROP USER crudfinduser@localhost 0 rows affected Mysqlx.Ok { msg: "bye!" } ok ================================================================================ POSTAMBLE ================================================================================ uninstall plugin mysqlx;