Github user ijokarumawak commented on the issue:
https://github.com/apache/nifi/pull/2518
@MikeThomsen Thanks for the quick update, I will continue reviewing.
@bbende Thanks for the info. What I was wondering about is why HBase
requires a 'Visibility Label Expression' instead of a comma separated
visibility label list for delete operations.
In order to understand the theme more, I installed and played with
Accumulo, too. It turned out Accumulo and HBase both require 'Visibility Label
Expression' for delete.
@joshelser Would you please educate me why delete operation uses expression
instead of a comma separated labels as scan does? E.g. to delete a cell having
`(apple&carrot)|broccoli|spinach`, I had to specify exactly the same
expression. I expected executing a delete request by a user having all of
authorizations would delete the cell, or the logical expression would match if
`spinach` was specified. But it didn't behave like that, a matching expression
was needed.
Following results are what I got executing delete operations based on the
[Accumulo example](https://accumulo.apache.org/1.7/examples/visibility):
```
# Insert test data
username@instance vistest> insert row f1 q1 v1 -l A
username@instance vistest> insert row f2 q2 v2 -l A&B
username@instance vistest> insert row f3 q3 v3 -l
(apple&carrot)|broccoli|spinach
# It seems users authorizations are not used for delete, and need to be
specified explicitly
username@instance vistest> delete row f1 q1
username@instance vistest> scan
row f1:q1 [A] v1
row f2:q2 [A&B] v2
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
username@instance vistest> delete row f1 q1 -l A
username@instance vistest> scan
row f2:q2 [A&B] v2
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
# Specifying wrong label does not return error
username@instance vistest> delete row f3 q3 -l spina
username@instance vistest> scan
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
# The visibility label expression should match exactly
username@instance vistest> delete row f3 q3 -l spinach
username@instance vistest> scan
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
username@instance vistest> delete row f3 q3 -l spinach|broccoli
username@instance vistest> scan
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
username@instance vistest> delete row f3 q3 -l
spinach|broccoli|(apple&carrot)
username@instance vistest> scan
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
username@instance vistest> delete row f3 q3 -l (apple&carrot)|broccoli
username@instance vistest> scan
row f3:q3 [(apple&carrot)|broccoli|spinach] v3
username@instance vistest> delete row f3 q3 -l
(apple&carrot)|broccoli|spinach
username@instance vistest> scan
# There are no rows
username@instance vistest>
```
---