THe SqlLexer also now recognizes casts.

This commit is contained in:
eelke 2018-01-06 21:18:28 +01:00
parent a99f059b70
commit b436814eb5
3 changed files with 55 additions and 1 deletions

View file

@ -36,3 +36,27 @@ TEST(SqlLexer, lexer_quote_in_string)
ASSERT_THAT(tokentype, Eq(BasicTokenType::QuotedString));
}
TEST(SqlLexer, lexer_cast)
{
QString input = "'1'::integer";
SqlLexer lexer(input, LexerState::Null);
int startpos, length;
BasicTokenType tokentype;
QString out;
lexer.nextBasicToken(startpos, length, tokentype, out);
ASSERT_THAT(startpos, Eq(0));
ASSERT_THAT(length, Eq(3));
ASSERT_THAT(tokentype, Eq(BasicTokenType::QuotedString));
lexer.nextBasicToken(startpos, length, tokentype, out);
ASSERT_THAT(startpos, Eq(3));
ASSERT_THAT(length, Eq(2));
ASSERT_THAT(tokentype, Eq(BasicTokenType::Cast));
lexer.nextBasicToken(startpos, length, tokentype, out);
ASSERT_THAT(startpos, Eq(5));
ASSERT_THAT(length, Eq(7));
ASSERT_THAT(tokentype, Eq(BasicTokenType::Symbol));
}