diff options
author | brgayazov <bulat@ydb.tech> | 2023-02-15 17:45:47 +0300 |
---|---|---|
committer | brgayazov <bulat@ydb.tech> | 2023-02-15 17:45:47 +0300 |
commit | f8152c3cdf4f8febc7e23330f4a6e620e5d74fb2 (patch) | |
tree | 762c0dac9364673ae9b4b457fdb55f2da3c038b5 | |
parent | 9d0be9d2699a3894d0fcf446eb7364164b3b3a71 (diff) | |
download | ydb-f8152c3cdf4f8febc7e23330f4a6e620e5d74fb2.tar.gz |
Fix bug with file in scripting yql command and add tests
11 files changed, 65 insertions, 27 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp index 6c11ba616af..69918afc1bf 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp +++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp @@ -82,15 +82,15 @@ void TCommandExecuteYqlScript::Parse(TConfig& config) { throw TMisuseException() << "Both mutually exclusive options \"Text of script\" (\"--script\", \"-s\") " << "and \"Path to file with script text\" (\"--file\", \"-f\") were provided."; } + if (ScriptFile) { + Script = ReadFromFile(ScriptFile, "script"); + } ValidateResult = MakeHolder<NScripting::TExplainYqlResult>( ExplainQuery(config, Script, NScripting::ExplainYqlRequestMode::Validate)); ParseParameters(config); } int TCommandExecuteYqlScript::Run(TConfig& config) { - if (ScriptFile) { - Script = ReadFromFile(ScriptFile, "script"); - } NScripting::TScriptingClient client(CreateDriver(config)); if (Explain) { diff --git a/ydb/tests/functional/ydb_cli/canondata/result.json b/ydb/tests/functional/ydb_cli/canondata/result.json index 0833d2a4f1e..c9fb9d9a4a7 100644 --- a/ydb/tests/functional/ydb_cli/canondata/result.json +++ b/ydb/tests/functional/ydb_cli/canondata/result.json @@ -1,13 +1,4 @@ { - "test_ydb_impex.TestImpex.test_format_csv": { - "uri": "file://test_ydb_impex.TestImpex.test_format_csv/result.output" - }, - "test_ydb_impex.TestImpex.test_format_json": { - "uri": "file://test_ydb_impex.TestImpex.test_format_json/result.output" - }, - "test_ydb_impex.TestImpex.test_format_tsv": { - "uri": "file://test_ydb_impex.TestImpex.test_format_tsv/result.output" - }, "test_ydb_scripting.TestExecuteScriptWithFormats.test_stream_yql_script_json_base64": { "uri": "file://test_ydb_scripting.TestExecuteScriptWithFormats.test_stream_yql_script_json_base64/result.output" }, @@ -59,6 +50,9 @@ "test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_multiple_files": { "uri": "file://test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_multiple_files/result.output" }, + "test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_script_from_file": { + "uri": "file://test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_script_from_file/result.output" + }, "test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_ignore_excess_parameters": { "uri": "file://test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_ignore_excess_parameters/result.output" }, @@ -68,6 +62,9 @@ "test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_multiple_files": { "uri": "file://test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_multiple_files/result.output" }, + "test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_script_from_file": { + "uri": "file://test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_script_from_file/result.output" + }, "test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_struct": { "uri": "file://test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_struct/result.output" }, @@ -239,6 +236,9 @@ "test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_multiple_files": { "uri": "file://test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_multiple_files/result.output" }, + "test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_script_from_file": { + "uri": "file://test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_script_from_file/result.output" + }, "test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_struct": { "uri": "file://test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_struct/result.output" }, @@ -257,6 +257,9 @@ "test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_multiple_files": { "uri": "file://test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_multiple_files/result.output" }, + "test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_script_from_file": { + "uri": "file://test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_script_from_file/result.output" + }, "test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_struct": { "uri": "file://test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_struct/result.output" }, diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_csv/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_csv/result.output deleted file mode 100644 index d900a075354..00000000000 --- a/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_csv/result.output +++ /dev/null @@ -1,5 +0,0 @@ -1,1111,"one" -2,2222,"two" -3,3333,"three" -5,5555,"five" -7,7777,"seven" diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_json/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_json/result.output deleted file mode 100644 index cead26df793..00000000000 --- a/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_json/result.output +++ /dev/null @@ -1,5 +0,0 @@ -{"key":1,"id":1111,"value":"one"} -{"key":2,"id":2222,"value":"two"} -{"key":3,"id":3333,"value":"three"} -{"key":5,"id":5555,"value":"five"} -{"key":7,"id":7777,"value":"seven"} diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_tsv/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_tsv/result.output deleted file mode 100644 index ebe43b48d1c..00000000000 --- a/ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_tsv/result.output +++ /dev/null @@ -1,5 +0,0 @@ -1 1111 "one" -2 2222 "two" -3 3333 "three" -5 5555 "five" -7 7777 "seven" diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_script_from_file/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_script_from_file/result.output new file mode 100644 index 00000000000..34c97cd8af7 --- /dev/null +++ b/ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_script_from_file/result.output @@ -0,0 +1,5 @@ +┌───┐ +| a | +├───┤ +| 3 | +└───┘ diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_script_from_file/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_script_from_file/result.output new file mode 100644 index 00000000000..34c97cd8af7 --- /dev/null +++ b/ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_script_from_file/result.output @@ -0,0 +1,5 @@ +┌───┐ +| a | +├───┤ +| 3 | +└───┘ diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_script_from_file/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_script_from_file/result.output new file mode 100644 index 00000000000..34c97cd8af7 --- /dev/null +++ b/ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_script_from_file/result.output @@ -0,0 +1,5 @@ +┌───┐ +| a | +├───┤ +| 3 | +└───┘ diff --git a/ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_script_from_file/result.output b/ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_script_from_file/result.output new file mode 100644 index 00000000000..34c97cd8af7 --- /dev/null +++ b/ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_script_from_file/result.output @@ -0,0 +1,5 @@ +┌───┐ +| a | +├───┤ +| 3 | +└───┘ diff --git a/ydb/tests/functional/ydb_cli/test_ydb_scripting.py b/ydb/tests/functional/ydb_cli/test_ydb_scripting.py index c20572ac99b..8e148fe21ea 100644 --- a/ydb/tests/functional/ydb_cli/test_ydb_scripting.py +++ b/ydb/tests/functional/ydb_cli/test_ydb_scripting.py @@ -300,6 +300,15 @@ class TestExecuteScriptWithParamsFromJson(BaseTestScriptingServiceWithDatabase): ) return self.canonical_result(output) + def script_from_file(self, command): + script = "DECLARE $a AS Uint64; " \ + "SELECT $a AS a; " + self.write_data(script, "script.yql") + output = self.execute_ydb_cli_command_with_db( + command + ["-f", "script.yql", "--param", "$a=3"] + ) + return self.canonical_result(output) + def test_uint32(self): return self.uint32(["scripting", "yql"]) @@ -318,6 +327,9 @@ class TestExecuteScriptWithParamsFromJson(BaseTestScriptingServiceWithDatabase): def test_ignore_excess_parameters(self): return self.ignore_excess_parameters(["scripting", "yql"]) + def test_script_from_file(self): + return self.script_from_file(["scripting", "yql"]) + def test_stream_uint32(self): return self.uint32(["yql"]) @@ -336,6 +348,9 @@ class TestExecuteScriptWithParamsFromJson(BaseTestScriptingServiceWithDatabase): def test_stream_ignore_excess_parameters(self): return self.ignore_excess_parameters(["yql"]) + def test_stream_script_from_file(self): + return self.script_from_file(["yql"]) + class TestExecuteScriptWithParamsFromStdin(BaseTestScriptingServiceWithDatabase): @classmethod diff --git a/ydb/tests/functional/ydb_cli/test_ydb_table.py b/ydb/tests/functional/ydb_cli/test_ydb_table.py index 0f6eb802255..47e4225a572 100644 --- a/ydb/tests/functional/ydb_cli/test_ydb_table.py +++ b/ydb/tests/functional/ydb_cli/test_ydb_table.py @@ -340,6 +340,15 @@ class TestExecuteQueryWithParamsFromJson(BaseTestTableService): ) return self.canonical_result(output) + def script_from_file(self, query_type): + query = "DECLARE $a AS Uint64; " \ + "SELECT $a AS a; " + self.write_data(query, "query.yql") + output = self.execute_ydb_cli_command( + ["table", "query", "execute", "-t", query_type, "-f", "query.yql", "--param", "$a=3"] + ) + return self.canonical_result(output) + def test_data_query_uint32(self): return self.uint32("data") @@ -358,6 +367,9 @@ class TestExecuteQueryWithParamsFromJson(BaseTestTableService): def test_data_ignore_excess_parameters(self): return self.ignore_excess_parameters("data") + def test_data_query_script_from_file(self): + return self.script_from_file("data") + def test_scan_query_uint32(self): return self.uint32("scan") @@ -376,6 +388,9 @@ class TestExecuteQueryWithParamsFromJson(BaseTestTableService): def test_scan_ignore_excess_parameters(self): return self.ignore_excess_parameters("scan") + def test_scan_query_script_from_file(self): + return self.script_from_file("scan") + class TestExecuteQueryWithParamsFromStdin(BaseTestTableService): @classmethod |