config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/x/t/

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 : //home/usr.opt/mysql57/mysql-test/suite/x/t/crud_update_table_json.test

## Upadting json values in non-document table

## Preamble
--source ../include/xplugin_preamble.inc

## Test starts here
--write_file $MYSQL_TMP_DIR/crud_update_table_json.tmp
## Test data
-->sql
DROP SCHEMA IF EXISTS xtest;
CREATE SCHEMA xtest;
CREATE TABLE xtest.xtable (xfield JSON);
-->endsql

### SET
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: SET
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:'{"first":1.1, "second": "two.1"}'}}
    }
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ITEM_SET
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'first'}
    }
    operation: ITEM_SET
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 1.1}
    }
  }
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'second'}
    }
    operation: ITEM_SET
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:"two.1"}}
    }
  }
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'third'}
    }
    operation: ITEM_SET
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 3.1}
    }
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ITEM_REMOVE
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'first'}
    }
    operation: ITEM_REMOVE
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ITEM_REPLACE
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'first'}
    }
    operation: ITEM_REPLACE
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 1.1}
    }
  }
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'third'}
    }
    operation: ITEM_REPLACE
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:"three.1"}}
    }
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ITEM_MERGE
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: ITEM_MERGE
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:'{"third":3.0, "fourth": "four"}'}}
    }
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ARRAY_INSERT
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": ["two"]}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'second'}
      document_path {type: ARRAY_INDEX index: 0}
    }
    operation: ARRAY_INSERT
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:'two.1'}}
    }
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ARRAY_APPEND
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'second'}
    }
    operation: ARRAY_APPEND
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:'two.1'}}
    }
  }
}

-- Mysqlx.Sql.StmtExecuteOk
-->recvresult

-->sql
SELECT * FROM xtest.xtable;
-->endsql


### ERRORS
-->sql
TRUNCATE TABLE xtest.xtable;
INSERT INTO xtest.xtable VALUES('{"first":1.0, "second": "two"}');
SELECT * FROM xtest.xtable;
-->endsql

### SET errors

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
      document_path {type: MEMBER value: 'second'}
    }
    operation: SET
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:'{"first":1.1}'}}
    }
  }
}

-->expecterror 5052
-->recvresult

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: ''
    }
    operation: SET
    value: {
      type: LITERAL literal {type: V_OCTETS v_octets {value:'{"first":1.1}'}}
    }
  }
}

-->expecterror 5052
-->recvresult


### ITEM_SET error

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: ITEM_SET
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 1.1}
    }
  }
}

-->expecterror 5053
-->recvresult


### ITEM_REMOVE error

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: ITEM_REMOVE
  }
}

-->expecterror 5053
-->recvresult


### ITEM_REPLACE error

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: ITEM_REPLACE
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 1.1}
    }
  }
}

-->expecterror 5053
-->recvresult


### ARRAY_INSERT error

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: ARRAY_INSERT
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 1.1}
    }
  }
}

-->expecterror 5053
-->recvresult


### ARRAY_APPEND error

Mysqlx.Crud.Update {
  collection { name: "xtable" schema: "xtest"}
  data_model: TABLE
  operation {
    source {
      name: 'xfield'
    }
    operation: ARRAY_APPEND
    value: {
      type: LITERAL literal {type: V_DOUBLE v_double: 1.1}
    }
  }
}

-->expecterror 5053
-->recvresult





## Cleanup
-->sql
DROP SCHEMA IF EXISTS xtest;
-->endsql
EOF

--exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/crud_update_table_json.tmp 2>&1
--remove_file $MYSQL_TMP_DIR/crud_update_table_json.tmp

## Postamble
uninstall plugin mysqlx;

Man Man