@@ -1788,6 +1788,47 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
1788
1788
Y_UNIT_TEST (ExecuteScriptWithLargeFile) {
1789
1789
ExecuteSelectQuery (" test_bucket_execute_script_with_large_file" , 5_MB, 500000 );
1790
1790
}
1791
+
1792
+ Y_UNIT_TEST (TestReadEmptyFileWithCsvFormat) {
1793
+ const TString externalDataSourceName = " /Root/external_data_source" ;
1794
+ const TString bucket = " test_bucket1" ;
1795
+
1796
+ CreateBucketWithObject (bucket, " test_object" , " " );
1797
+
1798
+ auto kikimr = NTestUtils::MakeKikimrRunner ();
1799
+
1800
+ auto tc = kikimr->GetTableClient ();
1801
+ auto session = tc.CreateSession ().GetValueSync ().GetSession ();
1802
+ const TString query = fmt::format (R"(
1803
+ CREATE EXTERNAL DATA SOURCE `{external_source}` WITH (
1804
+ SOURCE_TYPE="ObjectStorage",
1805
+ LOCATION="{location}",
1806
+ AUTH_METHOD="NONE"
1807
+ );)" ,
1808
+ " external_source" _a = externalDataSourceName,
1809
+ " location" _a = GetBucketLocation (bucket)
1810
+ );
1811
+ auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
1812
+ UNIT_ASSERT_C (result.GetStatus () == NYdb::EStatus::SUCCESS, result.GetIssues ().ToString ());
1813
+
1814
+ const TString sql = fmt::format (R"(
1815
+ SELECT * FROM `{external_source}`.`/`
1816
+ WITH (
1817
+ SCHEMA = (
1818
+ data String
1819
+ ),
1820
+ FORMAT = "csv_with_names"
1821
+ )
1822
+ )" , " external_source" _a=externalDataSourceName);
1823
+
1824
+ auto db = kikimr->GetQueryClient ();
1825
+ auto scriptExecutionOperation = db.ExecuteScript (sql).ExtractValueSync ();
1826
+ UNIT_ASSERT_VALUES_EQUAL_C (scriptExecutionOperation.Status ().GetStatus (), EStatus::SUCCESS, scriptExecutionOperation.Status ().GetIssues ().ToString ());
1827
+ UNIT_ASSERT (scriptExecutionOperation.Metadata ().ExecutionId );
1828
+
1829
+ NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation (scriptExecutionOperation.Id (), kikimr->GetDriver ());
1830
+ UNIT_ASSERT_EQUAL_C (readyOp.Metadata ().ExecStatus , EExecStatus::Completed, readyOp.Status ().GetIssues ().ToString ());
1831
+ }
1791
1832
}
1792
1833
1793
1834
} // namespace NKikimr::NKqp
0 commit comments