Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This will check if a QUERY_EVENT holds an "ALTER TABLE ..." string.
- static bool checkAlterQuery(const std::string& str)
- {
- //RegularExpression regexp("^\\s*ALTER\\s+TABLE)", RegularExpression::RE_CASELESS);
- enum {
- SP0, _A0, _L0, _T0, _E0, _R, SP1, _T1, _A1, _B, _L1, _E1
- } state = SP0;
- for (std::string::const_iterator i = str.begin(); i != str.end(); ++i) {
- if (state == SP0 && (*i == ' ' || *i == '\t' || *i == '\r' || *i == '\n')) {
- } else if (state == SP0 && (*i == 'a' || *i == 'A')) {
- state = _A0;
- } else if (state == _A0 && (*i == 'l' || *i == 'L')) {
- state = _L0;
- } else if (state == _L0 && (*i == 't' || *i == 'T')) {
- state = _T0;
- } else if (state == _T0 && (*i == 'e' || *i == 'E')) {
- state = _E0;
- } else if (state == _E0 && (*i == 'r' || *i == 'R')) {
- state = _R;
- } else if (state == _R && (*i == ' ' || *i == '\t' || *i == '\r' || *i == '\n')) {
- state = SP1;
- } else if (state == SP1 && (*i == ' ' || *i == '\t' || *i == '\r' || *i == '\n')) {
- } else if (state == SP1 && (*i == 't' || *i == 'T')) {
- state = _T1;
- } else if (state == _T1 && (*i == 'a' || *i == 'A')) {
- state = _A1;
- } else if (state == _A1 && (*i == 'b' || *i == 'B')) {
- state = _B;
- } else if (state == _B && (*i == 'l' || *i == 'L')) {
- state = _L1;
- } else if (state == _L1 && (*i == 'e' || *i == 'E')) {
- state = _E1;
- } else if (state == _E1) {
- return true;
- } else {
- return false;
- }
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment