@@ -469,6 +469,16 @@ class TTableDescription::TImpl {
469469 Indexes_.emplace_back (TIndexDescription (indexName, type, indexColumns, dataColumns));
470470 }
471471
472+ void AddSecondaryIndex (
473+ const TString& indexName,
474+ EIndexType type,
475+ const TVector<TString>& indexColumns,
476+ const TVector<TString>& dataColumns,
477+ const TGlobalIndexSettings& globalIndexSettings
478+ ) {
479+ Indexes_.emplace_back (TIndexDescription (indexName, type, indexColumns, dataColumns, { globalIndexSettings }));
480+ }
481+
472482 void AddVectorIndex (const TString& indexName, EIndexType type, const TVector<TString>& indexColumns, const TVectorIndexSettings& vectorIndexSettings) {
473483 Indexes_.emplace_back (TIndexDescription (indexName, type, indexColumns, {}, {}, vectorIndexSettings));
474484 }
@@ -749,6 +759,16 @@ void TTableDescription::AddSecondaryIndex(const TString& indexName, EIndexType t
749759 Impl_->AddSecondaryIndex (indexName, type, indexColumns, dataColumns);
750760}
751761
762+ void TTableDescription::AddSecondaryIndex (
763+ const TString& indexName,
764+ EIndexType type,
765+ const TVector<TString>& indexColumns,
766+ const TVector<TString>& dataColumns,
767+ const TGlobalIndexSettings& globalIndexSettings
768+ ) {
769+ Impl_->AddSecondaryIndex (indexName, type, indexColumns, dataColumns, globalIndexSettings);
770+ }
771+
752772void TTableDescription::AddSyncSecondaryIndex (const TString& indexName, const TVector<TString>& indexColumns) {
753773 AddSecondaryIndex (indexName, EIndexType::GlobalSync, indexColumns);
754774}
@@ -1173,6 +1193,17 @@ TTableBuilder& TTableBuilder::SetPrimaryKeyColumn(const TString& primaryKeyColum
11731193 return *this ;
11741194}
11751195
1196+ TTableBuilder& TTableBuilder::AddSecondaryIndex (
1197+ const TString& indexName,
1198+ EIndexType type,
1199+ const TVector<TString>& indexColumns,
1200+ const TVector<TString>& dataColumns,
1201+ const TGlobalIndexSettings& globalIndexSettings
1202+ ) {
1203+ TableDescription_.AddSecondaryIndex (indexName, type, indexColumns, dataColumns, globalIndexSettings);
1204+ return *this ;
1205+ }
1206+
11761207TTableBuilder& TTableBuilder::AddSecondaryIndex (const TString& indexName, EIndexType type, const TVector<TString>& indexColumns, const TVector<TString>& dataColumns) {
11771208 TableDescription_.AddSecondaryIndex (indexName, type, indexColumns, dataColumns);
11781209 return *this ;
@@ -2364,7 +2395,7 @@ TVectorIndexSettings TVectorIndexSettings::FromProto(const TProto& proto) {
23642395 default :
23652396 return EVectorType::Unknown;
23662397 }
2367- };
2398+ };
23682399
23692400
23702401 auto metricFromProto = [&](const auto & proto) -> TVectorIndexSettings::TMetric {
@@ -2376,7 +2407,7 @@ TVectorIndexSettings TVectorIndexSettings::FromProto(const TProto& proto) {
23762407 default :
23772408 return {};
23782409 }
2379- };
2410+ };
23802411
23812412 return {
23822413 .Metric = metricFromProto (proto),
@@ -2424,8 +2455,8 @@ void TVectorIndexSettings::SerializeTo(Ydb::Table::VectorIndexSettings& settings
24242455 return Ydb::Table::VectorIndexSettings::VECTOR_TYPE_UNSPECIFIED;
24252456 }
24262457 };
2427-
2428-
2458+
2459+
24292460 if (const auto * distance = std::get_if<EDistance>(&Metric)) {
24302461 settings.set_distance (convertDistance (*distance));
24312462 } else if (const auto * similarity = std::get_if<ESimilarity>(&Metric)) {
0 commit comments