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

tanghui updated HIVE-26158:
---------------------------
    Description: 
After the patch is updated, the partition table location and hdfs data 
directory are displayed normally, but the partition location of the table in 
the SDS in the Hive metabase is still displayed as the location of the old 
table, resulting in no data in the query partition.

 

in beeline:

------------------------------------------------------------

set hive.create.as.external.legacy=true;

CREATE TABLE part_test(
c1 string
,c2 string
)PARTITIONED BY (dat string)

insert into part_test values ("11","th","20220101")
insert into part_test values ("22","th","20220102")

alter table part_test rename to part_test11;

--this result is null.
select * from part_test11 where dat="20220101";
||part_test.c1||part_test.c2||part_test.dat||
| | | |


---------------------------------------------------------------------------------------------

SDS in the Hive metabase:
select SDS.LOCATION from TBLS,SDS where TBLS.TBL_NAME="part_test11" AND 
TBLS.TBL_ID=SDS.CD_ID;

---------------------------------------------------------------------------------------------------
|LOCATION|
|hdfs://nameservice1/warehouse/tablespace/external/hive/part_test11|
|hdfs://nameservice1/warehouse/tablespace/external/hive/part_test/dat=20220101|
|hdfs://nameservice1/warehouse/tablespace/external/hive/part_test/dat=20220102|

---------------------------------------------------------------------------------------------------

 

We need to modify the partition location of the table in SDS to ensure that the 
query results are normal

  was:
After the patch is updated, the partition table location and hdfs data 
directory are displayed normally, but the partition location of the table in 
the SDS in the Hive metabase is still displayed as the location of the old 
table, resulting in no data in the query partition.

 

in beeline:

------------------------------------------------------------

set hive.create.as.external.legacy=true;

CREATE TABLE part_test(
c1 string
,c2 string
)PARTITIONED BY (dat string)

insert into part_test values ("11","th","20220101")
insert into part_test values ("22","th","20220102")

alter table part_test rename to part_test11;

--this resulting in no data in the query partition.
select * from part_test11 where dat="20220101";
---------------------------------------------------------------------------------------------

SDS in the Hive metabase:
select SDS.LOCATION from TBLS,SDS where TBLS.TBL_NAME="part_test11" AND 
TBLS.TBL_ID=SDS.CD_ID;

---------------------------------------------------------------------------------------------------
|LOCATION|
|hdfs://nameservice1/warehouse/tablespace/external/hive/part_test11|
|hdfs://nameservice1/warehouse/tablespace/external/hive/part_test/dat=20220101|
|hdfs://nameservice1/warehouse/tablespace/external/hive/part_test/dat=20220102|

---------------------------------------------------------------------------------------------------

 

We need to modify the partition location of the table in SDS to ensure that the 
query results are normal


> TRANSLATED_TO_EXTERNAL partition tables cannot query partition data after 
> rename table
> --------------------------------------------------------------------------------------
>
>                 Key: HIVE-26158
>                 URL: https://issues.apache.org/jira/browse/HIVE-26158
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 4.0.0, 4.0.0-alpha-1, 4.0.0-alpha-2
>            Reporter: tanghui
>            Priority: Major
>
> After the patch is updated, the partition table location and hdfs data 
> directory are displayed normally, but the partition location of the table in 
> the SDS in the Hive metabase is still displayed as the location of the old 
> table, resulting in no data in the query partition.
>  
> in beeline:
> ------------------------------------------------------------
> set hive.create.as.external.legacy=true;
> CREATE TABLE part_test(
> c1 string
> ,c2 string
> )PARTITIONED BY (dat string)
> insert into part_test values ("11","th","20220101")
> insert into part_test values ("22","th","20220102")
> alter table part_test rename to part_test11;
> --this result is null.
> select * from part_test11 where dat="20220101";
> ||part_test.c1||part_test.c2||part_test.dat||
> | | | |
> ---------------------------------------------------------------------------------------------
> SDS in the Hive metabase:
> select SDS.LOCATION from TBLS,SDS where TBLS.TBL_NAME="part_test11" AND 
> TBLS.TBL_ID=SDS.CD_ID;
> ---------------------------------------------------------------------------------------------------
> |LOCATION|
> |hdfs://nameservice1/warehouse/tablespace/external/hive/part_test11|
> |hdfs://nameservice1/warehouse/tablespace/external/hive/part_test/dat=20220101|
> |hdfs://nameservice1/warehouse/tablespace/external/hive/part_test/dat=20220102|
> ---------------------------------------------------------------------------------------------------
>  
> We need to modify the partition location of the table in SDS to ensure that 
> the query results are normal



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to