Browse Source

Added csv and tsv formats to yql command params

Added csv and tsv formats to yql command params

Pull Request resolved: #327
Bulat Gayazov 1 year ago
parent
commit
979c077893

+ 3 - 1
ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp

@@ -49,6 +49,8 @@ void TCommandExecuteYqlScript::Config(TConfig& config) {
         EOutputFormat::JsonUnicode,
         EOutputFormat::JsonUnicode,
         EOutputFormat::JsonBase64,
         EOutputFormat::JsonBase64,
         EOutputFormat::Raw,
         EOutputFormat::Raw,
+        EOutputFormat::Csv,
+        EOutputFormat::Tsv
     }, {
     }, {
         EOutputFormat::NoFraming,
         EOutputFormat::NoFraming,
         EOutputFormat::NewlineDelimited
         EOutputFormat::NewlineDelimited
@@ -110,7 +112,7 @@ int TCommandExecuteYqlScript::Run(TConfig& config) {
             ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
             ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
                 ExplainQuery(config, Script, NScripting::ExplainYqlRequestMode::Validate));
                 ExplainQuery(config, Script, NScripting::ExplainYqlRequestMode::Validate));
             THolder<TParamsBuilder> paramBuilder;
             THolder<TParamsBuilder> paramBuilder;
-            while (GetNextParams(ValidateResult->GetParameterTypes(), InputFormat, StdinFormat, FramingFormat, paramBuilder)) {
+            while (GetNextParams(paramBuilder)) {
                 auto asyncResult = client.ExecuteYqlScript(
                 auto asyncResult = client.ExecuteYqlScript(
                         Script,
                         Script,
                         paramBuilder->Build(),
                         paramBuilder->Build(),

+ 1 - 1
ydb/public/lib/ydb_cli/commands/ydb_service_scripting.h

@@ -15,7 +15,7 @@ public:
     TCommandScripting();
     TCommandScripting();
 };
 };
 
 
-class TCommandExecuteYqlScript : public TYdbOperationCommand, public TCommandWithFormat,
+class TCommandExecuteYqlScript : public TYdbOperationCommand,
     public TCommandWithResponseHeaders, TCommandWithParameters
     public TCommandWithResponseHeaders, TCommandWithParameters
 {
 {
 public:
 public:

+ 4 - 2
ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp

@@ -378,6 +378,8 @@ void TCommandExecuteQuery::Config(TConfig& config) {
         EOutputFormat::JsonUnicode,
         EOutputFormat::JsonUnicode,
         EOutputFormat::JsonBase64,
         EOutputFormat::JsonBase64,
         EOutputFormat::Raw,
         EOutputFormat::Raw,
+        EOutputFormat::Csv,
+        EOutputFormat::Tsv,
     }, {
     }, {
         EOutputFormat::NoFraming,
         EOutputFormat::NoFraming,
         EOutputFormat::NewlineDelimited
         EOutputFormat::NewlineDelimited
@@ -449,7 +451,7 @@ int TCommandExecuteQuery::ExecuteDataQuery(TConfig& config) {
         ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
         ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
             ExplainQuery(config, Query, NScripting::ExplainYqlRequestMode::Validate));
             ExplainQuery(config, Query, NScripting::ExplainYqlRequestMode::Validate));
         THolder<TParamsBuilder> paramBuilder;
         THolder<TParamsBuilder> paramBuilder;
-        while (GetNextParams(ValidateResult->GetParameterTypes(), InputFormat, StdinFormat, FramingFormat, paramBuilder)) {
+        while (GetNextParams(paramBuilder)) {
             TParams params = paramBuilder->Build();
             TParams params = paramBuilder->Build();
             auto operation = [this, &txSettings, &params, &settings, &asyncResult](NTable::TSession session) {
             auto operation = [this, &txSettings, &params, &settings, &asyncResult](NTable::TSession session) {
                 auto promise = NThreading::NewPromise<NTable::TDataQueryResult>();
                 auto promise = NThreading::NewPromise<NTable::TDataQueryResult>();
@@ -533,7 +535,7 @@ int TCommandExecuteQuery::ExecuteScanQuery(TConfig& config) {
         ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
         ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
             ExplainQuery(config, Query, NScripting::ExplainYqlRequestMode::Validate));
             ExplainQuery(config, Query, NScripting::ExplainYqlRequestMode::Validate));
         THolder<TParamsBuilder> paramBuilder;
         THolder<TParamsBuilder> paramBuilder;
-        while (GetNextParams(ValidateResult->GetParameterTypes(), InputFormat, StdinFormat, FramingFormat, paramBuilder)) {
+        while (GetNextParams(paramBuilder)) {
             auto operation = [this, &paramBuilder, &settings, &asyncResult](NTable::TTableClient client) {
             auto operation = [this, &paramBuilder, &settings, &asyncResult](NTable::TTableClient client) {
                 auto promise = NThreading::NewPromise<NTable::TScanQueryPartIterator>();
                 auto promise = NThreading::NewPromise<NTable::TScanQueryPartIterator>();
                 asyncResult = promise.GetFuture();
                 asyncResult = promise.GetFuture();

+ 1 - 1
ydb/public/lib/ydb_cli/commands/ydb_service_table.h

@@ -92,7 +92,7 @@ protected:
 };
 };
 
 
 class TCommandExecuteQuery : public TTableCommand, TCommandQueryBase, TCommandWithParameters,
 class TCommandExecuteQuery : public TTableCommand, TCommandQueryBase, TCommandWithParameters,
-    public TCommandWithFormat, public TInterruptibleCommand
+    public TInterruptibleCommand
 {
 {
 public:
 public:
     TCommandExecuteQuery();
     TCommandExecuteQuery();

+ 3 - 3
ydb/public/lib/ydb_cli/commands/ydb_yql.cpp

@@ -50,6 +50,8 @@ void TCommandYql::Config(TConfig& config) {
         EOutputFormat::JsonUnicode,
         EOutputFormat::JsonUnicode,
         EOutputFormat::JsonBase64,
         EOutputFormat::JsonBase64,
         EOutputFormat::Raw,
         EOutputFormat::Raw,
+        EOutputFormat::Csv,
+        EOutputFormat::Tsv
     }, {
     }, {
         EOutputFormat::NoFraming,
         EOutputFormat::NoFraming,
         EOutputFormat::NewlineDelimited
         EOutputFormat::NewlineDelimited
@@ -92,9 +94,7 @@ int TCommandYql::RunCommand(TConfig& config, const TString &script) {
         ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
         ValidateResult = MakeHolder<NScripting::TExplainYqlResult>(
             ExplainQuery(config, Script, NScripting::ExplainYqlRequestMode::Validate));
             ExplainQuery(config, Script, NScripting::ExplainYqlRequestMode::Validate));
         THolder<TParamsBuilder> paramBuilder;
         THolder<TParamsBuilder> paramBuilder;
-        while (!IsInterrupted() &&
-            GetNextParams(ValidateResult->GetParameterTypes(), InputFormat, StdinFormat, FramingFormat, paramBuilder)) {
-
+        while (!IsInterrupted() && GetNextParams(paramBuilder)) {
             auto asyncResult = client.StreamExecuteYqlScript(
             auto asyncResult = client.StreamExecuteYqlScript(
                     script,
                     script,
                     paramBuilder->Build(),
                     paramBuilder->Build(),

+ 1 - 1
ydb/public/lib/ydb_cli/commands/ydb_yql.h

@@ -12,7 +12,7 @@ namespace NYdb {
 namespace NConsoleClient {
 namespace NConsoleClient {
 
 
 class TCommandYql : public TYdbOperationCommand, public TCommandWithParameters,
 class TCommandYql : public TYdbOperationCommand, public TCommandWithParameters,
-    public TCommandWithFormat, public TInterruptibleCommand
+    public TInterruptibleCommand
 {
 {
 public:
 public:
     TCommandYql();
     TCommandYql();

+ 3 - 0
ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt

@@ -28,6 +28,7 @@ target_link_libraries(common PUBLIC
   library-cpp-getopt
   library-cpp-getopt
   cpp-json-writer
   cpp-json-writer
   cpp-yaml-as
   cpp-yaml-as
+  cpp-string_utils-csv
   public-lib-json_value
   public-lib-json_value
   public-lib-operation_id
   public-lib-operation_id
   public-lib-yson_value
   public-lib-yson_value
@@ -44,11 +45,13 @@ target_sources(common PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/csv_parser.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameter_stream.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp

+ 3 - 0
ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt

@@ -29,6 +29,7 @@ target_link_libraries(common PUBLIC
   library-cpp-getopt
   library-cpp-getopt
   cpp-json-writer
   cpp-json-writer
   cpp-yaml-as
   cpp-yaml-as
+  cpp-string_utils-csv
   public-lib-json_value
   public-lib-json_value
   public-lib-operation_id
   public-lib-operation_id
   public-lib-yson_value
   public-lib-yson_value
@@ -45,11 +46,13 @@ target_sources(common PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/csv_parser.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameter_stream.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp

+ 3 - 0
ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt

@@ -29,6 +29,7 @@ target_link_libraries(common PUBLIC
   library-cpp-getopt
   library-cpp-getopt
   cpp-json-writer
   cpp-json-writer
   cpp-yaml-as
   cpp-yaml-as
+  cpp-string_utils-csv
   public-lib-json_value
   public-lib-json_value
   public-lib-operation_id
   public-lib-operation_id
   public-lib-yson_value
   public-lib-yson_value
@@ -45,11 +46,13 @@ target_sources(common PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/csv_parser.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameter_stream.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp

+ 3 - 0
ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt

@@ -28,6 +28,7 @@ target_link_libraries(common PUBLIC
   library-cpp-getopt
   library-cpp-getopt
   cpp-json-writer
   cpp-json-writer
   cpp-yaml-as
   cpp-yaml-as
+  cpp-string_utils-csv
   public-lib-json_value
   public-lib-json_value
   public-lib-operation_id
   public-lib-operation_id
   public-lib-yson_value
   public-lib-yson_value
@@ -44,11 +45,13 @@ target_sources(common PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/csv_parser.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameter_stream.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp
   ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp

Some files were not shown because too many files changed in this diff