[
https://issues.apache.org/jira/browse/HBASE-21636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16764120#comment-16764120
]
Nihal Jain commented on HBASE-21636:
------------------------------------
{quote}
{code:java}
replica_id = args[REGION_REPLICA_ID]
isolation_level = args[ISOLATION_LEVEL]
read_type = args[READ_TYPE]
{code}
Dumb question: how do these fields get the default values?
{quote}
The following lines ensure that we set the corresponding fields for {{scan}}
object only if the corresponding argument was passed by user.
{code:java}
563 scan.setReplicaId(replica_id) if replica_id
564
scan.setIsolationLevel(org.apache.hadoop.hbase.client.IsolationLevel.valueOf(isolation_level))
if isolation_level
565
scan.setReadType(org.apache.hadoop.hbase.client::Scan::ReadType.valueOf(read_type))
if read_type
{code}
For example: {{replica_id = args[REGION_REPLICA_ID]}} would initialize
{{replica_id}} to some {{non-nil}} value if user passes it in {{args}},
otherwise it is initialized as {{nil}}.
Next, the body of statement: {{scan.setReplicaId(replica_id) if replica_id}},
would execute if the condition: {{if replica_id}} evaluates to {{true}}.
In case {{replica_id}} is {{nil}}, we won't even execute
{{scan.setReplicaId(replica_id).}} So, we don't need to initialize to default
values, as we won't even make the scan.setX() call.
I hope this makes sense.
[Sorry for delayed reply, was away from my laptop]
> Enhance the shell scan command to support missing scanner specifications like
> ReadType, IsolationLevel etc.
> -----------------------------------------------------------------------------------------------------------
>
> Key: HBASE-21636
> URL: https://issues.apache.org/jira/browse/HBASE-21636
> Project: HBase
> Issue Type: Improvement
> Components: shell
> Affects Versions: 3.0.0, 2.0.0, 2.1.2
> Reporter: Nihal Jain
> Assignee: Nihal Jain
> Priority: Major
> Attachments: HBASE-21636.master.001.patch,
> HBASE-21636.master.002.patch
>
>
> Enhance the shell scan command to support scanner specifications:
> - ReadType
> - IsolationLevel
> - Region replica id
> - Allow partial results
> - Batch
> - Max result size
> Also, make use of \{{limit}} and set it in the scan object to limit the
> number of rows returned by the scanner.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)