1671 lines
30 KiB
Plaintext
1671 lines
30 KiB
Plaintext
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.");
|
|
DROP SCHEMA IF EXISTS xtest;
|
|
Warnings:
|
|
Note 1008 Can't drop database 'xtest'; database doesn't exist
|
|
CREATE SCHEMA xtest;
|
|
USE xtest;
|
|
CREATE TABLE xtable (doc JSON);
|
|
INSERT INTO xtable (doc) VALUES ('{"a":10, "b":20, "c":"30", "d":"40", "e":"foo", "f":"bar", "g":"2015.10.05"}');
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "concat"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "concat"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
foobar 1020
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "concat"
|
|
}
|
|
param {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "concat"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "-in-"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "concat"
|
|
}
|
|
param {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "concat"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "-in-"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
foo-in-bar 10-in-20
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "sqrt"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "c"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "sqrt"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
5.477225575051661 3.1622776601683795
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "adddate"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "g"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "fun"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "date_add"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "g"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 3
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "DAY"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "oper"
|
|
}
|
|
}
|
|
|
|
fun oper
|
|
2015-10-08 2015-10-08
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "subdate"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "g"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "fun"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "date_sub"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "g"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 3
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "DAY"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "oper"
|
|
}
|
|
}
|
|
|
|
fun oper
|
|
2015-10-02 2015-10-02
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "cast"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "d"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "DECIMAL"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "cast"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "DECIMAL"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
40 10
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "cast"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "d"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "CHAR"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "cast"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "CHAR"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
40 10
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 10
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "between"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "zoo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "between"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 100
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "between"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "cent"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "string"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "between"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 15
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "number"
|
|
}
|
|
}
|
|
|
|
string number
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "like"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "bar"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "like"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "regexp"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "2015A10B05"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "g"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "regex"
|
|
}
|
|
}
|
|
|
|
like regex
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "like"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "BAR"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "like"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "regexp"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "^f.*"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "regex"
|
|
}
|
|
}
|
|
|
|
like regex
|
|
0 1
|
|
command ok
|
|
send Mysqlx.Crud.Update {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
operation {
|
|
source {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "extra"
|
|
}
|
|
name: "doc"
|
|
}
|
|
operation: ITEM_SET
|
|
value {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "upper"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
operation {
|
|
source {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "sqrt"
|
|
}
|
|
name: "doc"
|
|
}
|
|
operation: ITEM_SET
|
|
value {
|
|
type: FUNC_CALL
|
|
function_call {
|
|
name {
|
|
name: "sqrt"
|
|
}
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
1 rows affected
|
|
Rows matched: 1 Changed: 1 Warnings: 0
|
|
RUN SELECT * FROM xtest.xtable
|
|
doc
|
|
{"a": 10, "b": 20, "c": "30", "d": "40", "e": "foo", "f": "bar", "g": "2015.10.05", "sqrt": 3.1622776601683795, "extra": "FOO"}
|
|
0 rows affected
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 2
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 1
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 2
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-in"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "not_in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 0
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 1
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 2
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-not_in"
|
|
}
|
|
}
|
|
|
|
result-in result-not_in
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "bar"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-in"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "not_in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "far"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "bar"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-not_in"
|
|
}
|
|
}
|
|
|
|
result-in result-not_in
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 10
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 20
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-in"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "not_in"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "d"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 10
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 20
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-not_in"
|
|
}
|
|
}
|
|
|
|
result-in result-not_in
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "bar"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-in"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "not_in"
|
|
param {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "d"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
value {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "bar"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-not_in"
|
|
}
|
|
}
|
|
|
|
result-in result-not_in
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 20
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "c"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-in"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "not_in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_SINT
|
|
v_signed_int: 40
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "a"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "b"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "c"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-not_in"
|
|
}
|
|
}
|
|
|
|
result-in result-not_in
|
|
1 1
|
|
command ok
|
|
send Mysqlx.Crud.Find {
|
|
collection {
|
|
name: "xtable"
|
|
schema: "xtest"
|
|
}
|
|
data_model: TABLE
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "foo"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-in"
|
|
}
|
|
projection {
|
|
source {
|
|
type: OPERATOR
|
|
operator {
|
|
name: "not_in"
|
|
param {
|
|
type: LITERAL
|
|
literal {
|
|
type: V_OCTETS
|
|
v_octets {
|
|
value: "boo"
|
|
}
|
|
}
|
|
}
|
|
param {
|
|
type: ARRAY
|
|
array {
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "e"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
value {
|
|
type: IDENT
|
|
identifier {
|
|
document_path {
|
|
type: MEMBER
|
|
value: "f"
|
|
}
|
|
name: "doc"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
alias: "result-not_in"
|
|
}
|
|
}
|
|
|
|
result-in result-not_in
|
|
1 1
|
|
command ok
|
|
Mysqlx.Ok {
|
|
msg: "bye!"
|
|
}
|
|
ok
|
|
DROP SCHEMA IF EXISTS xtest;
|
|
UNINSTALL PLUGIN mysqlx;
|