select * added

This commit is contained in:
2021-08-08 01:29:10 +02:00
parent 15a065c2aa
commit 19585dda8c
5 changed files with 24 additions and 11 deletions

View File

@@ -226,17 +226,24 @@ namespace usql {
int i = 1;
while (m_lexer.tokenType() != TokenType::keyword_from) {
auto column_value = parse_value();
std::string column_alias;
if (m_lexer.tokenType()==TokenType::multiply) {
std::string name = m_lexer.consumeCurrentToken().token_string;
auto multiply_char = std::make_unique<ColNameNode>(name);
if (column_value->node_type == NodeType::column_name) {
column_alias = ((ColNameNode*) column_value.get())->name;
cols->push_back(SelectColNode{std::move(multiply_char), "*"});
} else {
column_alias = "c" + std::to_string(i);
i++;
auto column_value = parse_value();
std::string column_alias;
if (column_value->node_type == NodeType::column_name) {
column_alias = ((ColNameNode*) column_value.get())->name;
} else {
column_alias = "c" + std::to_string(i);
i++;
}
cols->push_back(SelectColNode{std::move(column_value), column_alias});
}
cols->push_back(SelectColNode{std::move(column_value), column_alias});
m_lexer.skipTokenOptional(TokenType::comma);
}