Raghav Aggarwal created HIVE-28654:
--------------------------------------

             Summary: MSCK repair fails for default partition when partition 
column is of numeric type
                 Key: HIVE-28654
                 URL: https://issues.apache.org/jira/browse/HIVE-28654
             Project: Hive
          Issue Type: Bug
      Security Level: Public (Viewable by anyone)
            Reporter: Raghav Aggarwal
            Assignee: Raghav Aggarwal


Running msck repair when partition column is of numeric type and a default 
partition is present (__HIVE_DEFAULT_PARTITION__) then msck repair fails with 
the following stacktrace.
{code:java}
2024-12-02 22:17:30,338 ERROR operation.SQLOperation: Error running hive query
org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: 
FAILED: Execution Error, return code 40000 from 
org.apache.hadoop.hive.ql.ddl.DDLTask. For input string: 
"__HIVE_DEFAULT_PARTITION__"; Query ID: 
raghav_20241202221730_e80f5ee6-dbc6-4241-8302-e76a52ebc75b
    at 
org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:376)
    at 
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:247)
    at 
org.apache.hive.service.cli.operation.SQLOperation.access$500(SQLOperation.java:88)
    at 
org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:334)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899)
    at 
org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:354)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.NumberFormatException: For input string: 
"__HIVE_DEFAULT_PARTITION__"
    at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at 
org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils.getNormalisedPartitionValue(MetaStoreServerUtils.java:1644)
    at 
org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils.getPartitionName(MetaStoreServerUtils.java:1623)
    at 
org.apache.hadoop.hive.metastore.HiveMetaStoreChecker.findUnknownPartitions(HiveMetaStoreChecker.java:447)
    at 
org.apache.hadoop.hive.metastore.HiveMetaStoreChecker.checkTable(HiveMetaStoreChecker.java:405)
    at 
org.apache.hadoop.hive.metastore.HiveMetaStoreChecker.checkTable(HiveMetaStoreChecker.java:290)
    at 
org.apache.hadoop.hive.metastore.HiveMetaStoreChecker.checkMetastore(HiveMetaStoreChecker.java:164)
    at org.apache.hadoop.hive.metastore.Msck.repair(Msck.java:144)
    at 
org.apache.hadoop.hive.ql.ddl.misc.msck.MsckOperation.execute(MsckOperation.java:78)
    at org.apache.hadoop.hive.ql.ddl.DDLTask.execute(DDLTask.java:84)
    at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:214)
    at 
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:105)
    at org.apache.hadoop.hive.ql.Executor.launchTask(Executor.java:354)
    at org.apache.hadoop.hive.ql.Executor.launchTasks(Executor.java:327)
    at org.apache.hadoop.hive.ql.Executor.runTasks(Executor.java:244)
    at org.apache.hadoop.hive.ql.Executor.execute(Executor.java:105)
    at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:346)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:190)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:143)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:138)
    at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:190)
    at 
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:234)
    ... 11 more
 {code}
Here are steps to reproduce the issue and also wrote 2 q files for same. 
Present in the PR:
{code:java}
create database raghav;
use raghav;

create table t1 (id int, name string) partitioned by (month int, day int) 
stored as orc;

insert into t1 values(1, 'aaa', 11, 2);
insert into t1 values(2, 'bbb', 12, 3);
insert into t1 (id, name, month) values(3, 'ccc', 12);
select * from t1;

--create t2 table as same location of table t1 

create table t2 (id int, name string) partitioned by (month int, day int) 
stored as orc LOCATION 'hdfs://localhost:9000/user/hive/warehouse/raghav.db/t1';
msck repair table t2; {code}



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

Reply via email to