You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Junegunn Choi (Jira)" <ji...@apache.org> on 2024/04/24 03:39:00 UTC

[jira] [Assigned] (HBASE-28549) Make shell commands support column qualifiers with colons

     [ https://issues.apache.org/jira/browse/HBASE-28549?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junegunn Choi reassigned HBASE-28549:
-------------------------------------

    Assignee: Junegunn Choi

> Make shell commands support column qualifiers with colons
> ---------------------------------------------------------
>
>                 Key: HBASE-28549
>                 URL: https://issues.apache.org/jira/browse/HBASE-28549
>             Project: HBase
>          Issue Type: Bug
>          Components: shell
>            Reporter: Junegunn Choi
>            Assignee: Junegunn Choi
>            Priority: Major
>
> Revisiting abandonded HBASE-13788.
> h2. Problem
> Shell commands do not support column qualifiers with colons (which are actually quite common in practice) because the part after the first colon is always treated as a converter expression.
> This can be too restrictive because:
> # Converters are only used for {{get}} and {{scan}} commands. They are not supported anyway for other mutating commands such as {{put}}, {{delete}}, {{incr}}, etc.
> # Converter expression should follow a specific pattern. It should either be a method name of the {{Bytes}} class, or should be in {{c(CLASS).METHOD}} format. We ignore the part after the first colon even if it does not follow the pattern.
> h2. Suggested solution
> I suggest applying two approaches to make the commands support column qualifiers with colons.
> # Do not interpret column qualifiers when using commands that don't support converters.
> # If the part after the first colon does not follow the pattern, treat it as a part of the column qualifier
> h2. Counterargument
> Depending on how you see it, this makes the commands inconsistent in how they handle column qualifiers. For example, a user may want to use the same column expression throughout the commands.
> {code}
> create 't1', 'cf'
> col = 'cf:cq:toLong'
> # Expecting incr command to automatically ignore :toLong part
> incr 't1', 'r1', col, 1
> get 't1', 'r1', COLUMNS => [col]
> {code}
> However, if we see the converter as an option that is supported by only a few commands, passing it to a command that doesn't support it can be considered to be a user error. {{help 'put'}} or {{help 'delete'}} don't mention anything about converters.
> h2. Alternative solution
> An alternative solution would be to add a global switch that disables the converter interpretation altogether.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)