[ 
https://issues.apache.org/jira/browse/HIVE-25813?focusedWorklogId=812759&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-812759
 ]

ASF GitHub Bot logged work on HIVE-25813:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 28/Sep/22 06:43
            Start Date: 28/Sep/22 06:43
    Worklog Time Spent: 10m 
      Work Description: dengzhhu653 commented on code in PR #3627:
URL: https://github.com/apache/hive/pull/3627#discussion_r982004642


##########
ql/src/java/org/apache/hadoop/hive/ql/ddl/table/create/like/CreateTableLikeOperation.java:
##########
@@ -157,27 +158,12 @@ private void setTableParameters(Table tbl) throws 
HiveException {
     }
     // We should copy only those table parameters that are specified in the 
config.
     SerDeSpec spec = AnnotationUtils.getAnnotation(serdeClass, 
SerDeSpec.class);
-
-    // for non-native table, property storage_handler should be retained
-    retainer.add(META_TABLE_STORAGE);
-    if (spec != null && spec.schemaProps() != null) {
-      retainer.addAll(Arrays.asList(spec.schemaProps()));
-    }
-
-    String paramsStr = HiveConf.getVar(context.getConf(), 
HiveConf.ConfVars.DDL_CTL_PARAMETERS_WHITELIST);
-    if (paramsStr != null) {
-      retainer.addAll(Arrays.asList(paramsStr.split(",")));
-    }
-
-    Map<String, String> params = tbl.getParameters();
-    if (!retainer.isEmpty()) {
-      params.keySet().retainAll(retainer);
-    } else {
-      params.clear();
-    }
+    //With Hive-25813, we'll not copy over table properties from the source.
+    //CTLT should should copy column schema but not table properties. It is 
also consistent with other query engines like mysql, redshift.
+    tbl.getParameters().clear();

Review Comment:
   I'm wondering this would introduce incompatibility, such as discovery 
partitions, compression etc.
   There is also a property `hive.ddl.createtablelike.properties.whitelist`, 
which select the table Properties to copy over in this case.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 812759)
    Time Spent: 1h 40m  (was: 1.5h)

> CREATE TABLE x LIKE storagehandler-based-source fails 
> ------------------------------------------------------
>
>                 Key: HIVE-25813
>                 URL: https://issues.apache.org/jira/browse/HIVE-25813
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Sai Hemanth Gantasala
>            Assignee: Sai Hemanth Gantasala
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> {code:java}
> CREATE EXTERNAL TABLE default.dbs (
>   DB_ID            bigint,
>   DB_LOCATION_URI  string,
>   NAME             string,
>   OWNER_NAME       string,
>   OWNER_TYPE       string )
> STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
> TBLPROPERTIES (
>   'hive.sql.database.type' = 'MYSQL',
>   'hive.sql.jdbc.driver'   = 'com.mysql.jdbc.Driver',
>   'hive.sql.jdbc.url'      = 'jdbc:mysql://localhost:3306/hive1',
>   'hive.sql.dbcp.username' = 'hive1',
>   'hive.sql.dbcp.password' = 'cloudera',
>   'hive.sql.query' = 'SELECT DB_ID, DB_LOCATION_URI, NAME, OWNER_NAME, 
> OWNER_TYPE FROM DBS'
> );
> CREATE TABLE default.dbscopy LIKE default.dbs;
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreUtils.getFieldsFromDeserializer(HiveMetaStoreUtils.java:186)
>  {code}
> With this patch, we don't want to copy over the table properties or any other 
> physical properties (storage handler e.t.c) of the source table when CREATE 
> TABLE LIKE TABLE command is executed. Only table schema (logical properties) 
> should be copied. This implementation is consistent with other SQL engines 
> like Mysql, Redshift etc.



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

Reply via email to