use crate::util::*;
testcase!(test);
fn test(mut glue: multisql::Glue) {
assert_success!(
glue,
"CREATE TABLE test (
a INTEGER NULL,
b TEXT NULL,
)"
);
assert_success!(
glue,
"CREATE TABLE select_into (
x INTEGER NULL,
y TEXT NULL,
)"
);
assert_success!(
glue,
"INSERT INTO select_into (x, y) VALUES (10, 'j')",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test VALUES (1, 'a');",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (a, b) VALUES (2, 'b');",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (a) VALUES (3);",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (b) VALUES ('c');",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test SELECT * FROM select_into;",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (a, b) SELECT * FROM select_into;",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test SELECT x, y FROM select_into;",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (a, b) SELECT x, y FROM select_into;",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (a) SELECT x FROM select_into;",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (b) VALUES (UPPER('test'));",
multisql::Payload::Insert(1)
);
assert_success!(
glue,
"INSERT INTO test (b) SELECT UPPER('test') FROM select_into;",
multisql::Payload::Insert(1)
);
assert_error!(
glue,
"INSERT INTO test (a, b) VALUES (1, 'error', 'error')",
multisql::ValidateError::WrongNumberOfValues
);
assert_error!(
glue,
"INSERT INTO test (a, b) VALUES (1, 'error'), (1, 'error', 'error')",
multisql::ValidateError::WrongNumberOfValues
);
}