Skip to content

Commit 946dafd

Browse files
committed
Filled DatabaseName in SchemeCache requests
1 parent 37a059c commit 946dafd

24 files changed

+108
-60
lines changed

ydb/core/discovery/discovery.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,7 @@ class TDiscoverer: public TActorBootstrapped<TDiscoverer> {
751751
<< ": path# " << id);
752752

753753
auto request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
754+
request->DatabaseName = CanonizePath(AppData()->DomainsInfo->GetDomain()->Name);
754755

755756
auto& entry = request->ResultSet.emplace_back();
756757
entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpPath;

ydb/core/graph/service/service_impl.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ class TGraphService : public TActor<TGraphService> {
5757

5858
BLOG_D("ResolveDatabase " << Database);
5959
TAutoPtr<NSchemeCache::TSchemeCacheNavigate> request(new NSchemeCache::TSchemeCacheNavigate());
60+
request->DatabaseName = Database;
61+
6062
NSchemeCache::TSchemeCacheNavigate::TEntry entry;
6163
entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpList;
6264
entry.SyncVersion = false;

ydb/core/grpc_services/rpc_kh_describe.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ class TKikhouseDescribeTableRPC : public TActorBootstrapped<TKikhouseDescribeTab
106106
WaitingResolveReply = true;
107107
} else {
108108
TAutoPtr<NSchemeCache::TSchemeCacheNavigate> request(new NSchemeCache::TSchemeCacheNavigate());
109+
request->DatabaseName = CanonizePath(Request->GetDatabaseName().GetOrElse(""));
110+
109111
NSchemeCache::TSchemeCacheNavigate::TEntry entry;
110112
entry.Path = std::move(path);
111113
if (entry.Path.empty()) {

ydb/core/grpc_services/rpc_object_storage.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
133133
// TODO: check all params;
134134

135135
TAutoPtr<NSchemeCache::TSchemeCacheNavigate> request(new NSchemeCache::TSchemeCacheNavigate());
136+
request->DatabaseName = CanonizePath(GrpcRequest->GetDatabaseName().GetOrElse(""));
137+
136138
NSchemeCache::TSchemeCacheNavigate::TEntry entry;
137139
entry.Path = NKikimr::SplitPath(table);
138140
if (entry.Path.empty()) {
@@ -372,7 +374,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
372374
TString err;
373375

374376
bool filterParsedOk = CellsFromTuple(&filterType, columnValues, typesRef, true, false, cells, err, owner);
375-
377+
376378
if (!filterParsedOk) {
377379
ReplyWithError(Ydb::StatusIds::BAD_REQUEST, Sprintf("Invalid filter: '%s'", err.data()), ctx);
378380
return false;
@@ -545,7 +547,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
545547
ev->Record.SetPathColumnDelimiter(Request->Getpath_column_delimiter());
546548
ev->Record.SetSerializedStartAfterKeySuffix(StartAfterSuffixColumns.GetBuffer());
547549
ev->Record.SetMaxKeys(MaxKeys - ContentsRows.size() - CommonPrefixesRows.size());
548-
550+
549551
if (!CommonPrefixesRows.empty()) {
550552
// Next shard might have the same common prefix, need to skip it
551553
ev->Record.SetLastCommonPrefix(CommonPrefixesRows.back());
@@ -564,7 +566,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
564566

565567
if (!Filter.ColumnIds.empty()) {
566568
auto* filter = ev->Record.mutable_filter();
567-
569+
568570
for (const auto& colId : Filter.ColumnIds) {
569571
filter->add_columns(colId);
570572
}
@@ -624,7 +626,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
624626
afterLastFolderPrefix.Parse(prefixColumns);
625627

626628
auto& partitions = KeyRange->GetPartitions();
627-
629+
628630
for (CurrentShardIdx++; CurrentShardIdx < partitions.size(); CurrentShardIdx++) {
629631
auto& partition = KeyRange->GetPartitions()[CurrentShardIdx];
630632

@@ -693,7 +695,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
693695
shardResponse.GetMoreRows()) {
694696
if (!FindNextShard()) {
695697
ReplySuccess(ctx, (hasMoreShards && shardResponse.GetMoreRows()) || maxKeysExhausted);
696-
return;
698+
return;
697699
}
698700
MakeShardRequest(CurrentShardIdx, ctx);
699701
} else {
@@ -714,7 +716,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
714716
return NYdb::TTypeBuilder().Pg(getPgTypeFromColMeta(colMeta)).Build();
715717
case NScheme::NTypeIds::Decimal:
716718
return NYdb::TTypeBuilder().Decimal(NYdb::TDecimalType(
717-
typeInfo.GetDecimalType().GetPrecision(),
719+
typeInfo.GetDecimalType().GetPrecision(),
718720
typeInfo.GetDecimalType().GetScale()))
719721
.Build();
720722
default:
@@ -727,7 +729,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
727729
for (const auto& colMeta : columns) {
728730
const auto type = getTypeFromColMeta(colMeta);
729731
auto* col = resultSet.Addcolumns();
730-
732+
731733
*col->mutable_type()->mutable_optional_type()->mutable_item() = NYdb::TProtoAccessor::GetProto(type);
732734
*col->mutable_name() = colMeta.Name;
733735
}
@@ -754,7 +756,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
754756
Ydb::Value valueProto;
755757
valueProto.set_low_128(loHi.first);
756758
valueProto.set_high_128(loHi.second);
757-
const NYdb::TDecimalValue decimal(valueProto,
759+
const NYdb::TDecimalValue decimal(valueProto,
758760
{static_cast<ui8>(colMeta.PType.GetDecimalType().GetPrecision()), static_cast<ui8>(colMeta.PType.GetDecimalType().GetScale())});
759761
vb.Decimal(decimal);
760762
} else {
@@ -801,10 +803,10 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
801803
if (CommonPrefixesRows.size() > 0) {
802804
lastDirectory = CommonPrefixesRows[CommonPrefixesRows.size() - 1];
803805
}
804-
806+
805807
if (isTruncated && (lastDirectory || lastFile)) {
806808
NKikimrTxDataShard::TObjectStorageListingContinuationToken token;
807-
809+
808810
if (lastDirectory > lastFile) {
809811
token.set_last_path(lastDirectory);
810812
token.set_is_folder(true);
@@ -814,7 +816,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
814816
}
815817

816818
TString serializedToken = token.SerializeAsString();
817-
819+
818820
resp->set_next_continuation_token(serializedToken);
819821
}
820822

@@ -824,7 +826,7 @@ class TObjectStorageListingRequestGrpc : public TActorBootstrapped<TObjectStorag
824826
GrpcRequest->RaiseIssue(NYql::ExceptionToIssue(ex));
825827
GrpcRequest->ReplyWithYdbStatus(Ydb::StatusIds::INTERNAL_ERROR);
826828
}
827-
829+
828830
Finished = true;
829831
Die(ctx);
830832
}

ydb/core/grpc_services/rpc_rate_limiter_api.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ class TRateLimiterControlRequest : public TRateLimiterRequest<TRateLimiterContro
169169
}
170170

171171
auto req = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
172+
req->DatabaseName = CanonizePath(this->Request_->GetDatabaseName().GetOrElse(DatabaseFromDomain(AppData())));
172173
req->ResultSet.emplace_back();
173174
req->ResultSet.back().Path.swap(path);
174175
req->ResultSet.back().Operation = NSchemeCache::TSchemeCacheNavigate::OpPath;

ydb/core/grpc_services/rpc_read_columns.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ class TReadColumnsRPC : public TActorBootstrapped<TReadColumnsRPC> {
154154
WaitingResolveReply = true;
155155
} else {
156156
TAutoPtr<NSchemeCache::TSchemeCacheNavigate> request(new NSchemeCache::TSchemeCacheNavigate());
157+
request->DatabaseName = CanonizePath(Request->GetDatabaseName().GetOrElse(""));
158+
157159
NSchemeCache::TSchemeCacheNavigate::TEntry entry;
158160
entry.Path = std::move(path);
159161
if (entry.Path.empty()) {

ydb/core/grpc_services/rpc_read_rows.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,7 @@ class TReadRowsRPC : public TActorBootstrapped<TReadRowsRPC> {
360360
entry.SyncVersion = false;
361361
entry.ShowPrivatePath = false;
362362
auto request = std::make_unique<NSchemeCache::TSchemeCacheNavigate>();
363+
request->DatabaseName = CanonizePath(GetDatabase());
363364
request->ResultSet.emplace_back(entry);
364365
Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(request.release()), 0, 0, Span.GetTraceId());
365366
return true;

ydb/core/health_check/health_check.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,6 +1067,7 @@ class TSelfCheckRequest : public TActorBootstrapped<TSelfCheckRequest> {
10671067
[[nodiscard]] TRequestResponse<TEvTxProxySchemeCache::TEvNavigateKeySetResult> MakeRequestSchemeCacheNavigate(const TString& path, ui64 cookie) {
10681068
THolder<TSchemeCacheNavigate> request = MakeHolder<TSchemeCacheNavigate>();
10691069
request->Cookie = cookie;
1070+
request->DatabaseName = CanonizePath(AppData()->DomainsInfo->GetDomain()->Name);
10701071
TSchemeCacheNavigate::TEntry& entry = request->ResultSet.emplace_back();
10711072
entry.Path = NKikimr::SplitPath(path);
10721073
entry.Operation = TSchemeCacheNavigate::EOp::OpPath;
@@ -1080,6 +1081,7 @@ class TSelfCheckRequest : public TActorBootstrapped<TSelfCheckRequest> {
10801081
[[nodiscard]] TRequestResponse<TEvTxProxySchemeCache::TEvNavigateKeySetResult> MakeRequestSchemeCacheNavigate(const TPathId& pathId, ui64 cookie) {
10811082
THolder<TSchemeCacheNavigate> request = MakeHolder<TSchemeCacheNavigate>();
10821083
request->Cookie = cookie;
1084+
request->DatabaseName = CanonizePath(AppData()->DomainsInfo->GetDomain()->Name);
10831085
TSchemeCacheNavigate::TEntry& entry = request->ResultSet.emplace_back();
10841086
entry.TableId.PathId = pathId;
10851087
entry.RequestType = TSchemeCacheNavigate::TEntry::ERequestType::ByTableId;

ydb/core/kafka_proxy/actors/kafka_sasl_auth_actor.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ void TKafkaSaslAuthActor::SendDescribeRequest(const TActorContext& ctx) {
189189

190190
void TKafkaSaslAuthActor::GetPathByPathId(const TPathId& pathId, const TActorContext& ctx) {
191191
auto schemeCacheRequest = std::make_unique<NKikimr::NSchemeCache::TSchemeCacheNavigate>();
192+
schemeCacheRequest->DatabaseName = DatabasePath;
193+
192194
NKikimr::NSchemeCache::TSchemeCacheNavigate::TEntry entry;
193195
entry.TableId.PathId = pathId;
194196
entry.RequestType = NKikimr::NSchemeCache::TSchemeCacheNavigate::TEntry::ERequestType::ByTableId;

ydb/core/kqp/executer_actor/kqp_scheme_executer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ class TKqpSchemeExecuter : public TActorBootstrapped<TKqpSchemeExecuter> {
200200
AFL_ENSURE(dirPath.size() >= 2);
201201

202202
auto request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
203+
request->DatabaseName = Database;
203204
TVector<TString> path;
204205

205206
for (const auto& part : dirPath) {
@@ -564,7 +565,7 @@ class TKqpSchemeExecuter : public TActorBootstrapped<TKqpSchemeExecuter> {
564565
auto analyzePromise = NewPromise<IKqpGateway::TGenericResult>();
565566

566567
TVector<TString> columns{analyzeOperation.columns().begin(), analyzeOperation.columns().end()};
567-
IActor* analyzeActor = new TAnalyzeActor(analyzeOperation.GetTablePath(), columns, analyzePromise);
568+
IActor* analyzeActor = new TAnalyzeActor(Database, analyzeOperation.GetTablePath(), columns, analyzePromise);
568569

569570
auto actorSystem = TActivationContext::ActorSystem();
570571
RegisterWithSameMailbox(analyzeActor);

0 commit comments

Comments
 (0)