diff options
author | robot-piglet <[email protected]> | 2025-04-11 16:44:11 +0300 |
---|---|---|
committer | robot-piglet <[email protected]> | 2025-04-11 16:56:11 +0300 |
commit | ffa276d35af2cc7ab17b850915674b60900c8b56 (patch) | |
tree | eb3b77562dec7a5788750bd9ee20de349d7ed62c | |
parent | ffefd3fa4ce2156e7e3af1a33abe2c422584433a (diff) |
Intermediate changes
commit_hash:2f615b4a2a2726593dd70b36499819265862155f
-rw-r--r-- | yql/essentials/tools/yql_complete/yql_complete.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/yql/essentials/tools/yql_complete/yql_complete.cpp b/yql/essentials/tools/yql_complete/yql_complete.cpp index 0d592240ebf..18e57492282 100644 --- a/yql/essentials/tools/yql_complete/yql_complete.cpp +++ b/yql/essentials/tools/yql_complete/yql_complete.cpp @@ -38,9 +38,11 @@ int Run(int argc, char* argv[]) { NLastGetopt::TOpts opts = NLastGetopt::TOpts::Default(); TString inFileName; + TString inQueryText; TString freqFileName; TMaybe<ui64> pos; opts.AddLongOption('i', "input", "input file").RequiredArgument("input").StoreResult(&inFileName); + opts.AddLongOption('q', "query", "input query text").RequiredArgument("query").StoreResult(&inQueryText); opts.AddLongOption('f', "freq", "frequences file").StoreResult(&freqFileName); opts.AddLongOption('p', "pos", "position").StoreResult(&pos); opts.SetFreeArgsNum(0); @@ -48,12 +50,21 @@ int Run(int argc, char* argv[]) { NLastGetopt::TOptsParseResult res(&opts, argc, argv); - THolder<TUnbufferedFileInput> inFile; - if (!inFileName.empty()) { - inFile.Reset(new TUnbufferedFileInput(inFileName)); + if (res.Has("input") && res.Has("query")) { + ythrow yexception() << "use either 'input' or 'query', not both"; + } + + TString queryString; + if (res.Has("query")) { + queryString = std::move(inQueryText); + } else { + THolder<TUnbufferedFileInput> inFile; + if (!inFileName.empty()) { + inFile.Reset(new TUnbufferedFileInput(inFileName)); + } + IInputStream& in = inFile ? *inFile.Get() : Cin; + queryString = in.ReadAll(); } - IInputStream& in = inFile ? *inFile.Get() : Cin; - auto queryString = in.ReadAll(); NSQLComplete::IRanking::TPtr ranking; if (freqFileName.empty()) { |