diff options
58 files changed, 274 insertions, 267 deletions
diff --git a/library/cpp/yt/yson_string/convert.cpp b/library/cpp/yt/yson_string/convert.cpp index 6d78ea6c9db..68241adb789 100644 --- a/library/cpp/yt/yson_string/convert.cpp +++ b/library/cpp/yt/yson_string/convert.cpp @@ -67,6 +67,12 @@ TYsonString ConvertToYsonString<TString>(const TString& value) return ConvertToYsonString(static_cast<TStringBuf>(value)); } +template <> +TYsonString ConvertToYsonString<std::string>(const std::string& value) +{ + return ConvertToYsonString(static_cast<TStringBuf>(value)); +} + struct TConvertStringToYsonStringTag { }; diff --git a/library/cpp/yt/yson_string/convert.h b/library/cpp/yt/yson_string/convert.h index 06de28d2f9d..eedb0939e00 100644 --- a/library/cpp/yt/yson_string/convert.h +++ b/library/cpp/yt/yson_string/convert.h @@ -44,6 +44,8 @@ TYsonString ConvertToYsonString<ui64>(const ui64& value); template <> TYsonString ConvertToYsonString<TString>(const TString& value); template <> +TYsonString ConvertToYsonString<std::string>(const std::string& value); +template <> TYsonString ConvertToYsonString<TStringBuf>(const TStringBuf& value); TYsonString ConvertToYsonString(const char* value); diff --git a/yt/yt/client/api/delegating_client.h b/yt/yt/client/api/delegating_client.h index 6f856571390..9cb73f3fb1b 100644 --- a/yt/yt/client/api/delegating_client.h +++ b/yt/yt/client/api/delegating_client.h @@ -881,7 +881,7 @@ public: DELEGATE_METHOD(TFuture<IRowBatchWriterPtr>, CreateShuffleWriter, ( const TShuffleHandlePtr& shuffleHandle, - const TString& partitionColumn, + const std::string& partitionColumn, const NTableClient::TTableWriterConfigPtr& config), (shuffleHandle, partitionColumn, config)) diff --git a/yt/yt/client/api/delegating_transaction.cpp b/yt/yt/client/api/delegating_transaction.cpp index 156eb1dde75..8a8ddf96dd9 100644 --- a/yt/yt/client/api/delegating_transaction.cpp +++ b/yt/yt/client/api/delegating_transaction.cpp @@ -264,7 +264,7 @@ DELEGATE_METHOD(void, LockRows, ( const NYPath::TYPath& path, NTableClient::TNameTablePtr nameTable, TSharedRange<NTableClient::TLegacyKey> keys, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, NTableClient::ELockType lockType), (path, nameTable, keys, locks, lockType)) diff --git a/yt/yt/client/api/delegating_transaction.h b/yt/yt/client/api/delegating_transaction.h index e0a71dee00e..e0263fc7992 100644 --- a/yt/yt/client/api/delegating_transaction.h +++ b/yt/yt/client/api/delegating_transaction.h @@ -214,7 +214,7 @@ public: const NYPath::TYPath& path, NTableClient::TNameTablePtr nameTable, TSharedRange<NTableClient::TLegacyKey> keys, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, NTableClient::ELockType lockType) override; void ModifyRows( diff --git a/yt/yt/client/api/dynamic_table_transaction.h b/yt/yt/client/api/dynamic_table_transaction.h index b22e9bcd8f0..37db074bdf8 100644 --- a/yt/yt/client/api/dynamic_table_transaction.h +++ b/yt/yt/client/api/dynamic_table_transaction.h @@ -106,7 +106,7 @@ struct IDynamicTableTransaction const NYPath::TYPath& path, NTableClient::TNameTablePtr nameTable, TSharedRange<NTableClient::TLegacyKey> keys, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, NTableClient::ELockType lockType = NTableClient::ELockType::SharedStrong) = 0; virtual void ModifyRows( diff --git a/yt/yt/client/api/dynamic_table_transaction_mixin.cpp b/yt/yt/client/api/dynamic_table_transaction_mixin.cpp index 240e4ea548b..4f1d2c901f4 100644 --- a/yt/yt/client/api/dynamic_table_transaction_mixin.cpp +++ b/yt/yt/client/api/dynamic_table_transaction_mixin.cpp @@ -152,7 +152,7 @@ void TDynamicTableTransactionMixin::LockRows( const NYPath::TYPath& path, TNameTablePtr nameTable, TSharedRange<TLegacyKey> keys, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, ELockType lockType) { const auto& tableMountCache = GetClient()->GetTableMountCache(); diff --git a/yt/yt/client/api/dynamic_table_transaction_mixin.h b/yt/yt/client/api/dynamic_table_transaction_mixin.h index c8492f1bf61..ab94daaa77d 100644 --- a/yt/yt/client/api/dynamic_table_transaction_mixin.h +++ b/yt/yt/client/api/dynamic_table_transaction_mixin.h @@ -43,7 +43,7 @@ public: const NYPath::TYPath& path, NTableClient::TNameTablePtr nameTable, TSharedRange<NTableClient::TLegacyKey> keys, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, NTableClient::ELockType lockType = NTableClient::ELockType::SharedStrong) override; }; diff --git a/yt/yt/client/api/query_tracker_client.h b/yt/yt/client/api/query_tracker_client.h index 4e198ed4b38..0e0fc147bf8 100644 --- a/yt/yt/client/api/query_tracker_client.h +++ b/yt/yt/client/api/query_tracker_client.h @@ -62,7 +62,7 @@ struct TReadQueryResultOptions : public TTimeoutOptions , public TQueryTrackerOptions { - std::optional<std::vector<TString>> Columns; + std::optional<std::vector<std::string>> Columns; std::optional<i64> LowerRowIndex; std::optional<i64> UpperRowIndex; }; diff --git a/yt/yt/client/api/rpc_proxy/client_impl.cpp b/yt/yt/client/api/rpc_proxy/client_impl.cpp index b01b2ffd90b..7575886a687 100644 --- a/yt/yt/client/api/rpc_proxy/client_impl.cpp +++ b/yt/yt/client/api/rpc_proxy/client_impl.cpp @@ -2310,7 +2310,7 @@ TFuture<IUnversionedRowsetPtr> TClient::ReadQueryResult( if (options.Columns) { auto* protoColumns = req->mutable_columns(); for (const auto& column : *options.Columns) { - protoColumns->add_items(column); + protoColumns->add_items(ToProto(column)); } } if (options.LowerRowIndex) { @@ -2720,7 +2720,7 @@ TFuture<IRowBatchReaderPtr> TClient::CreateShuffleReader( TFuture<IRowBatchWriterPtr> TClient::CreateShuffleWriter( const TShuffleHandlePtr& shuffleHandle, - const TString& partitionColumn, + const std::string& partitionColumn, const TTableWriterConfigPtr& config) { auto proxy = CreateApiServiceProxy(); @@ -2728,7 +2728,7 @@ TFuture<IRowBatchWriterPtr> TClient::CreateShuffleWriter( InitStreamingRequest(*req); req->set_shuffle_handle(ConvertToYsonString(shuffleHandle).ToString()); - req->set_partition_column(partitionColumn); + req->set_partition_column(ToProto(partitionColumn)); req->set_writer_config(ConvertToYsonString(config).ToString()); return CreateRpcClientOutputStream(std::move(req)) diff --git a/yt/yt/client/api/rpc_proxy/client_impl.h b/yt/yt/client/api/rpc_proxy/client_impl.h index 16e94003914..3e73bc47f0e 100644 --- a/yt/yt/client/api/rpc_proxy/client_impl.h +++ b/yt/yt/client/api/rpc_proxy/client_impl.h @@ -585,7 +585,7 @@ public: TFuture<IRowBatchWriterPtr> CreateShuffleWriter( const TShuffleHandlePtr& shuffleHandle, - const TString& partitionColumn, + const std::string& partitionColumn, const NTableClient::TTableWriterConfigPtr& config) override; private: diff --git a/yt/yt/client/api/rpc_proxy/helpers.cpp b/yt/yt/client/api/rpc_proxy/helpers.cpp index 13c51ed862d..d37fc8b2bdf 100644 --- a/yt/yt/client/api/rpc_proxy/helpers.cpp +++ b/yt/yt/client/api/rpc_proxy/helpers.cpp @@ -468,13 +468,13 @@ void FromProto( void ToProto(NProto::TColumnSchema* protoSchema, const NTableClient::TColumnSchema& schema) { - protoSchema->set_stable_name(schema.StableName().Underlying()); - protoSchema->set_name(schema.Name()); + protoSchema->set_stable_name(ToProto(schema.StableName())); + protoSchema->set_name(ToProto(schema.Name())); protoSchema->set_type(ToProto(GetPhysicalType(schema.CastToV1Type()))); auto typeV3Yson = ConvertToYsonString(TTypeV3LogicalTypeWrapper{schema.LogicalType()}); protoSchema->set_type_v3(typeV3Yson.ToString()); if (schema.Lock()) { - protoSchema->set_lock(*schema.Lock()); + protoSchema->set_lock(ToProto(*schema.Lock())); } else { protoSchema->clear_lock(); } @@ -489,7 +489,7 @@ void ToProto(NProto::TColumnSchema* protoSchema, const NTableClient::TColumnSche protoSchema->clear_materialized(); } if (schema.Aggregate()) { - protoSchema->set_aggregate(*schema.Aggregate()); + protoSchema->set_aggregate(ToProto(*schema.Aggregate())); } else { protoSchema->clear_aggregate(); } @@ -499,7 +499,7 @@ void ToProto(NProto::TColumnSchema* protoSchema, const NTableClient::TColumnSche protoSchema->clear_sort_order(); } if (schema.Group()) { - protoSchema->set_group(*schema.Group()); + protoSchema->set_group(ToProto(*schema.Group())); } else { protoSchema->clear_group(); } @@ -2158,7 +2158,7 @@ std::vector<TSharedRef> SerializeRowset( // COMPAT(babenko) for (const auto& column : schema.Columns()) { auto* entry = descriptor->add_name_table_entries(); - entry->set_name(column.Name()); + entry->set_name(ToProto(column.Name())); // we save physical type for backward compatibility // COMPAT(babenko) entry->set_type(ToProto(column.GetWireType())); diff --git a/yt/yt/client/api/rpc_proxy/table_reader.cpp b/yt/yt/client/api/rpc_proxy/table_reader.cpp index bb1f571332b..6df6bef2411 100644 --- a/yt/yt/client/api/rpc_proxy/table_reader.cpp +++ b/yt/yt/client/api/rpc_proxy/table_reader.cpp @@ -22,7 +22,7 @@ public: TTableReader( IAsyncZeroCopyInputStreamPtr underlying, i64 startRowIndex, - const std::vector<TString>& omittedInaccessibleColumns, + const std::vector<std::string>& omittedInaccessibleColumns, TTableSchemaPtr schema, const NProto::TRowsetStatistics& statistics) : TRowBatchReader(std::move(underlying), /*isStreamWithStatistics*/ true) @@ -57,7 +57,7 @@ public: return TableSchema_; } - const std::vector<TString>& GetOmittedInaccessibleColumns() const override + const std::vector<std::string>& GetOmittedInaccessibleColumns() const override { return OmittedInaccessibleColumns_; } @@ -65,7 +65,7 @@ public: private: const i64 StartRowIndex_; const TTableSchemaPtr TableSchema_; - const std::vector<TString> OmittedInaccessibleColumns_; + const std::vector<std::string> OmittedInaccessibleColumns_; NChunkClient::NProto::TDataStatistics DataStatistics_; i64 TotalRowCount_; @@ -85,15 +85,11 @@ TFuture<ITableReaderPtr> CreateTableReader(IAsyncZeroCopyInputStreamPtr inputStr THROW_ERROR_EXCEPTION("Failed to deserialize table reader meta information"); } - i64 startRowIndex = meta.start_row_index(); - auto omittedInaccessibleColumns = FromProto<std::vector<TString>>( - meta.omitted_inaccessible_columns()); - auto schema = NYT::FromProto<TTableSchemaPtr>(meta.schema()); return New<TTableReader>( inputStream, - startRowIndex, - std::move(omittedInaccessibleColumns), - std::move(schema), + meta.start_row_index(), + FromProto<std::vector<std::string>>(meta.omitted_inaccessible_columns()), + NYT::FromProto<TTableSchemaPtr>(meta.schema()), meta.statistics()); })).As<ITableReaderPtr>(); } diff --git a/yt/yt/client/api/security_client.cpp b/yt/yt/client/api/security_client.cpp index 2b0d0f675ce..f30a2886149 100644 --- a/yt/yt/client/api/security_client.cpp +++ b/yt/yt/client/api/security_client.cpp @@ -9,7 +9,7 @@ using namespace NYTree; TError TCheckPermissionResult::ToError( const std::string& user, EPermission permission, - const std::optional<TString>& column) const + const std::optional<std::string>& column) const { switch (Action) { case NSecurityClient::ESecurityAction::Allow: diff --git a/yt/yt/client/api/security_client.h b/yt/yt/client/api/security_client.h index a606229e494..cb639d678ba 100644 --- a/yt/yt/client/api/security_client.h +++ b/yt/yt/client/api/security_client.h @@ -26,7 +26,7 @@ struct TCheckPermissionOptions , public TTransactionalOptions , public TPrerequisiteOptions { - std::optional<std::vector<TString>> Columns; + std::optional<std::vector<std::string>> Columns; std::optional<bool> Vital; }; @@ -35,7 +35,7 @@ struct TCheckPermissionResult TError ToError( const std::string& user, NYTree::EPermission permission, - const std::optional<TString>& columns = {}) const; + const std::optional<std::string>& columns = {}) const; NSecurityClient::ESecurityAction Action; NObjectClient::TObjectId ObjectId; diff --git a/yt/yt/client/api/shuffle_client.h b/yt/yt/client/api/shuffle_client.h index d7972cd680b..650096a30c7 100644 --- a/yt/yt/client/api/shuffle_client.h +++ b/yt/yt/client/api/shuffle_client.h @@ -53,7 +53,7 @@ struct IShuffleClient virtual TFuture<IRowBatchWriterPtr> CreateShuffleWriter( const TShuffleHandlePtr& shuffleHandle, - const TString& partitionColumn, + const std::string& partitionColumn, const NTableClient::TTableWriterConfigPtr& config = New<NTableClient::TTableWriterConfig>()) = 0; }; diff --git a/yt/yt/client/api/table_reader.h b/yt/yt/client/api/table_reader.h index b26e970657e..8a447ea5edf 100644 --- a/yt/yt/client/api/table_reader.h +++ b/yt/yt/client/api/table_reader.h @@ -26,7 +26,7 @@ struct ITableReader //! Returns the names of columns that are not accessible according to columnar ACL //! and were omitted. See #TTableReaderOptions::OmitInaccessibleColumns. - virtual const std::vector<TString>& GetOmittedInaccessibleColumns() const = 0; + virtual const std::vector<std::string>& GetOmittedInaccessibleColumns() const = 0; }; DEFINE_REFCOUNTED_TYPE(ITableReader) diff --git a/yt/yt/client/arrow/arrow_row_stream_encoder.cpp b/yt/yt/client/arrow/arrow_row_stream_encoder.cpp index 23a06a45b71..25a403790c0 100644 --- a/yt/yt/client/arrow/arrow_row_stream_encoder.cpp +++ b/yt/yt/client/arrow/arrow_row_stream_encoder.cpp @@ -39,7 +39,7 @@ constexpr i64 ArrowAlignment = 8; flatbuffers::Offset<flatbuffers::String> SerializeString( flatbuffers::FlatBufferBuilder* flatbufBuilder, - const TString& str) + const std::string& str) { return flatbufBuilder->CreateString(str.data(), str.length()); } diff --git a/yt/yt/client/driver/etc_commands.cpp b/yt/yt/client/driver/etc_commands.cpp index 25da308a57e..288d42610f2 100644 --- a/yt/yt/client/driver/etc_commands.cpp +++ b/yt/yt/client/driver/etc_commands.cpp @@ -109,7 +109,7 @@ void TCheckPermissionCommand::Register(TRegistrar registrar) registrar.Parameter("user", &TThis::User); registrar.Parameter("permission", &TThis::Permission); registrar.Parameter("path", &TThis::Path); - registrar.ParameterWithUniversalAccessor<std::optional<std::vector<TString>>>( + registrar.ParameterWithUniversalAccessor<std::optional<std::vector<std::string>>>( "columns", [] (TThis* command) -> auto& { return command->Options.Columns; diff --git a/yt/yt/client/driver/query_commands.cpp b/yt/yt/client/driver/query_commands.cpp index e3903d004b3..ab2d9395e1f 100644 --- a/yt/yt/client/driver/query_commands.cpp +++ b/yt/yt/client/driver/query_commands.cpp @@ -153,7 +153,7 @@ void TReadQueryResultCommand::Register(TRegistrar registrar) }) .Optional(/*init*/ false); - registrar.ParameterWithUniversalAccessor<std::optional<std::vector<TString>>>( + registrar.ParameterWithUniversalAccessor<std::optional<std::vector<std::string>>>( "columns", [] (TThis* command) -> auto& { return command->Options.Columns; diff --git a/yt/yt/client/driver/table_commands.h b/yt/yt/client/driver/table_commands.h index 2e1e8e22d58..fde7e0b66a0 100644 --- a/yt/yt/client/driver/table_commands.h +++ b/yt/yt/client/driver/table_commands.h @@ -46,8 +46,8 @@ private: NYPath::TRichYPath Path; NYTree::INodePtr TableReader; - std::optional<TString> PartIndexColumnName; - std::optional<TString> DataColumnName; + std::optional<std::string> PartIndexColumnName; + std::optional<std::string> DataColumnName; i64 StartPartIndex; i64 Offset; @@ -375,7 +375,7 @@ public: private: NYTree::INodePtr TableWriter; NYPath::TRichYPath Path; - std::optional<std::vector<TString>> ColumnNames; + std::optional<std::vector<std::string>> ColumnNames; bool Versioned; NTableClient::TRetentionConfigPtr RetentionConfig; @@ -451,7 +451,7 @@ public: private: NYTree::INodePtr TableWriter; NYPath::TRichYPath Path; - std::vector<TString> Locks; + std::vector<std::string> Locks; NTableClient::ELockType LockType; void DoExecute(ICommandContextPtr context) override; diff --git a/yt/yt/client/federated/client.cpp b/yt/yt/client/federated/client.cpp index f43f76958dd..040c19a17c1 100644 --- a/yt/yt/client/federated/client.cpp +++ b/yt/yt/client/federated/client.cpp @@ -490,7 +490,7 @@ public: UNIMPLEMENTED_METHOD(TFuture<TShuffleHandlePtr>, StartShuffle, (const TString& , int, const TStartShuffleOptions&)); UNIMPLEMENTED_METHOD(TFuture<void>, FinishShuffle, (const TShuffleHandlePtr&, const TFinishShuffleOptions&)); UNIMPLEMENTED_METHOD(TFuture<IRowBatchReaderPtr>, CreateShuffleReader, (const TShuffleHandlePtr&, int, const NTableClient::TTableReaderConfigPtr&)); - UNIMPLEMENTED_METHOD(TFuture<IRowBatchWriterPtr>, CreateShuffleWriter, (const TShuffleHandlePtr&, const TString&, const NTableClient::TTableWriterConfigPtr&)); + UNIMPLEMENTED_METHOD(TFuture<IRowBatchWriterPtr>, CreateShuffleWriter, (const TShuffleHandlePtr&, const std::string&, const NTableClient::TTableWriterConfigPtr&)); private: friend class TTransaction; diff --git a/yt/yt/client/federated/unittests/client_ut.cpp b/yt/yt/client/federated/unittests/client_ut.cpp index 54ec11d6cb4..daf7529e787 100644 --- a/yt/yt/client/federated/unittests/client_ut.cpp +++ b/yt/yt/client/federated/unittests/client_ut.cpp @@ -78,8 +78,8 @@ struct TTestDataStorage } const NYPath::TYPath Path = "/test/table"; - const TString KeyColumn = "key"; - const TString ValueColumn = "value"; + const std::string KeyColumn = "key"; + const std::string ValueColumn = "value"; const NTableClient::TColumnSchema KeyColumnSchema = NTableClient::TColumnSchema(KeyColumn, NTableClient::EValueType::Uint64); const NTableClient::TColumnSchema ValueColumnSchema = NTableClient::TColumnSchema(ValueColumn, NTableClient::EValueType::Uint64); diff --git a/yt/yt/client/formats/config.cpp b/yt/yt/client/formats/config.cpp index f6c6a8c8a61..71c11520617 100644 --- a/yt/yt/client/formats/config.cpp +++ b/yt/yt/client/formats/config.cpp @@ -131,7 +131,7 @@ void TYamredDsvFormatConfig::Register(TRegistrar registrar) }); registrar.Postprocessor([] (TThis* config) { - THashSet<TString> names; + THashSet<std::string> names; for (const auto& name : config->KeyColumnNames) { if (!names.insert(name).second) { @@ -151,7 +151,7 @@ void TYamredDsvFormatConfig::Register(TRegistrar registrar) //////////////////////////////////////////////////////////////////////////////// -const std::vector<TString>& TSchemafulDsvFormatConfig::GetColumnsOrThrow() const +const std::vector<std::string>& TSchemafulDsvFormatConfig::GetColumnsOrThrow() const { if (!Columns) { THROW_ERROR_EXCEPTION("Missing \"columns\" attribute in schemaful DSV format"); @@ -188,7 +188,7 @@ void TSchemafulDsvFormatConfig::Register(TRegistrar registrar) registrar.Postprocessor([] (TThis* config) { if (config->Columns) { - THashSet<TString> names; + THashSet<std::string> names; for (const auto& name : *config->Columns) { if (!names.insert(name).second) { THROW_ERROR_EXCEPTION("Duplicate column name %Qv in schemaful DSV configuration", diff --git a/yt/yt/client/formats/config.h b/yt/yt/client/formats/config.h index a371050ae68..aec3f30db4a 100644 --- a/yt/yt/client/formats/config.h +++ b/yt/yt/client/formats/config.h @@ -149,8 +149,7 @@ class TDsvFormatConfig : public TDsvFormatConfigBase { public: - - TString TableIndexColumn; + std::string TableIndexColumn; bool SkipUnsupportedTypes = false; REGISTER_YSON_STRUCT(TDsvFormatConfig); @@ -169,8 +168,8 @@ class TYamredDsvFormatConfig public: char YamrKeysSeparator; - std::vector<TString> KeyColumnNames; - std::vector<TString> SubkeyColumnNames; + std::vector<std::string> KeyColumnNames; + std::vector<std::string> SubkeyColumnNames; bool SkipUnsupportedTypesInValue = false; @@ -193,14 +192,14 @@ class TSchemafulDsvFormatConfig : public TTableFormatConfigBase { public: - std::optional<std::vector<TString>> Columns; + std::optional<std::vector<std::string>> Columns; EMissingSchemafulDsvValueMode MissingValueMode; TString MissingValueSentinel; std::optional<bool> EnableColumnNamesHeader; - const std::vector<TString>& GetColumnsOrThrow() const; + const std::vector<std::string>& GetColumnsOrThrow() const; REGISTER_YSON_STRUCT(TSchemafulDsvFormatConfig); @@ -382,7 +381,7 @@ public: int FieldWeightLimit; int StringWeightLimit; int MaxAllColumnNamesCount; - std::optional<std::vector<TString>> ColumnNames; + std::optional<std::vector<std::string>> ColumnNames; EWebJsonValueFormat ValueFormat; // Intentionally do not reveal following options to user. diff --git a/yt/yt/client/hedging/hedging.cpp b/yt/yt/client/hedging/hedging.cpp index 3fb36f85609..b083f87ff3d 100644 --- a/yt/yt/client/hedging/hedging.cpp +++ b/yt/yt/client/hedging/hedging.cpp @@ -231,7 +231,7 @@ public: UNSUPPORTED_METHOD(TFuture<TShuffleHandlePtr>, StartShuffle, (const TString&, int, const TStartShuffleOptions&)); UNSUPPORTED_METHOD(TFuture<void>, FinishShuffle, (const TShuffleHandlePtr&, const TFinishShuffleOptions&)); UNSUPPORTED_METHOD(TFuture<IRowBatchReaderPtr>, CreateShuffleReader, (const TShuffleHandlePtr&, int, const NTableClient::TTableReaderConfigPtr&)); - UNSUPPORTED_METHOD(TFuture<IRowBatchWriterPtr>, CreateShuffleWriter, (const TShuffleHandlePtr&, const TString&, const NTableClient::TTableWriterConfigPtr&)); + UNSUPPORTED_METHOD(TFuture<IRowBatchWriterPtr>, CreateShuffleWriter, (const TShuffleHandlePtr&, const std::string&, const NTableClient::TTableWriterConfigPtr&)); private: const THedgingExecutorPtr Executor_; diff --git a/yt/yt/client/table_client/blob_reader.cpp b/yt/yt/client/table_client/blob_reader.cpp index e354c9008bc..fb4fc93a178 100644 --- a/yt/yt/client/table_client/blob_reader.cpp +++ b/yt/yt/client/table_client/blob_reader.cpp @@ -15,8 +15,8 @@ using namespace NConcurrency; //////////////////////////////////////////////////////////////////////////////// -const TString TBlobTableSchema::PartIndexColumn = "part_index"; -const TString TBlobTableSchema::DataColumn = "data"; +const std::string TBlobTableSchema::PartIndexColumn = "part_index"; +const std::string TBlobTableSchema::DataColumn = "data"; TTableSchemaPtr TBlobTableSchema::ToTableSchema() const { @@ -46,8 +46,8 @@ class TBlobTableReader public: TBlobTableReader( ITableReaderPtr reader, - const std::optional<TString>& partIndexColumnName, - const std::optional<TString>& dataColumnName, + const std::optional<std::string>& partIndexColumnName, + const std::optional<std::string>& dataColumnName, i64 startPartIndex, const std::optional<i64>& offset, const std::optional<i64>& partSize) @@ -87,8 +87,8 @@ public: private: const ITableReaderPtr Reader_; - const TString PartIndexColumnName_; - const TString DataColumnName_; + const std::string PartIndexColumnName_; + const std::string DataColumnName_; i64 Offset_; std::optional<i64> PartSize_; @@ -122,7 +122,7 @@ private: TUnversionedValue GetAndValidateValue( TUnversionedRow row, - const TString& name, + const std::string& name, EColumnType columnType, EValueType expectedType) { @@ -197,8 +197,8 @@ private: IAsyncZeroCopyInputStreamPtr CreateBlobTableReader( ITableReaderPtr reader, - const std::optional<TString>& partIndexColumnName, - const std::optional<TString>& dataColumnName, + const std::optional<std::string>& partIndexColumnName, + const std::optional<std::string>& dataColumnName, i64 startPartIndex, const std::optional<i64>& offset, const std::optional<i64>& partSize) diff --git a/yt/yt/client/table_client/blob_reader.h b/yt/yt/client/table_client/blob_reader.h index 71f8810341f..0bfe4579a96 100644 --- a/yt/yt/client/table_client/blob_reader.h +++ b/yt/yt/client/table_client/blob_reader.h @@ -11,8 +11,8 @@ namespace NYT::NTableClient { struct TBlobTableSchema { // Names of special blob columns. - static const TString PartIndexColumn; - static const TString DataColumn; + static const std::string PartIndexColumn; + static const std::string DataColumn; // Do not specify anything except name and value // type in all column schemas. @@ -25,8 +25,8 @@ struct TBlobTableSchema NConcurrency::IAsyncZeroCopyInputStreamPtr CreateBlobTableReader( NApi::ITableReaderPtr reader, - const std::optional<TString>& partIndexColumnName, - const std::optional<TString>& dataColumnName, + const std::optional<std::string>& partIndexColumnName, + const std::optional<std::string>& dataColumnName, i64 startPartIndex, const std::optional<i64>& offset = std::nullopt, const std::optional<i64>& partSize = std::nullopt); diff --git a/yt/yt/client/table_client/column_sort_schema.cpp b/yt/yt/client/table_client/column_sort_schema.cpp index 964f7549a42..e574bd6cb2d 100644 --- a/yt/yt/client/table_client/column_sort_schema.cpp +++ b/yt/yt/client/table_client/column_sort_schema.cpp @@ -62,7 +62,7 @@ void ValidateSortColumns(const std::vector<TColumnSortSchema>& columns) { ValidateKeyColumnCount(columns.size()); - THashSet<TString> names; + THashSet<std::string> names; for (const auto& column : columns) { if (!names.insert(column.Name).second) { THROW_ERROR_EXCEPTION("Duplicate sort column name %Qv", @@ -77,9 +77,11 @@ void ToProto( NProto::TSortColumnsExt* protoSortColumns, const TSortColumns& sortColumns) { + using NYT::ToProto; + for (const auto& sortColumn : sortColumns) { - protoSortColumns->add_names(sortColumn.Name); - protoSortColumns->add_sort_orders(static_cast<int>(sortColumn.SortOrder)); + protoSortColumns->add_names(ToProto(sortColumn.Name)); + protoSortColumns->add_sort_orders(ToProto<int>(sortColumn.SortOrder)); } } diff --git a/yt/yt/client/table_client/column_sort_schema.h b/yt/yt/client/table_client/column_sort_schema.h index 70a8b625967..21579e98df6 100644 --- a/yt/yt/client/table_client/column_sort_schema.h +++ b/yt/yt/client/table_client/column_sort_schema.h @@ -9,7 +9,7 @@ namespace NYT::NTableClient { struct TColumnSortSchema { - TString Name; + std::string Name; ESortOrder SortOrder; bool operator==(const TColumnSortSchema& other) const = default; diff --git a/yt/yt/client/table_client/columnar_statistics.cpp b/yt/yt/client/table_client/columnar_statistics.cpp index 85a223a8a45..c53acdfbf56 100644 --- a/yt/yt/client/table_client/columnar_statistics.cpp +++ b/yt/yt/client/table_client/columnar_statistics.cpp @@ -265,7 +265,7 @@ TLightweightColumnarStatistics TColumnarStatistics::MakeLightweightStatistics() }; } -TNamedColumnarStatistics TColumnarStatistics::MakeNamedStatistics(const std::vector<TString>& names) const +TNamedColumnarStatistics TColumnarStatistics::MakeNamedStatistics(const std::vector<std::string>& names) const { TNamedColumnarStatistics result; result.TimestampTotalWeight = TimestampTotalWeight; diff --git a/yt/yt/client/table_client/columnar_statistics.h b/yt/yt/client/table_client/columnar_statistics.h index 82dbec47c0f..0ead116aff7 100644 --- a/yt/yt/client/table_client/columnar_statistics.h +++ b/yt/yt/client/table_client/columnar_statistics.h @@ -21,7 +21,7 @@ struct TLightweightColumnarStatistics struct TNamedColumnarStatistics { //! Per-column total data weight for chunks whose meta contains columnar statistics. - THashMap<TString, i64> ColumnDataWeights; + THashMap<std::string, i64> ColumnDataWeights; //! Total weight of all write and delete timestamps. std::optional<i64> TimestampTotalWeight; //! Total data weight of legacy chunks whose meta misses columnar statistics. @@ -97,7 +97,7 @@ struct TColumnarStatistics TLightweightColumnarStatistics MakeLightweightStatistics() const; - TNamedColumnarStatistics MakeNamedStatistics(const std::vector<TString>& names) const; + TNamedColumnarStatistics MakeNamedStatistics(const std::vector<std::string>& names) const; //! Checks if there are minimum, maximum, and non-null value statistics. bool HasValueStatistics() const; diff --git a/yt/yt/client/table_client/logical_type.cpp b/yt/yt/client/table_client/logical_type.cpp index fda90c21ecb..679540a9995 100644 --- a/yt/yt/client/table_client/logical_type.cpp +++ b/yt/yt/client/table_client/logical_type.cpp @@ -467,19 +467,19 @@ TComplexTypeFieldDescriptor::TComplexTypeFieldDescriptor(const NYT::NTableClient : TComplexTypeFieldDescriptor(column.Name(), column.LogicalType()) { } -TComplexTypeFieldDescriptor::TComplexTypeFieldDescriptor(TString columnName, TLogicalTypePtr type) - : Descriptor_(std::move(columnName)) +TComplexTypeFieldDescriptor::TComplexTypeFieldDescriptor(const std::string& columnName, TLogicalTypePtr type) + : Description_(columnName) , Type_(std::move(type)) { } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::OptionalElement() const { - return TComplexTypeFieldDescriptor(Descriptor_ + ".<optional-element>", Type_->AsOptionalTypeRef().GetElement()); + return TComplexTypeFieldDescriptor(Description_ + ".<optional-element>", Type_->AsOptionalTypeRef().GetElement()); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::ListElement() const { - return TComplexTypeFieldDescriptor(Descriptor_ + ".<list-element>", Type_->AsListTypeRef().GetElement()); + return TComplexTypeFieldDescriptor(Description_ + ".<list-element>", Type_->AsListTypeRef().GetElement()); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::Field(size_t i) const @@ -499,7 +499,7 @@ TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::StructField(size_t i) c const auto& fields = Type_->AsStructTypeRef().GetFields(); YT_VERIFY(i < fields.size()); const auto& field = fields[i]; - return TComplexTypeFieldDescriptor(Descriptor_ + "." + field.Name, field.Type); + return TComplexTypeFieldDescriptor(Description_ + "." + field.Name, field.Type); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::Element(size_t i) const @@ -518,14 +518,14 @@ TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::TupleElement(size_t i) { const auto& elements = Type_->AsTupleTypeRef().GetElements(); YT_VERIFY(i < elements.size()); - return TComplexTypeFieldDescriptor(Descriptor_ + Format(".<tuple-element-%v>", i), elements[i]); + return TComplexTypeFieldDescriptor(Description_ + Format(".<tuple-element-%v>", i), elements[i]); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::VariantTupleElement(size_t i) const { const auto& elements = Type_->AsVariantTupleTypeRef().GetElements(); YT_VERIFY(i < elements.size()); - return TComplexTypeFieldDescriptor(Descriptor_ + Format(".<variant-element-%v>", i), elements[i]); + return TComplexTypeFieldDescriptor(Description_ + Format(".<variant-element-%v>", i), elements[i]); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::VariantStructField(size_t i) const @@ -533,32 +533,32 @@ TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::VariantStructField(size const auto& fields = Type_->AsVariantStructTypeRef().GetFields(); YT_VERIFY(i < fields.size()); const auto& field = fields[i]; - return TComplexTypeFieldDescriptor(Descriptor_ + "." + field.Name, field.Type); + return TComplexTypeFieldDescriptor(Description_ + "." + field.Name, field.Type); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::DictKey() const { - return TComplexTypeFieldDescriptor(Descriptor_ + ".<key>", Type_->AsDictTypeRef().GetKey()); + return TComplexTypeFieldDescriptor(Description_ + ".<key>", Type_->AsDictTypeRef().GetKey()); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::DictValue() const { - return TComplexTypeFieldDescriptor(Descriptor_ + ".<value>", Type_->AsDictTypeRef().GetValue()); + return TComplexTypeFieldDescriptor(Description_ + ".<value>", Type_->AsDictTypeRef().GetValue()); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::TaggedElement() const { - return TComplexTypeFieldDescriptor(Descriptor_ + ".<tagged-element>", Type_->AsTaggedTypeRef().GetElement()); + return TComplexTypeFieldDescriptor(Description_ + ".<tagged-element>", Type_->AsTaggedTypeRef().GetElement()); } TComplexTypeFieldDescriptor TComplexTypeFieldDescriptor::Detag() const { - return TComplexTypeFieldDescriptor(Descriptor_, DetagLogicalType(Type_)); + return TComplexTypeFieldDescriptor(Description_, DetagLogicalType(Type_)); } -const TString& TComplexTypeFieldDescriptor::GetDescription() const +const std::string& TComplexTypeFieldDescriptor::GetDescription() const { - return Descriptor_; + return Description_; } const TLogicalTypePtr& TComplexTypeFieldDescriptor::GetType() const @@ -1053,6 +1053,8 @@ void ValidateLogicalType(const TComplexTypeFieldDescriptor& rootDescriptor, std: void ToProto(NProto::TLogicalType* protoLogicalType, const TLogicalTypePtr& logicalType) { + using NYT::ToProto; + switch (logicalType->GetMetatype()) { case ELogicalMetatype::Simple: protoLogicalType->set_simple(ToProto(logicalType->AsSimpleTypeRef().GetElement())); @@ -1071,7 +1073,7 @@ void ToProto(NProto::TLogicalType* protoLogicalType, const TLogicalTypePtr& logi auto protoStruct = protoLogicalType->mutable_struct_(); for (const auto& structField : logicalType->AsStructTypeRef().GetFields()) { auto protoStructField = protoStruct->add_fields(); - protoStructField->set_name(structField.Name); + protoStructField->set_name(ToProto(structField.Name)); ToProto(protoStructField->mutable_type(), structField.Type); } return; @@ -1088,7 +1090,7 @@ void ToProto(NProto::TLogicalType* protoLogicalType, const TLogicalTypePtr& logi auto protoVariantStruct = protoLogicalType->mutable_variant_struct(); for (const auto& field : logicalType->AsVariantStructTypeRef().GetFields()) { auto protoField = protoVariantStruct->add_fields(); - protoField->set_name(field.Name); + protoField->set_name(ToProto(field.Name)); ToProto(protoField->mutable_type(), field.Type); } return; diff --git a/yt/yt/client/table_client/logical_type.h b/yt/yt/client/table_client/logical_type.h index bd482df9849..1a0b2dd0b5a 100644 --- a/yt/yt/client/table_client/logical_type.h +++ b/yt/yt/client/table_client/logical_type.h @@ -260,7 +260,7 @@ class TComplexTypeFieldDescriptor public: explicit TComplexTypeFieldDescriptor(TLogicalTypePtr type); explicit TComplexTypeFieldDescriptor(const TColumnSchema& column); - TComplexTypeFieldDescriptor(TString columnName, TLogicalTypePtr type); + TComplexTypeFieldDescriptor(const std::string& columnName, TLogicalTypePtr type); TComplexTypeFieldDescriptor OptionalElement() const; TComplexTypeFieldDescriptor ListElement() const; @@ -276,11 +276,11 @@ public: TComplexTypeFieldDescriptor Detag() const; - const TString& GetDescription() const; + const std::string& GetDescription() const; const TLogicalTypePtr& GetType() const; private: - TString Descriptor_; + std::string Description_; TLogicalTypePtr Type_; }; @@ -288,7 +288,7 @@ private: struct TStructField { - TString Name; + std::string Name; TLogicalTypePtr Type; }; @@ -299,8 +299,6 @@ class TStructLogicalTypeBase : public TLogicalType { public: - -public: TStructLogicalTypeBase(ELogicalMetatype metatype, std::vector<TStructField> fields); Y_FORCE_INLINE const std::vector<TStructField>& GetFields() const; diff --git a/yt/yt/client/table_client/name_table.cpp b/yt/yt/client/table_client/name_table.cpp index 2c22700fc71..6747c30539b 100644 --- a/yt/yt/client/table_client/name_table.cpp +++ b/yt/yt/client/table_client/name_table.cpp @@ -167,10 +167,10 @@ int TNameTable::DoRegisterNameOrThrow(TStringBuf name) return DoRegisterName(name); } -std::vector<TString> TNameTable::GetNames() const +std::vector<std::string> TNameTable::GetNames() const { auto guard = Guard(SpinLock_); - std::vector<TString> result(IdToName_.begin(), IdToName_.end()); + std::vector<std::string> result(IdToName_.begin(), IdToName_.end()); return result; } @@ -255,7 +255,7 @@ std::optional<int> TNameTableWriter::FindId(TStringBuf name) const auto optionalId = NameTable_->FindId(name); if (optionalId) { - Names_.push_back(TString(name)); + Names_.push_back(std::string(name)); YT_VERIFY(NameToId_.emplace(Names_.back(), *optionalId).second); } return optionalId; @@ -278,7 +278,7 @@ int TNameTableWriter::GetIdOrRegisterName(TStringBuf name) } auto id = NameTable_->GetIdOrRegisterName(name); - Names_.push_back(TString(name)); + Names_.push_back(std::string(name)); YT_VERIFY(NameToId_.emplace(Names_.back(), id).second); return id; } @@ -296,7 +296,7 @@ void FromProto(TNameTablePtr* nameTable, const NProto::TNameTableExt& protoNameT { using NYT::FromProto; - *nameTable = TNameTable::FromKeyColumns(FromProto<std::vector<TString>>(protoNameTable.names())); + *nameTable = TNameTable::FromKeyColumns(FromProto<std::vector<std::string>>(protoNameTable.names())); } //////////////////////////////////////////////////////////////////////////////// diff --git a/yt/yt/client/table_client/name_table.h b/yt/yt/client/table_client/name_table.h index f0e94f36174..4d5b7ae4043 100644 --- a/yt/yt/client/table_client/name_table.h +++ b/yt/yt/client/table_client/name_table.h @@ -37,7 +37,7 @@ public: TStringBuf GetName(int id) const; TStringBuf GetNameOrThrow(int id) const; - std::vector<TString> GetNames() const; + std::vector<std::string> GetNames() const; private: YT_DECLARE_SPIN_LOCK(NThreading::TSpinLock, SpinLock_); @@ -46,7 +46,7 @@ private: // String values are owned by IdToName_. // NB: Names may be SSO-strings, using a deque to avoid string view invalidation. - std::deque<TString> IdToName_; + std::deque<std::string> IdToName_; THashMap<TStringBuf, int> NameToId_; i64 ByteSize_ = 0; @@ -97,7 +97,7 @@ private: // String values are owned by Names_ // NB: Names may be SSO-strings, using a deque to avoid string view invalidation - mutable std::deque<TString> Names_; + mutable std::deque<std::string> Names_; mutable THashMap<TStringBuf, int> NameToId_; }; diff --git a/yt/yt/client/table_client/public.cpp b/yt/yt/client/table_client/public.cpp index 4fc79ad447d..1008d882c41 100644 --- a/yt/yt/client/table_client/public.cpp +++ b/yt/yt/client/table_client/public.cpp @@ -4,19 +4,20 @@ namespace NYT::NTableClient { //////////////////////////////////////////////////////////////////////////////// -const TString PrimaryLockName("<primary>"); +const std::string PrimaryLockName("<primary>"); -const TString SystemColumnNamePrefix("$"); -const TString TableIndexColumnName = SystemColumnNamePrefix + "table_index"; -const TString RowIndexColumnName = SystemColumnNamePrefix + "row_index"; -const TString RangeIndexColumnName = SystemColumnNamePrefix + "range_index"; -const TString TabletIndexColumnName = SystemColumnNamePrefix + "tablet_index"; -const TString TimestampColumnName = SystemColumnNamePrefix + "timestamp"; -const TString TtlColumnName = SystemColumnNamePrefix + "ttl"; -const TString TimestampColumnPrefix = SystemColumnNamePrefix + "timestamp:"; -const TString CumulativeDataWeightColumnName = SystemColumnNamePrefix + "cumulative_data_weight"; -const TString EmptyValueColumnName = SystemColumnNamePrefix + "empty"; -const TString SequenceNumberColumnName = SystemColumnNamePrefix + "sequence_number"; +const std::string SystemColumnNamePrefix("$"); +const std::string NonexistentColumnName = SystemColumnNamePrefix + "__YT_NONEXISTENT_COLUMN_NAME__"; +const std::string TableIndexColumnName = SystemColumnNamePrefix + "table_index"; +const std::string RowIndexColumnName = SystemColumnNamePrefix + "row_index"; +const std::string RangeIndexColumnName = SystemColumnNamePrefix + "range_index"; +const std::string TabletIndexColumnName = SystemColumnNamePrefix + "tablet_index"; +const std::string TimestampColumnName = SystemColumnNamePrefix + "timestamp"; +const std::string TtlColumnName = SystemColumnNamePrefix + "ttl"; +const std::string TimestampColumnPrefix = SystemColumnNamePrefix + "timestamp:"; +const std::string CumulativeDataWeightColumnName = SystemColumnNamePrefix + "cumulative_data_weight"; +const std::string EmptyValueColumnName = SystemColumnNamePrefix + "empty"; +const std::string SequenceNumberColumnName = SystemColumnNamePrefix + "sequence_number"; //////////////////////////////////////////////////////////////////////////////// diff --git a/yt/yt/client/table_client/public.h b/yt/yt/client/table_client/public.h index e52eaecf481..1c795adb329 100644 --- a/yt/yt/client/table_client/public.h +++ b/yt/yt/client/table_client/public.h @@ -77,7 +77,7 @@ using NTransactionClient::AsyncLastCommittedTimestamp; using NTransactionClient::AllCommittedTimestamp; using NTransactionClient::NotPreparedTimestamp; -using TKeyColumns = std::vector<TString>; +using TKeyColumns = std::vector<std::string>; //////////////////////////////////////////////////////////////////////////////// @@ -119,20 +119,20 @@ constexpr int MaxColumnId = 32 * 1024; constexpr int MaxSchemaTotalTypeComplexity = MaxColumnId; constexpr int MaxSchemaDepth = 32; +extern const std::string PrimaryLockName; -extern const TString PrimaryLockName; - -extern const TString SystemColumnNamePrefix; -extern const TString TableIndexColumnName; -extern const TString RowIndexColumnName; -extern const TString RangeIndexColumnName; -extern const TString TabletIndexColumnName; -extern const TString TimestampColumnName; -extern const TString TtlColumnName; -extern const TString TimestampColumnPrefix; -extern const TString CumulativeDataWeightColumnName; -extern const TString EmptyValueColumnName; -extern const TString SequenceNumberColumnName; +extern const std::string SystemColumnNamePrefix; +extern const std::string NonexistentColumnName; +extern const std::string TableIndexColumnName; +extern const std::string RowIndexColumnName; +extern const std::string RangeIndexColumnName; +extern const std::string TabletIndexColumnName; +extern const std::string TimestampColumnName; +extern const std::string TtlColumnName; +extern const std::string TimestampColumnPrefix; +extern const std::string CumulativeDataWeightColumnName; +extern const std::string EmptyValueColumnName; +extern const std::string SequenceNumberColumnName; constexpr int TypicalHunkColumnCount = 8; @@ -308,7 +308,7 @@ class TKeyComparer; struct TColumnRenameDescriptor; using TColumnRenameDescriptors = std::vector<TColumnRenameDescriptor>; -YT_DEFINE_STRONG_TYPEDEF(TColumnStableName, TString); +YT_DEFINE_STRONG_TYPEDEF(TColumnStableName, std::string); class TColumnSchema; diff --git a/yt/yt/client/table_client/schema.cpp b/yt/yt/client/table_client/schema.cpp index 3d5a8b92cea..1acb033cde4 100644 --- a/yt/yt/client/table_client/schema.cpp +++ b/yt/yt/client/table_client/schema.cpp @@ -148,33 +148,33 @@ void FromProto(TLockMask* lockMask, const NTabletClient::NProto::TLockMask& prot TColumnSchema::TColumnSchema() : TColumnSchema( - TString(), + std::string(), NullLogicalType(), std::nullopt) { } TColumnSchema::TColumnSchema( - TString name, + const std::string& name, EValueType type, std::optional<ESortOrder> sortOrder) : TColumnSchema( - std::move(name), + name, MakeLogicalType(GetLogicalType(type), /*required*/ false), sortOrder) { } TColumnSchema::TColumnSchema( - TString name, + const std::string& name, ESimpleLogicalValueType type, std::optional<ESortOrder> sortOrder) : TColumnSchema( - std::move(name), + name, MakeLogicalType(type, /*required*/ false), sortOrder) { } TColumnSchema::TColumnSchema( - TString name, + const std::string& name, TLogicalTypePtr type, std::optional<ESortOrder> sortOrder) : StableName_(name) @@ -184,13 +184,13 @@ TColumnSchema::TColumnSchema( SetLogicalType(std::move(type)); } -TColumnSchema& TColumnSchema::SetStableName(TColumnStableName value) +TColumnSchema& TColumnSchema::SetStableName(const TColumnStableName& value) { - StableName_ = std::move(value); + StableName_ = value; return *this; } -TColumnSchema& TColumnSchema::SetName(TString value) +TColumnSchema& TColumnSchema::SetName(const std::string& value) { Name_ = value; return *this; @@ -202,21 +202,21 @@ TColumnSchema& TColumnSchema::SetSortOrder(std::optional<ESortOrder> value) return *this; } -TColumnSchema& TColumnSchema::SetLock(std::optional<TString> value) +TColumnSchema& TColumnSchema::SetLock(const std::optional<std::string>& value) { - Lock_ = std::move(value); + Lock_ = value; return *this; } -TColumnSchema& TColumnSchema::SetGroup(std::optional<TString> value) +TColumnSchema& TColumnSchema::SetGroup(const std::optional<std::string>& value) { - Group_ = std::move(value); + Group_ = value; return *this; } -TColumnSchema& TColumnSchema::SetExpression(std::optional<TString> value) +TColumnSchema& TColumnSchema::SetExpression(const std::optional<TString>& value) { - Expression_ = std::move(value); + Expression_ = value; return *this; } @@ -226,9 +226,9 @@ TColumnSchema& TColumnSchema::SetMaterialized(std::optional<bool> value) return *this; } -TColumnSchema& TColumnSchema::SetAggregate(std::optional<TString> value) +TColumnSchema& TColumnSchema::SetAggregate(const std::optional<std::string>& value) { - Aggregate_ = std::move(value); + Aggregate_ = value; return *this; } @@ -300,7 +300,7 @@ bool TColumnSchema::IsRenamed() const return Name() != StableName().Underlying(); } -TString TColumnSchema::GetDiagnosticNameString() const +std::string TColumnSchema::GetDiagnosticNameString() const { if (IsRenamed()) { return Format("%Qv (stable name %Qv)", Name(), StableName().Underlying()); @@ -389,9 +389,9 @@ void FormatValue(TStringBuilderBase* builder, const TDeletedColumn& schema, TStr void ToProto(NProto::TColumnSchema* protoSchema, const TColumnSchema& schema) { - protoSchema->set_name(schema.Name()); + protoSchema->set_name(ToProto(schema.Name())); if (schema.IsRenamed()) { - protoSchema->set_stable_name(schema.StableName().Underlying()); + protoSchema->set_stable_name(ToProto(schema.StableName())); } protoSchema->set_type(ToProto(GetPhysicalType(schema.CastToV1Type()))); @@ -408,7 +408,7 @@ void ToProto(NProto::TColumnSchema* protoSchema, const TColumnSchema& schema) } ToProto(protoSchema->mutable_logical_type(), schema.LogicalType()); if (schema.Lock()) { - protoSchema->set_lock(*schema.Lock()); + protoSchema->set_lock(ToProto(*schema.Lock())); } else { protoSchema->clear_lock(); } @@ -423,7 +423,7 @@ void ToProto(NProto::TColumnSchema* protoSchema, const TColumnSchema& schema) protoSchema->clear_materialized(); } if (schema.Aggregate()) { - protoSchema->set_aggregate(*schema.Aggregate()); + protoSchema->set_aggregate(ToProto(*schema.Aggregate())); } else { protoSchema->clear_aggregate(); } @@ -433,7 +433,7 @@ void ToProto(NProto::TColumnSchema* protoSchema, const TColumnSchema& schema) protoSchema->clear_sort_order(); } if (schema.Group()) { - protoSchema->set_group(*schema.Group()); + protoSchema->set_group(ToProto(*schema.Group())); } else { protoSchema->clear_group(); } @@ -446,7 +446,7 @@ void ToProto(NProto::TColumnSchema* protoSchema, const TColumnSchema& schema) void ToProto(NProto::TDeletedColumn* protoSchema, const TDeletedColumn& schema) { - protoSchema->set_stable_name(schema.StableName().Underlying()); + protoSchema->set_stable_name(ToProto(schema.StableName())); } void FromProto(TColumnSchema* schema, const NProto::TColumnSchema& protoSchema) @@ -500,7 +500,7 @@ bool TTableSchema::TNameMapping::IsDeleted(const TColumnStableName& stableName) return Schema_.FindDeletedColumn(stableName) != nullptr; } -TString TTableSchema::TNameMapping::StableNameToName(const TColumnStableName& stableName) const +std::string TTableSchema::TNameMapping::StableNameToName(const TColumnStableName& stableName) const { auto* column = Schema_.FindColumnByStableName(stableName); if (!column) { @@ -523,7 +523,7 @@ TColumnStableName TTableSchema::TNameMapping::NameToStableName(TStringBuf name) THROW_ERROR_EXCEPTION("No column with name %Qv in strict schema", name); } } - return TColumnStableName(TString(name)); + return TColumnStableName(std::string(name)); } return column->StableName(); } @@ -705,7 +705,7 @@ TTableSchemaPtr TTableSchema::Filter(const TColumnFilter& columnFilter, bool dis DeletedColumns()); } -TTableSchemaPtr TTableSchema::Filter(const THashSet<TString>& columnNames, bool discardSortOrder) const +TTableSchemaPtr TTableSchema::Filter(const THashSet<std::string>& columnNames, bool discardSortOrder) const { TColumnFilter::TIndexes indexes; for (const auto& column : Columns()) { @@ -716,13 +716,13 @@ TTableSchemaPtr TTableSchema::Filter(const THashSet<TString>& columnNames, bool return Filter(TColumnFilter(std::move(indexes)), discardSortOrder); } -TTableSchemaPtr TTableSchema::Filter(const std::optional<std::vector<TString>>& columnNames, bool discardSortOrder) const +TTableSchemaPtr TTableSchema::Filter(const std::optional<std::vector<std::string>>& columnNames, bool discardSortOrder) const { if (!columnNames) { return Filter(TColumnFilter(), discardSortOrder); } - return Filter(THashSet<TString>(columnNames->begin(), columnNames->end()), discardSortOrder); + return Filter(THashSet<std::string>(columnNames->begin(), columnNames->end()), discardSortOrder); } bool TTableSchema::HasMaterializedComputedColumns() const @@ -835,12 +835,12 @@ int TTableSchema::GetColumnCount() const return ssize(Columns()); } -std::vector<TString> TTableSchema::GetColumnNames() const +std::vector<std::string> TTableSchema::GetColumnNames() const { if (!ColumnInfo_) { - return std::vector<TString>(); + return std::vector<std::string>(); } - std::vector<TString> result; + std::vector<std::string> result; const auto& info = *ColumnInfo_; result.reserve(info.Columns.size()); for (const auto& column : info.Columns) { @@ -870,8 +870,8 @@ const THunkColumnIds& TTableSchema::GetHunkColumnIds() const std::vector<TColumnStableName> MapNamesToStableNames( const TTableSchema& schema, - std::vector<TString> names, - const std::optional<TStringBuf>& missingColumnReplacement) + const std::vector<std::string>& names, + std::optional<TStringBuf> missingColumnReplacement) { std::vector<TColumnStableName> stableNames; stableNames.reserve(names.size()); @@ -882,7 +882,7 @@ std::vector<TColumnStableName> MapNamesToStableNames( } else if (!schema.GetStrict()) { stableNames.push_back(TColumnStableName(name)); } else if (missingColumnReplacement) { - stableNames.push_back(TColumnStableName(TString(*missingColumnReplacement))); + stableNames.push_back(TColumnStableName(std::string(*missingColumnReplacement))); } else { THROW_ERROR_EXCEPTION("Column %Qv is missing in strict schema", name); @@ -914,7 +914,7 @@ TSortColumns TTableSchema::GetSortColumns(const std::optional<TNameMapping>& nam if (column.SortOrder()) { const auto& name = actualNameMapping.StableNameToName(column.StableName()); sortColumns.push_back(TColumnSortSchema{ - .Name = TString(name), + .Name = std::string(name), .SortOrder = *column.SortOrder(), }); } @@ -1483,14 +1483,14 @@ void FormatValue(TStringBuilderBase* builder, const TTableSchemaPtr& schema, TSt } } -TString SerializeToWireProto(const TTableSchemaPtr& schema) +std::string SerializeToWireProto(const TTableSchemaPtr& schema) { NTableClient::NProto::TTableSchemaExt protoSchema; ToProto(&protoSchema, schema); return protoSchema.SerializeAsString(); } -void DeserializeFromWireProto(TTableSchemaPtr* schema, const TString& serializedProto) +void DeserializeFromWireProto(TTableSchemaPtr* schema, const std::string& serializedProto) { NTableClient::NProto::TTableSchemaExt protoSchema; if (!protoSchema.ParseFromString(serializedProto)) { @@ -1626,7 +1626,7 @@ bool IsEqualIgnoringRequiredness(const TTableSchema& lhs, const TTableSchema& rh // Parses description of the following form nested_key.name or nested_value.name or nested_value.name.sum std::optional<TNestedColumn> TryParseNestedAggregate(TStringBuf description) { - if (!description.StartsWith("nested")) { + if (!description.starts_with("nested")) { return std::nullopt; } @@ -1658,7 +1658,7 @@ std::optional<TNestedColumn> TryParseNestedAggregate(TStringBuf description) }; auto parseToken = [&] (TStringBuf token) { - if (TStringBuf(ptr, ptrEnd).StartsWith(token)) { + if (TStringBuf(ptr, ptrEnd).starts_with(token)) { ptr += token.size(); return true; } @@ -1749,7 +1749,7 @@ void ValidateKeyColumns(const TKeyColumns& keyColumns) { ValidateKeyColumnCount(keyColumns.size()); - THashSet<TString> names; + THashSet<std::string> names; for (const auto& name : keyColumns) { if (!names.insert(name).second) { THROW_ERROR_EXCEPTION("Duplicate key column name %Qv", @@ -1776,12 +1776,12 @@ void ValidateSystemColumnSchema( bool allowUnversionedUpdateColumns, bool allowTimestampColumns) { - static const auto allowedSortedTablesSystemColumns = THashMap<TString, ESimpleLogicalValueType>{ + static const auto allowedSortedTablesSystemColumns = THashMap<std::string, ESimpleLogicalValueType>{ {EmptyValueColumnName, ESimpleLogicalValueType::Int64}, {TtlColumnName, ESimpleLogicalValueType::Uint64}, }; - static const auto allowedOrderedTablesSystemColumns = THashMap<TString, ESimpleLogicalValueType>{ + static const auto allowedOrderedTablesSystemColumns = THashMap<std::string, ESimpleLogicalValueType>{ {TimestampColumnName, ESimpleLogicalValueType::Uint64}, {CumulativeDataWeightColumnName, ESimpleLogicalValueType::Int64}, }; @@ -1819,17 +1819,17 @@ void ValidateSystemColumnSchema( if (name == TUnversionedUpdateSchema::ChangeTypeColumnName) { validateType(ESimpleLogicalValueType::Uint64); return; - } else if (name.StartsWith(TUnversionedUpdateSchema::FlagsColumnNamePrefix)) { + } else if (name.starts_with(TUnversionedUpdateSchema::FlagsColumnNamePrefix)) { validateType(ESimpleLogicalValueType::Uint64); return; - } else if (name.StartsWith(TUnversionedUpdateSchema::ValueColumnNamePrefix)) { + } else if (name.starts_with(TUnversionedUpdateSchema::ValueColumnNamePrefix)) { // Value can have any type. return; } } if (allowTimestampColumns) { - if (name.StartsWith(TimestampColumnPrefix)) { + if (name.starts_with(TimestampColumnPrefix)) { validateType(ESimpleLogicalValueType::Uint64); return; } @@ -1840,7 +1840,7 @@ void ValidateSystemColumnSchema( name); } -void ValidateColumnName(const TString& name) +void ValidateColumnName(const std::string& name) { if (name.empty()) { THROW_ERROR_EXCEPTION("Column name cannot be empty"); @@ -1861,7 +1861,7 @@ void ValidateColumnSchema( bool allowUnversionedUpdateColumns, bool allowTimestampColumns) { - static const auto allowedAggregates = THashSet<TString>{ + static const auto allowedAggregates = THashSet<std::string, THash<TStringBuf>, TEqualTo<>>{ "sum", "min", "max", @@ -1872,7 +1872,7 @@ void ValidateColumnSchema( "dict_sum", }; - static const auto allowedNestedAggregates = THashSet<TString>{ + static const auto allowedNestedAggregates = THashSet<std::string, THash<TStringBuf>, TEqualTo<>>{ "sum", "max" }; @@ -1884,7 +1884,7 @@ void ValidateColumnSchema( const auto& name = columnSchema.Name(); ValidateColumnName(name); - if (stableName.Underlying().StartsWith(SystemColumnNamePrefix) || name.StartsWith(SystemColumnNamePrefix)) { + if (stableName.Underlying().starts_with(SystemColumnNamePrefix) || name.starts_with(SystemColumnNamePrefix)) { ValidateSystemColumnSchema( columnSchema, isTableSorted, @@ -2093,7 +2093,7 @@ void ValidatePivotKey( //! Validates that number of locks doesn't exceed #MaxColumnLockCount. void ValidateLocks(const TTableSchema& schema) { - THashSet<TString> lockNames; + THashSet<std::string> lockNames; YT_VERIFY(lockNames.insert(PrimaryLockName).second); for (const auto& column : schema.Columns()) { if (column.Lock()) { @@ -2323,11 +2323,11 @@ void ValidateNoRenamedColumns(const TTableSchema& schema) //////////////////////////////////////////////////////////////////////////////// -THashMap<TString, int> GetLocksMapping( +THashMap<std::string, int> GetLocksMapping( const NTableClient::TTableSchema& schema, bool fullAtomicity, std::vector<int>* columnIndexToLockIndex, - std::vector<TString>* lockIndexToName) + std::vector<std::string>* lockIndexToName) { if (columnIndexToLockIndex) { // Assign dummy lock indexes to key components. @@ -2338,7 +2338,7 @@ THashMap<TString, int> GetLocksMapping( lockIndexToName->push_back(PrimaryLockName); } - THashMap<TString, int> groupToIndex; + THashMap<std::string, int> groupToIndex; if (fullAtomicity) { // Assign lock indexes to data components. for (int index = schema.GetKeyColumnCount(); index < std::ssize(schema.Columns()); ++index) { @@ -2370,7 +2370,7 @@ THashMap<TString, int> GetLocksMapping( TLockMask GetLockMask( const NTableClient::TTableSchema& schema, bool fullAtomicity, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, ELockType lockType) { auto groupToIndex = GetLocksMapping(schema, fullAtomicity); @@ -2444,7 +2444,7 @@ TCellTaggedTableSchemaPtr::TCellTaggedTableSchemaPtr(TTableSchemaPtr tableSchema size_t THash<NYT::NTableClient::TColumnStableName>::operator()(const NYT::NTableClient::TColumnStableName& stableName) const { - return THash<TString>()(stableName.Underlying()); + return THash<std::string>()(stableName.Underlying()); } size_t THash<NYT::NTableClient::TColumnSchema>::operator()(const NYT::NTableClient::TColumnSchema& columnSchema) const diff --git a/yt/yt/client/table_client/schema.h b/yt/yt/client/table_client/schema.h index 4fd3c3f4861..7cbbc86048b 100644 --- a/yt/yt/client/table_client/schema.h +++ b/yt/yt/client/table_client/schema.h @@ -117,30 +117,30 @@ class TColumnSchema public: // Keep in sync with hasher below. DEFINE_BYREF_RO_PROPERTY(TColumnStableName, StableName); - DEFINE_BYREF_RO_PROPERTY(TString, Name); + DEFINE_BYREF_RO_PROPERTY(std::string, Name); DEFINE_BYREF_RO_PROPERTY(TLogicalTypePtr, LogicalType); DEFINE_BYREF_RO_PROPERTY(std::optional<ESortOrder>, SortOrder); - DEFINE_BYREF_RO_PROPERTY(std::optional<TString>, Lock); + DEFINE_BYREF_RO_PROPERTY(std::optional<std::string>, Lock); DEFINE_BYREF_RO_PROPERTY(std::optional<TString>, Expression); DEFINE_BYREF_RO_PROPERTY(std::optional<bool>, Materialized); - DEFINE_BYREF_RO_PROPERTY(std::optional<TString>, Aggregate); - DEFINE_BYREF_RO_PROPERTY(std::optional<TString>, Group); + DEFINE_BYREF_RO_PROPERTY(std::optional<std::string>, Aggregate); + DEFINE_BYREF_RO_PROPERTY(std::optional<std::string>, Group); DEFINE_BYREF_RO_PROPERTY(bool, Required); DEFINE_BYREF_RO_PROPERTY(std::optional<i64>, MaxInlineHunkSize); public: TColumnSchema(); TColumnSchema( - TString name, + const std::string& name, EValueType type, std::optional<ESortOrder> sortOrder = {}); TColumnSchema( - TString name, + const std::string& name, ESimpleLogicalValueType type, std::optional<ESortOrder> sortOrder = {}); TColumnSchema( - TString name, + const std::string& name, TLogicalTypePtr type, std::optional<ESortOrder> sortOrder = {}); @@ -150,16 +150,16 @@ public: TColumnSchema& operator=(const TColumnSchema&) = default; TColumnSchema& operator=(TColumnSchema&&) = default; - TColumnSchema& SetStableName(TColumnStableName stableName); - TColumnSchema& SetName(TString name); + TColumnSchema& SetStableName(const TColumnStableName& stableName); + TColumnSchema& SetName(const std::string& name); TColumnSchema& SetLogicalType(TLogicalTypePtr valueType); TColumnSchema& SetSimpleLogicalType(ESimpleLogicalValueType type); TColumnSchema& SetSortOrder(std::optional<ESortOrder> value); - TColumnSchema& SetLock(std::optional<TString> value); - TColumnSchema& SetExpression(std::optional<TString> value); + TColumnSchema& SetLock(const std::optional<std::string>& value); + TColumnSchema& SetExpression(const std::optional<TString>& value); TColumnSchema& SetMaterialized(std::optional<bool> value); - TColumnSchema& SetAggregate(std::optional<TString> value); - TColumnSchema& SetGroup(std::optional<TString> value); + TColumnSchema& SetAggregate(const std::optional<std::string>& value); + TColumnSchema& SetGroup(const std::optional<std::string>& value); TColumnSchema& SetRequired(bool value); TColumnSchema& SetMaxInlineHunkSize(std::optional<i64> value); @@ -176,7 +176,7 @@ public: ESimpleLogicalValueType CastToV1Type() const; bool IsRenamed() const; - TString GetDiagnosticNameString() const; + std::string GetDiagnosticNameString() const; private: ESimpleLogicalValueType V1Type_; @@ -221,7 +221,7 @@ public: explicit TNameMapping(const TTableSchema& schema); bool IsDeleted(const TColumnStableName& stableName) const; - TString StableNameToName(const TColumnStableName& stableName) const; + std::string StableNameToName(const TColumnStableName& stableName) const; TColumnStableName NameToStableName(TStringBuf name) const; private: @@ -267,16 +267,16 @@ public: const TColumnSchema* FindColumn(TStringBuf name) const; const TColumnSchema& GetColumn(TStringBuf name) const; const TColumnSchema& GetColumnOrThrow(TStringBuf name) const; - std::vector<TString> GetColumnNames() const; + std::vector<std::string> GetColumnNames() const; TTableSchemaPtr Filter( const TColumnFilter& columnFilter, bool discardSortOrder = false) const; TTableSchemaPtr Filter( - const THashSet<TString>& columnNames, + const THashSet<std::string>& columnNames, bool discardSortOrder = false) const; TTableSchemaPtr Filter( - const std::optional<std::vector<TString>>& columnNames, + const std::optional<std::vector<std::string>>& columnNames, bool discardSortOrder = false) const; bool HasMaterializedComputedColumns() const; @@ -432,9 +432,9 @@ void FormatValue(TStringBuilderBase* builder, const TTableSchema& schema, TStrin void FormatValue(TStringBuilderBase* builder, const TTableSchemaPtr& schema, TStringBuf spec); //! Returns serialized NTableClient.NProto.TTableSchemaExt. -TString SerializeToWireProto(const TTableSchemaPtr& schema); +std::string SerializeToWireProto(const TTableSchemaPtr& schema); -void DeserializeFromWireProto(TTableSchemaPtr* schema, const TString& serializedProto); +void DeserializeFromWireProto(TTableSchemaPtr* schema, const std::string& serializedProto); void Serialize(const TTableSchema& schema, NYson::IYsonConsumer* consumer); void Deserialize(TTableSchema& schema, NYTree::INodePtr node); @@ -473,12 +473,10 @@ bool IsEqualIgnoringRequiredness(const TTableSchema& lhs, const TTableSchema& rh //////////////////////////////////////////////////////////////////////////////// -static constexpr TStringBuf NonexistentColumnName = "$__YT_NONEXISTENT_COLUMN_NAME__"; - std::vector<TColumnStableName> MapNamesToStableNames( const TTableSchema& schema, - std::vector<TString> names, - const std::optional<TStringBuf>& missingColumnReplacement = std::nullopt); + const std::vector<std::string>& names, + std::optional<TStringBuf> missingColumnReplacement = std::nullopt); //////////////////////////////////////////////////////////////////////////////// @@ -499,7 +497,7 @@ void ValidateKeyColumns(const TKeyColumns& keyColumns); void ValidateDynamicTableKeyColumnCount(int count); -void ValidateColumnName(const TString& name); +void ValidateColumnName(const std::string& name); void ValidateColumnSchema( const TColumnSchema& columnSchema, @@ -528,16 +526,16 @@ void ValidatePivotKey( //////////////////////////////////////////////////////////////////////////////// -THashMap<TString, int> GetLocksMapping( +THashMap<std::string, int> GetLocksMapping( const NTableClient::TTableSchema& schema, bool fullAtomicity, std::vector<int>* columnIndexToLockIndex = nullptr, - std::vector<TString>* lockIndexToName = nullptr); + std::vector<std::string>* lockIndexToName = nullptr); TLockMask GetLockMask( const NTableClient::TTableSchema& schema, bool fullAtomicity, - const std::vector<TString>& locks, + const std::vector<std::string>& locks, ELockType lockType = ELockType::SharedWeak); //////////////////////////////////////////////////////////////////////////////// diff --git a/yt/yt/client/table_client/validate_logical_type.cpp b/yt/yt/client/table_client/validate_logical_type.cpp index 3e6b3d1d659..59cb8d2a0b9 100644 --- a/yt/yt/client/table_client/validate_logical_type.cpp +++ b/yt/yt/client/table_client/validate_logical_type.cpp @@ -448,7 +448,7 @@ private: Cursor_.Next(); } - TString GetDescription(const TFieldId& fieldId) const + std::string GetDescription(const TFieldId& fieldId) const { return fieldId.GetDescriptor(RootDescriptor_).GetDescription(); } @@ -509,7 +509,7 @@ private: { std::vector<int> path; const auto* current = this; - while (current->Parent_ != nullptr) { + while (current->Parent_) { path.push_back(current->SiblingIndex_); current = current->Parent_; } diff --git a/yt/yt/client/tablet_client/watermark_runtime_data.h b/yt/yt/client/tablet_client/watermark_runtime_data.h index 54c62c27bdf..08f876a3cf1 100644 --- a/yt/yt/client/tablet_client/watermark_runtime_data.h +++ b/yt/yt/client/tablet_client/watermark_runtime_data.h @@ -11,7 +11,7 @@ namespace NYT::NTabletClient { struct TWatermarkRuntimeDataConfig : public NYTree::TYsonStructLite { - TString ColumnName; + std::string ColumnName; ui64 Watermark; REGISTER_YSON_STRUCT_LITE(TWatermarkRuntimeDataConfig); diff --git a/yt/yt/client/unittests/mock/client.h b/yt/yt/client/unittests/mock/client.h index 43e8056b1ee..fc59a92b9bc 100644 --- a/yt/yt/client/unittests/mock/client.h +++ b/yt/yt/client/unittests/mock/client.h @@ -865,7 +865,7 @@ public: MOCK_METHOD(TFuture<IRowBatchWriterPtr>, CreateShuffleWriter, ( const TShuffleHandlePtr& shuffleHandle, - const TString& partitionColumn, + const std::string& partitionColumn, const NTableClient::TTableWriterConfigPtr& config), (override)); diff --git a/yt/yt/client/unittests/mock/table_reader.h b/yt/yt/client/unittests/mock/table_reader.h index be901f48814..a827b7c8b67 100644 --- a/yt/yt/client/unittests/mock/table_reader.h +++ b/yt/yt/client/unittests/mock/table_reader.h @@ -24,7 +24,7 @@ public: MOCK_METHOD(NTableClient::IUnversionedRowBatchPtr, Read, (const NTableClient::TRowBatchReadOptions& options), (override)); - MOCK_METHOD(const std::vector<TString>&, GetOmittedInaccessibleColumns, (), (const, override)); + MOCK_METHOD(const std::vector<std::string>&, GetOmittedInaccessibleColumns, (), (const, override)); const NTableClient::TNameTablePtr& GetNameTable() const override; diff --git a/yt/yt/client/ypath/parser_detail.cpp b/yt/yt/client/ypath/parser_detail.cpp index d1852f526f7..cb11a20767f 100644 --- a/yt/yt/client/ypath/parser_detail.cpp +++ b/yt/yt/client/ypath/parser_detail.cpp @@ -171,7 +171,7 @@ void ParseColumns(NYson::TTokenizer& tokenizer, IAttributeDictionary* attributes return; } - std::vector<TString> columns; + std::vector<std::string> columns; tokenizer.ParseNext(); while (tokenizer.GetCurrentType() != EndColumnSelectorToken) { diff --git a/yt/yt/client/ypath/rich.cpp b/yt/yt/client/ypath/rich.cpp index ddd386df64d..717194f64be 100644 --- a/yt/yt/client/ypath/rich.cpp +++ b/yt/yt/client/ypath/rich.cpp @@ -217,15 +217,15 @@ void TRichYPath::SetReadViaExecNode(bool value) Attributes().Set("read_via_exec_node", value); } -std::optional<std::vector<TString>> TRichYPath::GetColumns() const +std::optional<std::vector<std::string>> TRichYPath::GetColumns() const { if (Attributes().Contains("channel")) { THROW_ERROR_EXCEPTION("Deprecated attribute \"channel\" in YPath"); } - return FindAttribute<std::vector<TString>>(*this, "columns"); + return FindAttribute<std::vector<std::string>>(*this, "columns"); } -void TRichYPath::SetColumns(const std::vector<TString>& columns) +void TRichYPath::SetColumns(const std::vector<std::string>& columns) { Attributes().Set("columns", columns); } diff --git a/yt/yt/client/ypath/rich.h b/yt/yt/client/ypath/rich.h index b6d7d60ccf1..75335b7606d 100644 --- a/yt/yt/client/ypath/rich.h +++ b/yt/yt/client/ypath/rich.h @@ -67,8 +67,8 @@ public: void SetReadViaExecNode(bool value); // "columns" - std::optional<std::vector<TString>> GetColumns() const; - void SetColumns(const std::vector<TString>& columns); + std::optional<std::vector<std::string>> GetColumns() const; + void SetColumns(const std::vector<std::string>& columns); // "rename_columns" std::optional<NTableClient::TColumnRenameDescriptors> GetColumnRenameDescriptors() const; diff --git a/yt/yt/library/formats/arrow_writer.cpp b/yt/yt/library/formats/arrow_writer.cpp index 657da97ce54..a3ff967bc65 100644 --- a/yt/yt/library/formats/arrow_writer.cpp +++ b/yt/yt/library/formats/arrow_writer.cpp @@ -49,14 +49,14 @@ const TString AlignmentString(ArrowAlignment, 0); flatbuffers::Offset<flatbuffers::String> SerializeString( flatbuffers::FlatBufferBuilder* flatbufBuilder, - const TString& str) + const std::string& str) { return flatbufBuilder->CreateString(str.data(), str.length()); } std::tuple<org::apache::arrow::flatbuf::Type, flatbuffers::Offset<void>> SerializeColumnType( flatbuffers::FlatBufferBuilder* flatbufBuilder, - TColumnSchema schema) + const TColumnSchema& schema) { auto simpleType = CastToV1Type(schema.LogicalType()).first; switch (simpleType) { diff --git a/yt/yt/library/formats/protobuf.cpp b/yt/yt/library/formats/protobuf.cpp index 3da3f04b48b..a710bf9e610 100644 --- a/yt/yt/library/formats/protobuf.cpp +++ b/yt/yt/library/formats/protobuf.cpp @@ -1013,7 +1013,8 @@ void TProtobufFormatDescriptionBase<TType>::InitFromProtobufSchema( field->GetType()); } const auto& enumerationConfig = field->AsMap(); - EnumerationDescriptionMap_.emplace(name, CreateEnumerationMap(TimestampColumnName, enumerationConfig)); + // TODO(babenko): migrate to std::string + EnumerationDescriptionMap_.emplace(name, CreateEnumerationMap(TString(TimestampColumnName), enumerationConfig)); } } diff --git a/yt/yt/library/formats/schemaful_dsv_parser.cpp b/yt/yt/library/formats/schemaful_dsv_parser.cpp index 3149f288511..7137e2672df 100644 --- a/yt/yt/library/formats/schemaful_dsv_parser.cpp +++ b/yt/yt/library/formats/schemaful_dsv_parser.cpp @@ -26,9 +26,9 @@ public: void Finish() override; private: - IYsonConsumer* Consumer_; - TSchemafulDsvFormatConfigPtr Config_; - const std::vector<TString>& Columns_; + IYsonConsumer* const Consumer_; + const TSchemafulDsvFormatConfigPtr Config_; + const std::vector<std::string>& Columns_; TEscapeTable EscapeTable_; @@ -49,8 +49,8 @@ private: //////////////////////////////////////////////////////////////////////////////// TSchemafulDsvParser::TSchemafulDsvParser( - IYsonConsumer* consumer, - TSchemafulDsvFormatConfigPtr config) + IYsonConsumer* consumer, + TSchemafulDsvFormatConfigPtr config) : Consumer_(consumer) , Config_(config) , Columns_(Config_->GetColumnsOrThrow()) diff --git a/yt/yt/library/formats/schemaful_dsv_writer.cpp b/yt/yt/library/formats/schemaful_dsv_writer.cpp index 4d2e7e1e6ed..b37486c5814 100644 --- a/yt/yt/library/formats/schemaful_dsv_writer.cpp +++ b/yt/yt/library/formats/schemaful_dsv_writer.cpp @@ -266,9 +266,9 @@ private: //////////////////////////////////////////////////////////////////////////////// -void ValidateDuplicateColumns(const std::vector<TString>& columns) +void ValidateDuplicateColumns(const std::vector<std::string>& columns) { - THashSet<TString> names; + THashSet<std::string> names; for (const auto& name : columns) { if (!names.insert(name).second) { THROW_ERROR_EXCEPTION("Duplicate column name %Qv in schemaful DSV config", diff --git a/yt/yt/library/formats/web_json_writer.cpp b/yt/yt/library/formats/web_json_writer.cpp index d717cafb106..8049e134c98 100644 --- a/yt/yt/library/formats/web_json_writer.cpp +++ b/yt/yt/library/formats/web_json_writer.cpp @@ -48,7 +48,7 @@ static constexpr auto ContextBufferCapacity = 1_MB; class TWebJsonColumnFilter { public: - TWebJsonColumnFilter(int maxSelectedColumnCount, std::optional<THashSet<TString>> names) + TWebJsonColumnFilter(int maxSelectedColumnCount, std::optional<THashSet<std::string, THash<TStringBuf>, TEqualTo<>>> names) : MaxSelectedColumnCount_(maxSelectedColumnCount) , Names_(std::move(names)) { } @@ -68,7 +68,7 @@ public: private: const int MaxSelectedColumnCount_; - std::optional<THashSet<TString>> Names_; + const std::optional<THashSet<std::string, THash<TStringBuf>, TEqualTo<>>> Names_; THashSet<ui16> AcceptedColumnIds_; @@ -91,7 +91,7 @@ private: TWebJsonColumnFilter CreateWebJsonColumnFilter(const TWebJsonFormatConfigPtr& webJsonConfig) { - std::optional<THashSet<TString>> columnNames; + std::optional<THashSet<std::string, THash<TStringBuf>, TEqualTo<>>> columnNames; if (webJsonConfig->ColumnNames) { columnNames.emplace(); for (const auto& columnName : *webJsonConfig->ColumnNames) { diff --git a/yt/yt/library/formats/yamred_dsv_parser.cpp b/yt/yt/library/formats/yamred_dsv_parser.cpp index 476e760ea6f..79246cb92a8 100644 --- a/yt/yt/library/formats/yamred_dsv_parser.cpp +++ b/yt/yt/library/formats/yamred_dsv_parser.cpp @@ -17,39 +17,39 @@ class TYamredDsvParserConsumer public: TYamredDsvParserConsumer(IYsonConsumer* consumer, TYamredDsvFormatConfigPtr config) : TYamrConsumerBase(consumer) - , Config(config) - , DsvParser(CreateParserForDsv(consumer, ConvertTo<TDsvFormatConfigPtr>(Config), /*wrapWithMap*/ false)) + , Config_(config) + , DsvParser_(CreateParserForDsv(consumer, ConvertTo<TDsvFormatConfigPtr>(Config_), /*wrapWithMap*/ false)) { } void ConsumeKey(TStringBuf key) override { Consumer->OnListItem(); Consumer->OnBeginMap(); - ConsumeFields(Config->KeyColumnNames, key); + ConsumeFields(Config_->KeyColumnNames, key); } void ConsumeSubkey(TStringBuf subkey) override { - ConsumeFields(Config->SubkeyColumnNames, subkey); + ConsumeFields(Config_->SubkeyColumnNames, subkey); } void ConsumeValue(TStringBuf value) override { - DsvParser->Read(value); - DsvParser->Finish(); + DsvParser_->Read(value); + DsvParser_->Finish(); Consumer->OnEndMap(); } private: - TYamredDsvFormatConfigPtr Config; - std::unique_ptr<IParser> DsvParser; + const TYamredDsvFormatConfigPtr Config_; + const std::unique_ptr<IParser> DsvParser_; void ConsumeFields( - const std::vector<TString>& fieldNames, + const std::vector<std::string>& fieldNames, TStringBuf wholeField) { static const char* emptyString = ""; - char delimiter = Config->YamrKeysSeparator; + char delimiter = Config_->YamrKeysSeparator; std::vector<TStringBuf> fields; if (wholeField.length() == 0) { diff --git a/yt/yt/library/named_value/named_value.h b/yt/yt/library/named_value/named_value.h index 3a763465892..67592fe9f3d 100644 --- a/yt/yt/library/named_value/named_value.h +++ b/yt/yt/library/named_value/named_value.h @@ -38,11 +38,13 @@ NTableClient::TUnversionedOwningRow MakeRow( class TNamedValue { public: - struct TAny { + struct TAny + { TString Value; }; - struct TComposite { + struct TComposite + { TString Value; }; diff --git a/yt/yt/library/skiff_ext/parser-inl.h b/yt/yt/library/skiff_ext/parser-inl.h index 0f781646c96..a48498ba254 100644 --- a/yt/yt/library/skiff_ext/parser-inl.h +++ b/yt/yt/library/skiff_ext/parser-inl.h @@ -22,8 +22,8 @@ public: TConsumer* consumer, TSkiffSchemaList skiffSchemaList, const std::vector<TSkiffTableColumnIds>& tablesColumnIds, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName) + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName) : Consumer_(consumer) , SkiffSchemaList_(std::move(skiffSchemaList)) { @@ -183,8 +183,8 @@ TSkiffMultiTableParser<TConsumer>::TSkiffMultiTableParser( TConsumer* consumer, TSkiffSchemaList schemaList, const std::vector<TSkiffTableColumnIds>& tablesColumnIds, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName) + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName) : ParserImpl_(new TImpl(consumer, schemaList, tablesColumnIds, diff --git a/yt/yt/library/skiff_ext/parser.h b/yt/yt/library/skiff_ext/parser.h index d9fb4c43fa8..82ad4cea50f 100644 --- a/yt/yt/library/skiff_ext/parser.h +++ b/yt/yt/library/skiff_ext/parser.h @@ -19,8 +19,8 @@ public: TConsumer* consumer, NSkiff::TSkiffSchemaList schemaList, const std::vector<TSkiffTableColumnIds>& tablesColumnIds, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName); + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName); ~TSkiffMultiTableParser(); diff --git a/yt/yt/library/skiff_ext/schema_match.cpp b/yt/yt/library/skiff_ext/schema_match.cpp index 7587b8b8e94..390e7567985 100644 --- a/yt/yt/library/skiff_ext/schema_match.cpp +++ b/yt/yt/library/skiff_ext/schema_match.cpp @@ -20,7 +20,7 @@ const TString SparseColumnsName = "$sparse_columns"; //////////////////////////////////////////////////////////////////////////////// -static void ThrowInvalidSkiffTypeError(const TString& columnName, std::shared_ptr<TSkiffSchema> expectedType, std::shared_ptr<TSkiffSchema> actualType) +static void ThrowInvalidSkiffTypeError(const std::string& columnName, std::shared_ptr<TSkiffSchema> expectedType, std::shared_ptr<TSkiffSchema> actualType) { THROW_ERROR_EXCEPTION("Column %Qv has unexpected Skiff type: expected %Qv, found type %Qv", columnName, @@ -56,13 +56,13 @@ static ERowRangeIndexMode GetRowRangeIndexMode(const std::shared_ptr<TSkiffSchem static bool IsSkiffSpecialColumn( TStringBuf columnName, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName) + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName) { - static const THashSet<TString> specialColumns = { + static const THashSet<std::string, THash<TStringBuf>, TEqualTo<>> specialColumns{ KeySwitchColumnName, OtherColumnsName, - SparseColumnsName + SparseColumnsName, }; return specialColumns.contains(columnName) || columnName == rangeIndexColumnName || columnName == rowIndexColumnName; } @@ -85,8 +85,8 @@ static std::pair<std::shared_ptr<TSkiffSchema>, bool> DeoptionalizeSchema(std::s static TSkiffTableDescription CreateTableDescription( const std::shared_ptr<TSkiffSchema>& skiffSchema, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName) + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName) { TSkiffTableDescription result; THashSet<TString> topLevelNames; @@ -186,8 +186,8 @@ static TSkiffTableDescription CreateTableDescription( std::vector<TSkiffTableDescription> CreateTableDescriptionList( const std::vector<std::shared_ptr<TSkiffSchema>>& skiffSchemas, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName) + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName) { std::vector<TSkiffTableDescription> result; for (ui16 index = 0; index < skiffSchemas.size(); ++index) { diff --git a/yt/yt/library/skiff_ext/schema_match.h b/yt/yt/library/skiff_ext/schema_match.h index dc5a6c2dbc7..d7183c6ce39 100644 --- a/yt/yt/library/skiff_ext/schema_match.h +++ b/yt/yt/library/skiff_ext/schema_match.h @@ -76,8 +76,8 @@ struct TSkiffTableColumnIds std::vector<TSkiffTableDescription> CreateTableDescriptionList( const std::vector<std::shared_ptr<NSkiff::TSkiffSchema>>& skiffSchema, - const TString& rangeIndexColumnName, - const TString& rowIndexColumnName); + const std::string& rangeIndexColumnName, + const std::string& rowIndexColumnName); std::vector<std::shared_ptr<NSkiff::TSkiffSchema>> ParseSkiffSchemas( const NYTree::IMapNodePtr& skiffSchemaRegistry, |
