55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
/**
|
|
* Test SEQUENCE related commands
|
|
*
|
|
* This test is only enabled when the backend version is 10.3
|
|
*/
|
|
|
|
#include "testconnections.h"
|
|
#include <vector>
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
TestConnections::require_repl_version("10.3");
|
|
TestConnections test(argc, argv);
|
|
|
|
test.maxscales->connect();
|
|
test.try_query(test.maxscales->conn_rwsplit[0], "CREATE SEQUENCE seq");
|
|
|
|
std::vector<std::pair<const char*, const char*>> statements =
|
|
{
|
|
{"SELECT NEXT VALUE FOR seq", "1"},
|
|
{"SELECT PREVIOUS VALUE FOR seq", "1"},
|
|
{"SELECT NEXTVAL(seq)", "2"},
|
|
{"SELECT LASTVAL(seq)", "2"},
|
|
};
|
|
|
|
for (auto a : statements)
|
|
{
|
|
test.expect(execute_query_check_one(test.maxscales->conn_rwsplit[0], a.first, a.second) == 0,
|
|
"Expected '%s' for query: %s",
|
|
a.second,
|
|
a.first);
|
|
}
|
|
|
|
test.try_query(test.maxscales->conn_rwsplit[0], "SET SQL_MODE='ORACLE'");
|
|
|
|
std::vector<std::pair<const char*, const char*>> oracle_statements =
|
|
{
|
|
{"SELECT seq.nextval", "3"},
|
|
{"SELECT seq.currval", "3"},
|
|
};
|
|
|
|
for (auto a : oracle_statements)
|
|
{
|
|
test.expect(execute_query_check_one(test.maxscales->conn_rwsplit[0], a.first, a.second) == 0,
|
|
"Expected '%s' for query: %s",
|
|
a.second,
|
|
a.first);
|
|
}
|
|
|
|
test.try_query(test.maxscales->conn_rwsplit[0], "DROP SEQUENCE seq");
|
|
test.maxscales->disconnect();
|
|
|
|
return test.global_result;
|
|
}
|