```
milovidov@milovidov-desktop:~/work/ClickHouse$ build/utils/db-generator/query_db_generator 
^C
milovidov@milovidov-desktop:~/work/ClickHouse$ build/utils/db-generator/query_db_generator --help
^C
milovidov@milovidov-desktop:~/work/ClickHouse$ build/utils/db-generator/query_db_generator < query.sql 
milovidov@milovidov-desktop:~/work/ClickHouse$ build/utils/db-generator/query_db_generator query.sql 
^C
```

{
            if (no_indent)
            {
                std::ostringstream ss;
                formatAST(*ch, ss);
                auto r = func_to_return_type[boost::algorithm::to_lower_copy(x->name)];
                r.value = ss.str();
                return r;
            }
            return func_to_return_type[boost::algorithm::to_lower_copy(x->name)];
        }
        else if (func_to_param_type.count(
            boost::algorithm::to_lower_copy(x->name)))
        {
            if (no_indent)
            {
                std::ostringstream ss;
                formatAST(*ch, ss);
                return FuncRet(
                        func_to_param_type[boost::algorithm::to_lower_copy(x->name)],
                        ss.str());
            }
            return FuncRet(
                    func_to_param_type[boost::algorithm::to_lower_copy(x->name)],
                    "");
        }
    }
    return FuncRet();
}
void processFunc(DB::ASTPtr ch, std::map<std::string, Column> & columns)