Implements a policy that only accepts truly idempotent mutations.
This policy accepts only truly idempotent mutations, that is, it rejects mutations where the server sets the timestamp. Some applications may find this too restrictive and can set their own policies if they wish.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThe latest version available is 2.37.0-rc, with links to documentation for that and many previous versions of the SafeIdempotentMutationPolicy class.\u003c/p\u003e\n"],["\u003cp\u003eThe SafeIdempotentMutationPolicy implements a strict policy that only accepts mutations that are truly idempotent, and it rejects mutations where the server sets the timestamp.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides a \u003ccode\u003eclone()\u003c/code\u003e function that returns a copy of the policy as a unique pointer to \u003ccode\u003eIdempotentMutationPolicy\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eis_idempotent()\u003c/code\u003e function determines whether a single \u003ccode\u003egoogle::bigtable::v2::Mutation\u003c/code\u003e or a conditional \u003ccode\u003egoogle::bigtable::v2::CheckAndMutateRowRequest\u003c/code\u003e is idempotent.\u003c/p\u003e\n"]]],[],null,["# Class SafeIdempotentMutationPolicy (2.42.0-rc)\n\nVersion latestkeyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/bigtable/latest/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.41.0](/cpp/docs/reference/bigtable/2.41.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.40.0](/cpp/docs/reference/bigtable/2.40.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.39.0](/cpp/docs/reference/bigtable/2.39.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.38.0](/cpp/docs/reference/bigtable/2.38.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.37.0](/cpp/docs/reference/bigtable/2.37.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.36.0](/cpp/docs/reference/bigtable/2.36.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.35.0](/cpp/docs/reference/bigtable/2.35.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.34.0](/cpp/docs/reference/bigtable/2.34.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.33.0](/cpp/docs/reference/bigtable/2.33.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.32.0](/cpp/docs/reference/bigtable/2.32.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.31.0](/cpp/docs/reference/bigtable/2.31.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.30.0](/cpp/docs/reference/bigtable/2.30.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.29.0](/cpp/docs/reference/bigtable/2.29.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.28.0](/cpp/docs/reference/bigtable/2.28.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.27.0](/cpp/docs/reference/bigtable/2.27.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.26.0](/cpp/docs/reference/bigtable/2.26.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.25.1](/cpp/docs/reference/bigtable/2.25.1/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.24.0](/cpp/docs/reference/bigtable/2.24.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.23.0](/cpp/docs/reference/bigtable/2.23.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.22.1](/cpp/docs/reference/bigtable/2.22.1/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.21.0](/cpp/docs/reference/bigtable/2.21.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.20.0](/cpp/docs/reference/bigtable/2.20.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.19.0](/cpp/docs/reference/bigtable/2.19.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.18.0](/cpp/docs/reference/bigtable/2.18.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.17.0](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.16.0](/cpp/docs/reference/bigtable/2.16.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.15.1](/cpp/docs/reference/bigtable/2.15.1/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.14.0](/cpp/docs/reference/bigtable/2.14.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.13.0](/cpp/docs/reference/bigtable/2.13.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.12.0](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy)\n- [2.11.0](/cpp/docs/reference/bigtable/2.11.0/classgoogle_1_1cloud_1_1bigtable_1_1SafeIdempotentMutationPolicy) \nImplements a policy that only accepts truly idempotent mutations. \nThis policy accepts only truly idempotent mutations, that is, it rejects mutations where the server sets the timestamp. Some applications may find this too restrictive and can set their own policies if they wish.\n\nConstructors\n------------\n\n### SafeIdempotentMutationPolicy()\n\nFunctions\n---------\n\n### virtual clone() const\n\nReturn a copy of the policy.\n\n### virtual is_idempotent(google::bigtable::v2::Mutation const \\&)\n\nReturn true if the mutation is idempotent.\n\n### virtual is_idempotent(google::bigtable::v2::CheckAndMutateRowRequest const \\&)\n\nReturn true if a conditional mutation is idempotent."]]