From 26f1eef93ae46d89836f7e1198612b656f329354 Mon Sep 17 00:00:00 2001 From: Innokentii Mokin Date: Tue, 16 Jul 2024 15:57:48 +0700 Subject: [PATCH] Distinguish outdated schema from invalid schema in repl apply (#6710) --- ydb/core/protos/tx_datashard.proto | 1 + ydb/core/tx/datashard/datashard_repl_apply.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ydb/core/protos/tx_datashard.proto b/ydb/core/protos/tx_datashard.proto index cf528ba91081..08c90b566d6a 100644 --- a/ydb/core/protos/tx_datashard.proto +++ b/ydb/core/protos/tx_datashard.proto @@ -1829,6 +1829,7 @@ message TEvApplyReplicationChangesResult { REASON_SCHEME_ERROR = 2; REASON_BAD_REQUEST = 3; REASON_UNEXPECTED_ROW_OPERATION = 4; + REASON_OUTDATED_SCHEME = 6; } optional EStatus Status = 1; diff --git a/ydb/core/tx/datashard/datashard_repl_apply.cpp b/ydb/core/tx/datashard/datashard_repl_apply.cpp index 92533d7befde..921ea6b94f5b 100644 --- a/ydb/core/tx/datashard/datashard_repl_apply.cpp +++ b/ydb/core/tx/datashard/datashard_repl_apply.cpp @@ -65,7 +65,9 @@ class TDataShard::TTxApplyReplicationChanges : public TTransactionBase( NKikimrTxDataShard::TEvApplyReplicationChangesResult::STATUS_REJECTED, - NKikimrTxDataShard::TEvApplyReplicationChangesResult::REASON_SCHEME_ERROR, + tableId.GetSchemaVersion() < userTable.GetTableSchemaVersion() + ? NKikimrTxDataShard::TEvApplyReplicationChangesResult::REASON_OUTDATED_SCHEME + : NKikimrTxDataShard::TEvApplyReplicationChangesResult::REASON_SCHEME_ERROR, std::move(error)); return true; }