#include #include #include #include #include #include #include #include #include #include #include #include #include #include using Poco::SharedPtr; int main(int argc, char ** argv) { try { /// Заранее инициализируем DateLUT, чтобы первая инициализация потом не влияла на измеряемую скорость выполнения. Yandex::DateLUTSingleton::instance(); DB::Context context; context.setPath("./"); DB::loadMetadata(context); context.addDatabase("system"); context.addTable("system", "one", (new DB::StorageSystemOne("one"))->thisPtr()); context.addTable("system", "numbers", (new DB::StorageSystemNumbers("numbers"))->thisPtr()); context.setCurrentDatabase("default"); DB::ReadBufferFromIStream in(std::cin); DB::WriteBufferFromOStream out(std::cout); DB::BlockInputStreamPtr query_plan; DB::executeQuery(in, out, context, query_plan); if (query_plan) { /* std::cerr << std::endl; query_plan->dumpTreeWithProfile(std::cerr);*/ std::cerr << std::endl; query_plan->dumpTree(std::cerr); std::cerr << std::endl; } } catch (const DB::Exception & e) { std::cerr << e.what() << ", " << e.displayText() << std::endl << std::endl << "Stack trace:" << std::endl << e.getStackTrace().toString(); return 1; } return 0; }