It is not allowed to modify 'kudu.table_name' table property for managed Kudu tables since https://issues.apache.org/jira/browse/IMPALA-5654
Meanwhile, it is valid to modify this property on external Kudu tables.
There is one scenario when the user changes a managed table to be external and change the 'kudu.table_name' in the same step, that is actually rejected by Impala/Catalog. However, this should be a valid scenario.
1) Create a managed Kudu table: my_table1 (Kudu table name: impala::db_name.my_table1)
2) Create another managed Kudu table: my_table2 (impala::db_name.my_table2)
3) Alter my_table2 to external and point it's kudu.table_name to my_table1 in the same step:
alter table my_table2 set tblproperties('EXTERNAL'='TRUE', 'kudu.table_name'='impala::db_name.my_table1');
Error is displayed here saying that the table already exists as Impala tries to change the kudu.table_name first before modifying the table to external.
Note, that executing this in 2 steps succeeds:
1) 2) Same as above
3) alter table my_table2 set tblproperties('EXTERNAL'='TRUE');
4) alter table my_table2 set tblproperties('kudu.table_name'='impala::db_name.my_table1');
private void alterTableSetTblProperties
This code tries to modify kudu.table_name and expects it to be unique. However, if we also change the table from managed to external then we should allow to change.