diff --git a/dbms/src/Client/Client.cpp b/dbms/src/Client/Client.cpp index 0c8c0f9be49..84263b56404 100644 --- a/dbms/src/Client/Client.cpp +++ b/dbms/src/Client/Client.cpp @@ -40,6 +40,12 @@ #include #include +#include +#include +#include +#include +#include +#include #include #include @@ -359,7 +365,7 @@ private: bool ends_with_semicolon = line[ws - 1] == ';'; bool ends_with_backslash = line[ws - 1] == '\\'; - + has_vertical_output_suffix = (ws >= 2) && (line[ws - 2] == '\\') && (line[ws - 1] == 'G'); if (ends_with_backslash) @@ -373,7 +379,7 @@ private: { // Заменяем переводы строк на пробелы, а то возникает следуцющая проблема. // Каждая строчка многострочного запроса сохраняется в истории отдельно. Если - // выйти из клиента и войти заново, то при нажатии клавиши "вверх" выводится не + // выйти из клиента и войти заново, то при нажатии клавиши "вверх" выводится не // весь многострочный запрос, а каждая его строчка по-отдельности. std::string logged_query = query; std::replace(logged_query.begin(), logged_query.end(), '\n', ' '); @@ -799,7 +805,7 @@ private: onException(*packet.exception); last_exception = packet.exception; return false; - + default: throw Exception("Unexpected packet from server (expected Data, got " + String(Protocol::Server::toString(packet.type)) + ")", ErrorCodes::UNEXPECTED_PACKET_FROM_SERVER); @@ -819,7 +825,7 @@ private: if (!block_std_out) { String current_format = format; - + /// Формат может быть указан в запросе. if (ASTQueryWithOutput * query_with_output = dynamic_cast(&*parsed_query)) { @@ -831,10 +837,10 @@ private: current_format = id->name; } } - + if (has_vertical_output_suffix) current_format = "Vertical"; - + block_std_out = context.getFormatFactory().getOutput(current_format, std_out, block); block_std_out->writePrefix(); } diff --git a/dbms/src/Interpreters/Set.cpp b/dbms/src/Interpreters/Set.cpp index b5b9267d05e..fde59ecc66e 100644 --- a/dbms/src/Interpreters/Set.cpp +++ b/dbms/src/Interpreters/Set.cpp @@ -175,7 +175,7 @@ SetVariants::Type SetVariants::chooseMethod(const ConstColumnPlainPtrs & key_col template -size_t Set::insertFromBlockImplSmall( +size_t NO_INLINE Set::insertFromBlockImplSmall( Method & method, const ConstColumnPlainPtrs & key_columns, size_t start, @@ -206,7 +206,7 @@ size_t Set::insertFromBlockImplSmall( } template -size_t Set::insertFromBlockImplBig( +size_t NO_INLINE Set::insertFromBlockImplBig( Method & method, const ConstColumnPlainPtrs & key_columns, size_t start, @@ -574,7 +574,7 @@ void Set::execute(Block & block, const ColumnNumbers & arguments, size_t result, template -void Set::executeImpl( +void NO_INLINE Set::executeImpl( Method & method, const ConstColumnPlainPtrs & key_columns, ColumnUInt8::Container_t & vec_res, @@ -598,7 +598,7 @@ void Set::executeImpl( } template -void Set::executeArrayImpl( +void NO_INLINE Set::executeArrayImpl( Method & method, const ConstColumnPlainPtrs & key_columns, const ColumnArray::Offsets_t & offsets,