Skip to content

Commit 07141d3

Browse files
authored
Refactored yql_common (TIssue & TDecimal) (#334)
* Refactored yql_common (TIssue & TDecimal) * Refactor protos includes
1 parent 240e2d9 commit 07141d3

File tree

98 files changed

+876
-2305
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+876
-2305
lines changed

CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ if (YDB_SDK_EXAMPLES)
6161
endif()
6262

6363
if (YDB_SDK_TESTS)
64-
add_subdirectory(tests/unit)
65-
add_subdirectory(tests/integration)
64+
add_subdirectory(tests)
6665
endif()
6766

6867
if (YDB_SDK_INSTALL)

cmake/protos_public_headers.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
src/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h
21
src/api/grpc/draft/ydb_datastreams_v1.pb.h
3-
src/api/grpc/ydb_topic_v1.grpc.pb.h
42
src/api/grpc/ydb_topic_v1.pb.h
53
src/api/protos/annotations/validation.pb.h
64
src/api/protos/draft/datastreams.pb.h
@@ -19,6 +17,4 @@ src/api/protos/ydb_issue_message.pb.h
1917
src/api/protos/ydb_export.pb.h
2018
src/api/protos/ydb_coordination.pb.h
2119
src/api/protos/ydb_status_codes.pb.h
22-
src/api/protos/draft/ydb_replication.pb.h
23-
src/library/operation_id/protos/operation_id.pb.h
24-
src/library/yql_common/issue/protos/issue_severity.pb.h
20+
src/api/protos/draft/ydb_replication.pb.h

examples/basic_example/basic_example.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ void StreamQuerySelect(TQueryClient client) {
472472
}
473473
}
474474
}
475-
return TStatus(EStatus::SUCCESS, NYql::TIssues());
475+
return TStatus(EStatus::SUCCESS, NYdb::NIssue::TIssues());
476476
}));
477477

478478
}

include/ydb-cpp-sdk/client/datastreams/datastreams.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#include <ydb-cpp-sdk/client/table/table.h>
44

5-
#include <src/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h>
5+
#include <src/api/grpc/draft/ydb_datastreams_v1.pb.h>
66

77
namespace NYdb::NDataStreams::V1 {
88

include/ydb-cpp-sdk/client/discovery/discovery.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ struct TNodeInfo {
100100

101101
class TNodeRegistrationResult : public TStatus {
102102
public:
103-
TNodeRegistrationResult() : TStatus(EStatus::GENERIC_ERROR, NYql::TIssues()) {}
103+
TNodeRegistrationResult() : TStatus(EStatus::GENERIC_ERROR, NYdb::NIssue::TIssues()) {}
104104
TNodeRegistrationResult(TStatus&& status, const Ydb::Discovery::NodeRegistrationResult& proto);
105105
uint32_t GetNodeId() const;
106106
const std::string& GetDomainPath() const;

include/ydb-cpp-sdk/client/draft/ydb_replication.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ namespace NYdb {
1717
class TProtoAccessor;
1818
}
1919

20-
namespace NYql {
21-
class TIssues;
22-
}
23-
2420
namespace NYdb::NReplication {
2521

2622
class TDescribeReplicationResult;
@@ -94,9 +90,9 @@ class TErrorState {
9490
class TImpl;
9591

9692
public:
97-
explicit TErrorState(NYql::TIssues&& issues);
93+
explicit TErrorState(NYdb::NIssue::TIssues&& issues);
9894

99-
const NYql::TIssues& GetIssues() const;
95+
const NYdb::NIssue::TIssues& GetIssues() const;
10096

10197
private:
10298
std::shared_ptr<TImpl> Impl_;

include/ydb-cpp-sdk/client/draft/ydb_view.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ namespace NYdb {
1111
class TProtoAccessor;
1212
}
1313

14-
namespace NYql {
15-
class TIssues;
16-
}
17-
1814
namespace NYdb::NView {
1915

2016
class TDescribeViewResult;

include/ydb-cpp-sdk/client/types/status/status.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <ydb-cpp-sdk/client/types/fatal_error_handlers/handlers.h>
44
#include <ydb-cpp-sdk/client/types/ydb.h>
55

6-
#include <ydb-cpp-sdk/library/yql_common/issue/yql_issue.h>
6+
#include <ydb-cpp-sdk/library/issue/yql_issue.h>
77

88
#include <library/cpp/threading/future/future.h>
99

@@ -15,11 +15,11 @@ struct TPlainStatus;
1515
//! Represents status of call
1616
class TStatus {
1717
public:
18-
TStatus(EStatus statusCode, NYql::TIssues&& issues);
18+
TStatus(EStatus statusCode, NYdb::NIssue::TIssues&& issues);
1919
TStatus(TPlainStatus&& plain);
2020

2121
EStatus GetStatus() const;
22-
const NYql::TIssues& GetIssues() const;
22+
const NYdb::NIssue::TIssues& GetIssues() const;
2323
bool IsSuccess() const;
2424
bool IsTransportError() const;
2525
const std::string& GetEndpoint() const;

include/ydb-cpp-sdk/library/yql_common/issue/yql_issue.h renamed to include/ydb-cpp-sdk/library/issue/yql_issue.h

Lines changed: 26 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#pragma once
22

3-
#include "yql_issue_id.h"
4-
53
#include <util/generic/ptr.h>
64
#include <util/generic/yexception.h>
75
#include <util/stream/output.h>
@@ -13,11 +11,23 @@
1311

1412
#include <optional>
1513
#include <vector>
16-
#include <sstream>
1714
#include <string>
1815
#include <string_view>
1916

20-
namespace NYql {
17+
namespace NYdb::NIssue {
18+
19+
using TIssueCode = uint32_t;
20+
constexpr TIssueCode DEFAULT_ERROR = 0;
21+
constexpr TIssueCode UNEXPECTED_ERROR = 1;
22+
23+
enum class ESeverity : uint32_t {
24+
Fatal = 0,
25+
Error = 1,
26+
Warning = 2,
27+
Info = 3,
28+
};
29+
30+
std::string SeverityToString(ESeverity severity);
2131

2232
void SanitizeNonAscii(std::string& s);
2333

@@ -56,37 +66,6 @@ struct TPosition {
5666
}
5767
};
5868

59-
class TTextWalker {
60-
public:
61-
TTextWalker(TPosition& position, bool utf8Aware)
62-
: Position(position)
63-
, Utf8Aware(utf8Aware)
64-
, HaveCr(false)
65-
, LfCount(0)
66-
{
67-
}
68-
69-
static inline bool IsUtf8Intermediate(char c) {
70-
return (c & 0xC0) == 0x80;
71-
}
72-
73-
template<typename T>
74-
TTextWalker& Advance(const T& buf) {
75-
for (char c : buf) {
76-
Advance(c);
77-
}
78-
return *this;
79-
}
80-
81-
TTextWalker& Advance(char c);
82-
83-
private:
84-
TPosition& Position;
85-
const bool Utf8Aware;
86-
bool HaveCr;
87-
uint32_t LfCount;
88-
};
89-
9069
struct TRange {
9170
TPosition Position;
9271
TPosition EndPosition;
@@ -118,12 +97,12 @@ class TIssue;
11897
using TIssuePtr = TIntrusivePtr<TIssue>;
11998
class TIssue: public TThrRefBase {
12099
std::vector<TIntrusivePtr<TIssue>> Children_;
121-
TString Message;
100+
std::string Message;
122101
public:
123102
TPosition Position;
124103
TPosition EndPosition;
125104
TIssueCode IssueCode = 0U;
126-
ESeverity Severity = TSeverityIds::S_ERROR;
105+
ESeverity Severity = ESeverity::Error;
127106

128107
TIssue() = default;
129108

@@ -163,14 +142,7 @@ class TIssue: public TThrRefBase {
163142
&& IssueCode == other.IssueCode;
164143
}
165144

166-
ui64 Hash() const noexcept {
167-
return CombineHashes(
168-
CombineHashes(
169-
(size_t)CombineHashes(IntHash(Position.Row), IntHash(Position.Column)),
170-
std::hash<std::string>{}(Position.File)
171-
),
172-
(size_t)CombineHashes((size_t)IntHash(static_cast<int>(IssueCode)), std::hash<std::string>{}(Message)));
173-
}
145+
uint64_t Hash() const noexcept;
174146

175147
TIssue& SetCode(TIssueCode id, ESeverity severity) {
176148
IssueCode = id;
@@ -197,7 +169,8 @@ class TIssue: public TThrRefBase {
197169
}
198170

199171
TIssue& AddSubIssue(TIntrusivePtr<TIssue> issue) {
200-
Severity = (ESeverity)std::min((uint32_t)issue->GetSeverity(), (uint32_t)Severity);
172+
Severity = static_cast<ESeverity>(std::min(static_cast<uint32_t>(issue->GetSeverity()),
173+
static_cast<uint32_t>(Severity)));
201174
Children_.push_back(issue);
202175
return *this;
203176
}
@@ -215,7 +188,7 @@ class TIssue: public TThrRefBase {
215188
}
216189

217190
// Unsafe method. Doesn't call SanitizeNonAscii(Message)
218-
TString* MutableMessage() {
191+
std::string* MutableMessage() {
219192
return &Message;
220193
}
221194

@@ -359,20 +332,20 @@ std::optional<TPosition> TryParseTerminationMessage(std::string_view& message);
359332
} // namespace NYql
360333

361334
template <>
362-
void Out<NYql::TPosition>(IOutputStream& out, const NYql::TPosition& pos);
335+
void Out<NYdb::NIssue::TPosition>(IOutputStream& out, const NYdb::NIssue::TPosition& pos);
363336

364337
template <>
365-
void Out<NYql::TRange>(IOutputStream& out, const NYql::TRange& pos);
338+
void Out<NYdb::NIssue::TRange>(IOutputStream& out, const NYdb::NIssue::TRange& pos);
366339

367340
template <>
368-
void Out<NYql::TIssue>(IOutputStream& out, const NYql::TIssue& error);
341+
void Out<NYdb::NIssue::TIssue>(IOutputStream& out, const NYdb::NIssue::TIssue& error);
369342

370343
template <>
371-
void Out<NYql::TIssues>(IOutputStream& out, const NYql::TIssues& error);
344+
void Out<NYdb::NIssue::TIssues>(IOutputStream& out, const NYdb::NIssue::TIssues& error);
372345

373346
template <>
374-
struct THash<NYql::TIssue> {
375-
inline size_t operator()(const NYql::TIssue& err) const {
347+
struct THash<NYdb::NIssue::TIssue> {
348+
inline size_t operator()(const NYdb::NIssue::TIssue& err) const {
376349
return err.Hash();
377350
}
378351
};

include/ydb-cpp-sdk/library/yql_common/issue/yql_issue_id.h

Lines changed: 0 additions & 14 deletions
This file was deleted.

include/ydb-cpp-sdk/library/yql_common/utils/utf8.h

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/client/coordination/coordination.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -660,8 +660,8 @@ class TSessionContext : public TThrRefBase {
660660
Ydb::StatusIds::StatusCode protoStatus,
661661
const google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>& protoIssues) const
662662
{
663-
NYql::TIssues issues;
664-
NYql::IssuesFromMessage(protoIssues, issues);
663+
NYdb::NIssue::TIssues issues;
664+
NYdb::NIssue::IssuesFromMessage(protoIssues, issues);
665665
return TPlainStatus(static_cast<EStatus>(protoStatus), std::move(issues));
666666
}
667667

@@ -674,7 +674,7 @@ class TSessionContext : public TThrRefBase {
674674
return TStatus(std::forward<TSource>(source));
675675
}
676676

677-
TStatus MakeStatus(EStatus status, NYql::TIssues&& issues) const {
677+
TStatus MakeStatus(EStatus status, NYdb::NIssue::TIssues&& issues) const {
678678
return TStatus(TPlainStatus(status, std::move(issues)));
679679
}
680680

src/client/datastreams/datastreams.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
#include <src/client/impl/ydb_internal/make_request/make.h>
55
#undef INCLUDE_YDB_INTERNAL_H
66

7-
#include <ydb-cpp-sdk/library/yql_common/issue/yql_issue.h>
8-
#include <src/library/yql_common/issue/yql_issue_message.h>
7+
#include <ydb-cpp-sdk/library/issue/yql_issue.h>
8+
#include <src/library/issue/yql_issue_message.h>
99

1010
#include <src/client/common_client/impl/client.h>
1111

12+
#include <src/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h>
13+
1214
namespace NYdb::NDataStreams::V1 {
1315

1416
TPartitioningSettingsBuilder<TCreateStreamSettings> TCreateStreamSettings::BeginConfigurePartitioningSettings() {

src/client/draft/ydb_replication.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
#include <src/client/impl/ydb_internal/make_request/make.h>
55
#undef INCLUDE_YDB_INTERNAL_H
66

7-
#include <ydb-cpp-sdk/library/yql_common/issue/yql_issue.h>
8-
#include <src/library/yql_common/issue/yql_issue_message.h>
7+
#include <ydb-cpp-sdk/library/issue/yql_issue.h>
8+
#include <src/library/issue/yql_issue_message.h>
99
#include <src/api/grpc/draft/ydb_replication_v1.grpc.pb.h>
1010
#include <src/client/common_client/impl/client.h>
1111
#include <ydb-cpp-sdk/client/proto/accessor.h>
@@ -93,27 +93,26 @@ const TStats& TRunningState::GetStats() const {
9393

9494
class TErrorState::TImpl {
9595
public:
96-
NYql::TIssues Issues;
96+
NYdb::NIssue::TIssues Issues;
9797

98-
explicit TImpl(NYql::TIssues&& issues)
98+
explicit TImpl(NYdb::NIssue::TIssues&& issues)
9999
: Issues(std::move(issues))
100100
{
101101
}
102102
};
103103

104-
TErrorState::TErrorState(NYql::TIssues&& issues)
104+
TErrorState::TErrorState(NYdb::NIssue::TIssues&& issues)
105105
: Impl_(std::make_shared<TImpl>(std::move(issues)))
106106
{
107107
}
108108

109-
const NYql::TIssues& TErrorState::GetIssues() const {
109+
const NYdb::NIssue::TIssues& TErrorState::GetIssues() const {
110110
return Impl_->Issues;
111111
}
112112

113-
template <typename T>
114-
NYql::TIssues IssuesFromMessage(const ::google::protobuf::RepeatedPtrField<T>& message) {
115-
NYql::TIssues issues;
116-
NYql::IssuesFromMessage<T>(message, issues);
113+
NYdb::NIssue::TIssues IssuesFromMessage(const ::google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>& message) {
114+
NYdb::NIssue::TIssues issues;
115+
NYdb::NIssue::IssuesFromMessage(message, issues);
117116
return issues;
118117
}
119118

src/client/draft/ydb_scripting.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ class TYqlResultPartIterator::TReaderImpl {
7272
self->Finished_ = true;
7373
promise.SetValue({ TStatus(TPlainStatus(grpcStatus, self->Endpoint_)) });
7474
} else {
75-
NYql::TIssues issues;
76-
NYql::IssuesFromMessage(self->Response_.issues(), issues);
75+
NYdb::NIssue::TIssues issues;
76+
NYdb::NIssue::IssuesFromMessage(self->Response_.issues(), issues);
7777
EStatus clientStatus = static_cast<EStatus>(self->Response_.status());
7878
TPlainStatus plainStatus{ clientStatus, std::move(issues), self->Endpoint_, {} };
7979
TStatus status{ std::move(plainStatus) };

src/client/federated_topic/impl/federated_read_session.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ std::vector<TReadSessionEvent::TEvent> TFederatedReadSessionImpl::GetEvents(bool
248248
{
249249
std::lock_guard guard(Lock);
250250
if (Closing) {
251-
return {NTopic::TSessionClosedEvent(FederationState->Status.GetStatus(), NYql::TIssues(FederationState->Status.GetIssues()))};
251+
return {NTopic::TSessionClosedEvent(FederationState->Status.GetStatus(), NYdb::NIssue::TIssues(FederationState->Status.GetIssues()))};
252252
}
253253
// TODO!!! handle aborting or closing state
254254
// via handler on SessionClosedEvent {

0 commit comments

Comments
 (0)