aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrgayazov <bulat@ydb.tech>2023-02-15 17:45:47 +0300
committerbrgayazov <bulat@ydb.tech>2023-02-15 17:45:47 +0300
commitf8152c3cdf4f8febc7e23330f4a6e620e5d74fb2 (patch)
tree762c0dac9364673ae9b4b457fdb55f2da3c038b5
parent9d0be9d2699a3894d0fcf446eb7364164b3b3a71 (diff)
downloadydb-f8152c3cdf4f8febc7e23330f4a6e620e5d74fb2.tar.gz
Fix bug with file in scripting yql command and add tests
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp6
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/result.json21
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_csv/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_json/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_impex.TestImpex.test_format_tsv/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_script_from_file/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_scripting.TestExecuteScriptWithParamsFromJson.test_stream_script_from_file/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_data_query_script_from_file/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/canondata/test_ydb_table.TestExecuteQueryWithParamsFromJson.test_scan_query_script_from_file/result.output5
-rw-r--r--ydb/tests/functional/ydb_cli/test_ydb_scripting.py15
-rw-r--r--ydb/tests/functional/ydb_cli/test_ydb_table.py15
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