Skip to content

Commit

Permalink
YQ-3150: BAD_REQUEST for external data source (#4221)
Browse files Browse the repository at this point in the history
  • Loading branch information
alchizhevsky authored May 28, 2024
1 parent f186070 commit c2d7d6f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
7 changes: 6 additions & 1 deletion ydb/core/kqp/gateway/kqp_metadata_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,12 @@ NThreading::TFuture<TTableMetadataResult> TKqpTableMetadataLoader::LoadTableMeta
const bool resolveEntityInsideDataSource = (cluster != Cluster);
// resolveEntityInsideDataSource => entry.Kind == EKind::KindExternalDataSource
if (resolveEntityInsideDataSource && entry.Kind != EKind::KindExternalDataSource) {
throw yexception() << "\"" << CombinePath(entry.Path.begin(), entry.Path.end()) << "\" is expected to be external data source";
const auto message = TStringBuilder()
<< "\"" << CombinePath(entry.Path.begin(), entry.Path.end())
<< "\" is expected to be external data source";

promise.SetValue(ResultFromError<TResult>(YqlIssue({}, TIssuesIds::KIKIMR_BAD_REQUEST, message)));
return;
}

switch (entry.Kind) {
Expand Down
4 changes: 2 additions & 2 deletions ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1579,7 +1579,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {

auto db = kikimr->GetQueryClient();
auto queryExecutionOperation = db.ExecuteQuery(sql, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync();
UNIT_ASSERT_VALUES_UNEQUAL_C(queryExecutionOperation.GetStatus(), EStatus::SUCCESS, queryExecutionOperation.GetIssues().ToString());
UNIT_ASSERT_EQUAL_C(queryExecutionOperation.GetStatus(), EStatus::BAD_REQUEST, static_cast<int>(queryExecutionOperation.GetStatus()) << ", " << queryExecutionOperation.GetIssues().ToString());
UNIT_ASSERT_STRING_CONTAINS(queryExecutionOperation.GetIssues().ToString(), "\"/Root/external_table\" is expected to be external data source");
}

Expand All @@ -1600,7 +1600,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {

auto db = kikimr->GetQueryClient();
auto queryExecutionOperation = db.ExecuteQuery(sql, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync();
UNIT_ASSERT_VALUES_UNEQUAL_C(queryExecutionOperation.GetStatus(), EStatus::SUCCESS, queryExecutionOperation.GetIssues().ToString());
UNIT_ASSERT_EQUAL_C(queryExecutionOperation.GetStatus(), EStatus::BAD_REQUEST, static_cast<int>(queryExecutionOperation.GetStatus()) << ", " << queryExecutionOperation.GetIssues().ToString());
UNIT_ASSERT_STRING_CONTAINS(queryExecutionOperation.GetIssues().ToString(), "\"/Root/external_table\" is expected to be external data source");
}
}
Expand Down

0 comments on commit c2d7d6f

Please sign in to comment.