dbms: fixed error with 'SELECT count() FROM t' query [#CONV-2944].

This commit is contained in:
Alexey Milovidov 2012-10-29 06:19:49 +00:00
parent cbb5a06d63
commit b205d51215

View File

@ -269,6 +269,12 @@ void Expression::clearTemporariesImpl(ASTPtr ast, Block & block)
if (need_columns.end() != need_columns.find(block.getByPosition(i).name))
cleared_block.insert(block.getByPosition(i));
/** Список нужных столбцов может оказаться пустым, например, в случае запроса SELECT count() FROM t.
* Но, при выполнении такого запроса, из таблицы считывается первый попавшийся столбец,
* чтобы узнать количество строк, и он нужен, хотя не виден в запросе.
* То есть, в таких случаях, удалять "ненужные" столбцы не нужно.
*/
if (cleared_block)
block = cleared_block;
}