From 4a460ca57a577e57c9f8dfff00127e53ed810a26 Mon Sep 17 00:00:00 2001 From: Ankush Rayabhari Date: Mon, 31 Aug 2020 18:43:27 -0700 Subject: [PATCH] Fix tests to account for changed expr type for CAST/EXTRACT --- test/select_tests.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/test/select_tests.cpp b/test/select_tests.cpp index 3093ceb..6833770 100644 --- a/test/select_tests.cpp +++ b/test/select_tests.cpp @@ -638,7 +638,7 @@ TEST(Extract) { stmt = (SelectStatement*) result.getStatement(0); ASSERT_TRUE(stmt->selectList); ASSERT_EQ(stmt->selectList->size(), 1u); - ASSERT_EQ(stmt->selectList->at(0)->type, kExprFunctionRef); + ASSERT_EQ(stmt->selectList->at(0)->type, kExprExtract); ASSERT_EQ(stmt->selectList->at(0)->name, std::string("EXTRACT")); ASSERT_EQ(stmt->selectList->at(0)->datetimeField, kDatetimeYear); ASSERT_TRUE(stmt->selectList->at(0)->expr); @@ -647,7 +647,7 @@ TEST(Extract) { stmt = (SelectStatement*) result.getStatement(1); ASSERT_TRUE(stmt->selectList); ASSERT_EQ(stmt->selectList->size(), 2u); - ASSERT_EQ(stmt->selectList->at(1)->type, kExprFunctionRef); + ASSERT_EQ(stmt->selectList->at(1)->type, kExprExtract); ASSERT_EQ(stmt->selectList->at(1)->name, std::string("EXTRACT")); ASSERT_EQ(stmt->selectList->at(1)->datetimeField, kDatetimeMonth); ASSERT_TRUE(stmt->selectList->at(1)->expr); @@ -658,11 +658,31 @@ TEST(Extract) { stmt = (SelectStatement*) result.getStatement(2); ASSERT_TRUE(stmt->whereClause); ASSERT_TRUE(stmt->whereClause->expr); - ASSERT_EQ(stmt->whereClause->expr->type, kExprFunctionRef); + ASSERT_EQ(stmt->whereClause->expr->type, kExprExtract); ASSERT_EQ(stmt->whereClause->expr->name, std::string("EXTRACT")); ASSERT_EQ(stmt->whereClause->expr->datetimeField, kDatetimeMinute); } +TEST(CastExpression) { + TEST_PARSE_SINGLE_SQL( + "SELECT CAST(10 AS INT);", + kStmtSelect, + SelectStatement, + result, + stmt); + + ASSERT_TRUE(stmt->selectList); + ASSERT_FALSE(stmt->fromTable); + ASSERT_FALSE(stmt->whereClause); + ASSERT_FALSE(stmt->groupBy); + + ASSERT_EQ(stmt->selectList->size(), 1u); + ASSERT_EQ(stmt->selectList->at(0)->type, kExprCast); + ASSERT_EQ(stmt->selectList->at(0)->name, std::string("CAST")); + ASSERT_EQ(stmt->selectList->at(0)->columnType, ColumnType(DataType::INT)); + ASSERT_EQ(stmt->selectList->at(0)->expr->type, kExprLiteralInt); +} + TEST(NoFromClause) { TEST_PARSE_SINGLE_SQL( "SELECT 1 + 2;",