[
https://issues.apache.org/jira/browse/HIVE-26931?focusedWorklogId=842649&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-842649
]
ASF GitHub Bot logged work on HIVE-26931:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 31/Jan/23 17:51
Start Date: 31/Jan/23 17:51
Worklog Time Spent: 10m
Work Description: subhasisgorai opened a new pull request, #4003:
URL: https://github.com/apache/hive/pull/4003
### What changes were proposed in this pull request?
While performing a REPL LOAD, the source and target database names are made
mandatory.
### Why are the changes needed?
The standard REPL LOAD syntax is,
`repl load src into tgt with ( <config properties (if any) >);`
But in some cases, users are using the REPL LOAD command incorrectly. It
does not really throw any meaningful error/warning message, and as expected it
does not replicate the database as well.
For example,
`repl load target_db with
('hive.repl.rootdir'='hdfs://c3649-node2.coelab.cloudera.com:8020/user/hive/repl',
'hive.repl.include.external.tables'= 'true',
'hive.repl.replica.external.table.base.dir'='hdfs://c3649node2.coelab.cloudera.com:8020/warehouse/tablespace/external/hive/target_db.db')
`
The above command does not follow the REPL LOAD syntax. This does not
produce any error message, nor it replicates the database. So, it causes
confusion.
### Does this PR introduce _any_ user-facing change?
No, it's more of a validation for the correct REPL LOAD usage.
### How was this patch tested?
Tested manually, and also updated the automated tests to reflect this.
Issue Time Tracking
-------------------
Worklog Id: (was: 842649)
Remaining Estimate: 0h
Time Spent: 10m
> REPL LOAD command does not throw any error for incorrect syntax
> ---------------------------------------------------------------
>
> Key: HIVE-26931
> URL: https://issues.apache.org/jira/browse/HIVE-26931
> Project: Hive
> Issue Type: Bug
> Components: HiveServer2
> Reporter: Subhasis Gorai
> Assignee: Subhasis Gorai
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> In some cases, users are using the REPL LOAD command incorrectly. It does not
> really throw any meaningful error/warning message, and as expected it does
> not replicate the database as well.
> For example,
> {code:java}
> repl load target_db with
> ('hive.repl.rootdir'='hdfs://c3649-node2.coelab.cloudera.com:8020/user/hive/repl',
> 'hive.repl.include.external.tables'= 'true',
> 'hive.repl.replica.external.table.base.dir'='hdfs://c3649node2.coelab.cloudera.com:8020/warehouse/tablespace/external/hive/target_db.db'){code}
> The above command does not follow the REPL LOAD syntax. This does not produce
> any error message, nor it replicates the database. So, it causes confusion.
> {code:java}
> 0: jdbc:hive2://nightly7x-us-bj-3.nightly7x-u> repl load test_1_replica with
> ('hive.repl.rootdir'='hdfs://c3649-node2.coelab.cloudera.com:8020/user/repl',
> 'hive.repl.include.external.tables'= 'true',
> 'hive.repl.replica.external.table.base.dir'='hdfs://c3649node2.coelab.cloudera.com:8020/warehouse/tablespace/external/hive/test_1_replica.db');
> INFO : Compiling
> command(queryId=hive_20221201113704_08ee46a6-ede9-4c92-9502-82b9fbc416bd):
> repl load test_1_replica with
> ('hive.repl.rootdir'='hdfs://c3649-node2.coelab.cloudera.com:8020/user/repl',
> 'hive.repl.include.external.tables'= 'true',
> 'hive.repl.replica.external.table.base.dir'='hdfs://c3649node2.coelab.cloudera.com:8020/warehouse/tablespace/external/hive/test_1_replica.db')
> INFO : Semantic Analysis Completed (retrial = false)
> INFO : Created Hive schema: Schema(fieldSchemas:null, properties:null)
> INFO : Completed compiling
> command(queryId=hive_20221201113704_08ee46a6-ede9-4c92-9502-82b9fbc416bd);
> Time taken: 0.051 seconds
> INFO : Executing
> command(queryId=hive_20221201113704_08ee46a6-ede9-4c92-9502-82b9fbc416bd):
> repl load test_1_replica with
> ('hive.repl.rootdir'='hdfs://c3649-node2.coelab.cloudera.com:8020/user/repl',
> 'hive.repl.include.external.tables'= 'true',
> 'hive.repl.replica.external.table.base.dir'='hdfs://c3649node2.coelab.cloudera.com:8020/warehouse/tablespace/external/hive/test_1_replica.db')
> INFO : Completed executing
> command(queryId=hive_20221201113704_08ee46a6-ede9-4c92-9502-82b9fbc416bd);
> Time taken: 0.001 seconds
> INFO : OK
> No rows affected (0.065 seconds)
> 0: jdbc:hive2://nightly7x-us-bj-3.nightly7x-u>{code}
> Ideally, since this is a wrong command, it should throw an error.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)