@@ -2816,56 +2816,79 @@ TChangefeedDescription TChangefeedDescription::FromProto(const TProto& proto) {
28162816 return ret;
28172817}
28182818
2819- void TChangefeedDescription::SerializeTo (Ydb::Table::Changefeed& proto) const {
2819+ template <typename TProto>
2820+ void TChangefeedDescription::SerializeCommonFields (TProto& proto) const {
28202821 proto.set_name (Name_);
28212822 proto.set_virtual_timestamps (VirtualTimestamps_);
2822- proto.set_initial_scan (InitialScan_);
28232823 proto.set_aws_region (AwsRegion_);
28242824
28252825 switch (Mode_) {
2826- case EChangefeedMode::KeysOnly:
2827- proto.set_mode (Ydb::Table::ChangefeedMode::MODE_KEYS_ONLY);
2828- break ;
2829- case EChangefeedMode::Updates:
2830- proto.set_mode (Ydb::Table::ChangefeedMode::MODE_UPDATES);
2831- break ;
2832- case EChangefeedMode::NewImage:
2833- proto.set_mode (Ydb::Table::ChangefeedMode::MODE_NEW_IMAGE);
2834- break ;
2835- case EChangefeedMode::OldImage:
2836- proto.set_mode (Ydb::Table::ChangefeedMode::MODE_OLD_IMAGE);
2837- break ;
2838- case EChangefeedMode::NewAndOldImages:
2839- proto.set_mode (Ydb::Table::ChangefeedMode::MODE_NEW_AND_OLD_IMAGES);
2840- break ;
2841- case EChangefeedMode::Unknown:
2842- break ;
2826+ case EChangefeedMode::KeysOnly:
2827+ proto.set_mode (Ydb::Table::ChangefeedMode::MODE_KEYS_ONLY);
2828+ break ;
2829+ case EChangefeedMode::Updates:
2830+ proto.set_mode (Ydb::Table::ChangefeedMode::MODE_UPDATES);
2831+ break ;
2832+ case EChangefeedMode::NewImage:
2833+ proto.set_mode (Ydb::Table::ChangefeedMode::MODE_NEW_IMAGE);
2834+ break ;
2835+ case EChangefeedMode::OldImage:
2836+ proto.set_mode (Ydb::Table::ChangefeedMode::MODE_OLD_IMAGE);
2837+ break ;
2838+ case EChangefeedMode::NewAndOldImages:
2839+ proto.set_mode (Ydb::Table::ChangefeedMode::MODE_NEW_AND_OLD_IMAGES);
2840+ break ;
2841+ case EChangefeedMode::Unknown:
2842+ break ;
28432843 }
28442844
28452845 switch (Format_) {
2846- case EChangefeedFormat::Json:
2847- proto.set_format (Ydb::Table::ChangefeedFormat::FORMAT_JSON);
2848- break ;
2849- case EChangefeedFormat::DynamoDBStreamsJson:
2850- proto.set_format (Ydb::Table::ChangefeedFormat::FORMAT_DYNAMODB_STREAMS_JSON);
2851- break ;
2852- case EChangefeedFormat::DebeziumJson:
2853- proto.set_format (Ydb::Table::ChangefeedFormat::FORMAT_DEBEZIUM_JSON);
2854- break ;
2855- case EChangefeedFormat::Unknown:
2856- break ;
2846+ case EChangefeedFormat::Json:
2847+ proto.set_format (Ydb::Table::ChangefeedFormat::FORMAT_JSON);
2848+ break ;
2849+ case EChangefeedFormat::DynamoDBStreamsJson:
2850+ proto.set_format (Ydb::Table::ChangefeedFormat::FORMAT_DYNAMODB_STREAMS_JSON);
2851+ break ;
2852+ case EChangefeedFormat::DebeziumJson:
2853+ proto.set_format (Ydb::Table::ChangefeedFormat::FORMAT_DEBEZIUM_JSON);
2854+ break ;
2855+ case EChangefeedFormat::Unknown:
2856+ break ;
28572857 }
28582858
28592859 if (ResolvedTimestamps_) {
28602860 SetDuration (*ResolvedTimestamps_, *proto.mutable_resolved_timestamps_interval ());
28612861 }
28622862
2863+ for (const auto & [key, value] : Attributes_) {
2864+ (*proto.mutable_attributes ())[key] = value;
2865+ }
2866+ }
2867+
2868+ void TChangefeedDescription::SerializeTo (Ydb::Table::Changefeed& proto) const {
2869+ SerializeCommonFields (proto);
2870+ proto.set_initial_scan (InitialScan_);
2871+
28632872 if (RetentionPeriod_) {
28642873 SetDuration (*RetentionPeriod_, *proto.mutable_retention_period ());
28652874 }
2875+ }
28662876
2867- for (const auto & [key, value] : Attributes_) {
2868- (*proto.mutable_attributes ())[key] = value;
2877+ void TChangefeedDescription::SerializeTo (Ydb::Table::ChangefeedDescription& proto) const {
2878+ SerializeCommonFields (proto);
2879+
2880+ switch (State_) {
2881+ case EChangefeedState::Enabled:
2882+ proto.set_state (Ydb::Table::ChangefeedDescription_State::ChangefeedDescription_State_STATE_ENABLED);
2883+ break ;
2884+ case EChangefeedState::Disabled:
2885+ proto.set_state (Ydb::Table::ChangefeedDescription_State::ChangefeedDescription_State_STATE_DISABLED);
2886+ break ;
2887+ case EChangefeedState::InitialScan:
2888+ proto.set_state (Ydb::Table::ChangefeedDescription_State::ChangefeedDescription_State_STATE_INITIAL_SCAN);
2889+ break ;
2890+ case EChangefeedState::Unknown:
2891+ break ;
28692892 }
28702893}
28712894
0 commit comments