[
https://issues.apache.org/jira/browse/HBASE-29721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HBASE-29721:
-----------------------------------
Labels: pull-request-available (was: )
> Add validation for Mutations without column families
> ----------------------------------------------------
>
> Key: HBASE-29721
> URL: https://issues.apache.org/jira/browse/HBASE-29721
> Project: HBase
> Issue Type: Improvement
> Reporter: Jaehui Lee
> Assignee: Jaehui Lee
> Priority: Minor
> Labels: pull-request-available
>
> h2. Problem
> When executing an Increment without column families via batch API, the client
> does not throw an error and the operation succeeds silently, resulting in no
> actual changes.
> h2. Description
> There are four classes that inherit from the Mutation class: Put, Increment,
> Append, and Delete.
> These mutations can be executed through the following APIs:
> * Direct method calls (table.put(), table.increment(), table.append(),
> table.delete())
> * table.mutateRow()
> * bufferedMutator.mutate()
> * table.checkAndMutate()
> * table.batch()
> The following table summarizes the behavior when each Mutation type lacks
> column families across different APIs:
> ||API \ Mutation||Put||Increment||Append||Delete||
> |Direct method call|✗|✗|✗|✓|
> |table.mutateRow()|✗|✓|✓|✓|
> |bufferedMutator.mutate()|✗|✓|✓|✓|
> |table.checkAndMutate()|✗|✓|✓|✓|
> |table.batch()|✗|✓|✓|✓|
> (✗ = fails/throws exception, ✓ = succeeds/allowed)
> Delete operations are naturally allowed without column families because a
> Delete with only a row key means deleting the entire row.
> Put operations are properly validated in all cases—they fail when column
> families are missing.
> However, Increment and Append should also fail in all cases when column
> families are absent, but currently they only fail on direct method calls.
> They are incorrectly allowed through other APIs.
> h2. Solution
> Currently, only the validatePut() method exists to validate Put operations at
> the client level. This validation should be extended to all Mutation types
> except Delete.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)