Skip to content

Commit

Permalink
Printable status & results (ydb-platform#2446)
Browse files Browse the repository at this point in the history
  • Loading branch information
CyberROFL authored Mar 6, 2024
1 parent 30387be commit 8945dcc
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 5 deletions.
47 changes: 43 additions & 4 deletions ydb/public/sdk/cpp/client/ydb_scheme/scheme.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include <ydb/public/api/protos/ydb_scheme.pb.h>
#include <ydb/public/sdk/cpp/client/ydb_common_client/impl/client.h>

#include <util/string/join.h>

namespace NYdb {
namespace NScheme {

Expand All @@ -31,10 +33,10 @@ TString TVirtualTimestamp::ToString() const {
return result;
}

void TVirtualTimestamp::Out(IOutputStream& o) const {
o << "{ plan_step: " << PlanStep
<< ", tx_id: " << TxId
<< " }";
void TVirtualTimestamp::Out(IOutputStream& out) const {
out << "{ plan_step: " << PlanStep
<< ", tx_id: " << TxId
<< " }";
}

bool TVirtualTimestamp::operator<(const TVirtualTimestamp& rhs) const {
Expand Down Expand Up @@ -109,6 +111,15 @@ TSchemeEntry::TSchemeEntry(const ::Ydb::Scheme::Entry& proto)
PermissionToSchemeEntry(proto.permissions(), &Permissions);
}

void TSchemeEntry::Out(IOutputStream& out) const {
out << "{ name: " << Name
<< ", owner: " << Owner
<< ", type: " << Type
<< ", size_bytes: " << SizeBytes
<< ", created_at: " << CreatedAt
<< " }";
}

class TSchemeClient::TImpl : public TClientImplCommon<TSchemeClient::TImpl> {
public:
TImpl(std::shared_ptr<TGRpcConnectionsImpl>&& connections, const TCommonClientSettings& settings)
Expand Down Expand Up @@ -250,6 +261,14 @@ const TSchemeEntry& TDescribePathResult::GetEntry() const {
return Entry_;
}

void TDescribePathResult::Out(IOutputStream& out) const {
if (IsSuccess()) {
return Entry_.Out(out);
} else {
return TStatus::Out(out);
}
}

////////////////////////////////////////////////////////////////////////////////

TListDirectoryResult::TListDirectoryResult(TStatus&& status, const TSchemeEntry& self, TVector<TSchemeEntry>&& children)
Expand All @@ -262,6 +281,14 @@ const TVector<TSchemeEntry>& TListDirectoryResult::GetChildren() const {
return Children_;
}

void TListDirectoryResult::Out(IOutputStream& out) const {
if (IsSuccess()) {
out << "{ children [" << JoinSeq(", ", Children_) << "] }";
} else {
return TStatus::Out(out);
}
}

////////////////////////////////////////////////////////////////////////////////

TSchemeClient::TSchemeClient(const TDriver& driver, const TCommonClientSettings& settings)
Expand Down Expand Up @@ -298,3 +325,15 @@ TAsyncStatus TSchemeClient::ModifyPermissions(const TString& path,
Y_DECLARE_OUT_SPEC(, NYdb::NScheme::TVirtualTimestamp, o, x) {
return x.Out(o);
}

Y_DECLARE_OUT_SPEC(, NYdb::NScheme::TSchemeEntry, o, x) {
return x.Out(o);
}

Y_DECLARE_OUT_SPEC(, NYdb::NScheme::TDescribePathResult, o, x) {
return x.Out(o);
}

Y_DECLARE_OUT_SPEC(, NYdb::NScheme::TListDirectoryResult, o, x) {
return x.Out(o);
}
8 changes: 7 additions & 1 deletion ydb/public/sdk/cpp/client/ydb_scheme/scheme.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ struct TVirtualTimestamp {
TVirtualTimestamp(const ::Ydb::VirtualTimestamp& proto);

TString ToString() const;
void Out(IOutputStream& o) const;
void Out(IOutputStream& out) const;

bool operator<(const TVirtualTimestamp& rhs) const;
bool operator<=(const TVirtualTimestamp& rhs) const;
Expand All @@ -75,6 +75,8 @@ struct TSchemeEntry {

TSchemeEntry() = default;
TSchemeEntry(const ::Ydb::Scheme::Entry& proto);

void Out(IOutputStream& out) const;
};

////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -163,6 +165,8 @@ class TDescribePathResult : public TStatus {
TDescribePathResult(TStatus&& status, const TSchemeEntry& entry);
const TSchemeEntry& GetEntry() const;

void Out(IOutputStream& out) const;

private:
TSchemeEntry Entry_;
};
Expand All @@ -172,6 +176,8 @@ class TListDirectoryResult : public TDescribePathResult {
TListDirectoryResult(TStatus&& status, const TSchemeEntry& self, TVector<TSchemeEntry>&& children);
const TVector<TSchemeEntry>& GetChildren() const;

void Out(IOutputStream& out) const;

private:
TVector<TSchemeEntry> Children_;
};
Expand Down
8 changes: 8 additions & 0 deletions ydb/public/sdk/cpp/client/ydb_table/table.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2849,3 +2849,11 @@ TReadRowsResult::TReadRowsResult(TStatus&& status, TResultSet&& resultSet)

} // namespace NTable
} // namespace NYdb

Y_DECLARE_OUT_SPEC(, NYdb::NTable::TCreateSessionResult, o, x) {
return x.Out(o);
}

Y_DECLARE_OUT_SPEC(, NYdb::NTable::TDescribeTableResult, o, x) {
return x.Out(o);
}
8 changes: 8 additions & 0 deletions ydb/public/sdk/cpp/client/ydb_topic/impl/topic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -480,3 +480,11 @@ TAsyncStatus TTopicClient::CommitOffset(const TString& path, ui64 partitionId, c
}

} // namespace NYdb::NTopic

Y_DECLARE_OUT_SPEC(, NYdb::NTopic::TDescribeTopicResult, o, x) {
return x.Out(o);
}

Y_DECLARE_OUT_SPEC(, NYdb::NTopic::TDescribeConsumerResult, o, x) {
return x.Out(o);
}
10 changes: 10 additions & 0 deletions ydb/public/sdk/cpp/client/ydb_types/status/status.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@ float TStatus::GetConsumedRu() const {
return Impl_->Status.ConstInfo.consumed_units();
}

void TStatus::Out(IOutputStream& out) const {
out << "{ status: " << GetStatus()
<< ", issues: " << GetIssues().ToOneLineString()
<< " }";
}

IOutputStream& operator<<(IOutputStream& out, const TStatus& st) {
out << "Status: " << st.GetStatus() << Endl;
if (st.GetIssues()) {
Expand All @@ -92,3 +98,7 @@ bool TStreamPartStatus::EOS() const {
}

} // namespace NYdb

Y_DECLARE_OUT_SPEC(, NYdb::TStatus, o, x) {
return x.Out(o);
}
1 change: 1 addition & 0 deletions ydb/public/sdk/cpp/client/ydb_types/status/status.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class TStatus {
const std::multimap<TStringType, TStringType>& GetResponseMetadata() const;
float GetConsumedRu() const;

void Out(IOutputStream& out) const;
friend IOutputStream& operator<<(IOutputStream& out, const TStatus& st);

protected:
Expand Down

0 comments on commit 8945dcc

Please sign in to comment.