diff --git a/dbms/src/Client/Client.cpp b/dbms/src/Client/Client.cpp index 882f107ea87..88298b6801b 100644 --- a/dbms/src/Client/Client.cpp +++ b/dbms/src/Client/Client.cpp @@ -468,6 +468,15 @@ private: written_first_block = false; const ASTSetQuery * set_query = dynamic_cast(&*parsed_query); + const ASTUseQuery * use_query = dynamic_cast(&*parsed_query); + /// Запрос INSERT (но только тот, что требует передачи данных - не INSERT SELECT), обрабатывается отдельным способом. + const ASTInsertQuery * insert = dynamic_cast(&*parsed_query); + + if (insert && !insert->select) + processInsertQuery(); + else + processOrdinaryQuery(); + if (set_query) { /// Запоминаем все изменения в настройках, чтобы не потерять их при разрыве соединения. @@ -480,7 +489,6 @@ private: } } - const ASTUseQuery * use_query = dynamic_cast(&*parsed_query); if (use_query) { const String & new_database = use_query->database; @@ -490,14 +498,6 @@ private: connection->setDefaultDatabase(new_database); } - /// Запрос INSERT (но только тот, что требует передачи данных - не INSERT SELECT), обрабатывается отдельным способом. - const ASTInsertQuery * insert = dynamic_cast(&*parsed_query); - - if (insert && !insert->select) - processInsertQuery(); - else - processOrdinaryQuery(); - if (is_interactive) { std::cout << std::endl