Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-12506

SHOW CREATE TABLE command creates a table that does not work for RCFile format

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.1
    • Fix Version/s: 2.0.0
    • Labels:
      None

      Description

      See the following test case:

      1) Create a table with RCFile format:

      DROP TABLE IF EXISTS test;
      CREATE TABLE test (a int) PARTITIONED BY (p int)
      ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
      STORED AS RCFILE;
      

      2) run "DESC FORMATTED test"

      # Storage Information
      SerDe Library:      	org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe
      InputFormat:        	org.apache.hadoop.hive.ql.io.RCFileInputFormat
      OutputFormat:       	org.apache.hadoop.hive.ql.io.RCFileOutputFormat
      

      shows that SerDe used is "ColumnarSerDe"

      3) run "SHOW CREATE TABLE" and get the output:

      CREATE TABLE `test`(
        `a` int)
      PARTITIONED BY (
        `p` int)
      ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '|'
      STORED AS INPUTFORMAT
        'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
      OUTPUTFORMAT
        'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
      LOCATION
        'hdfs://node5.lab.cloudera.com:8020/user/hive/warehouse/case_78732.db/test'
      TBLPROPERTIES (
        'transient_lastDdlTime'='1448343875')
      

      Note that there is no mention of "ColumnarSerDe"

      4) Drop the table and then create the table again using the output from 3)

      5) Check the output of "DESC FORMATTED test"

      # Storage Information
      SerDe Library:      	org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
      InputFormat:        	org.apache.hadoop.hive.ql.io.RCFileInputFormat
      OutputFormat:       	org.apache.hadoop.hive.ql.io.RCFileOutputFormat
      

      The SerDe falls back to "LazySimpleSerDe", which is not correct.

      Any further query tries to INSERT or SELECT this table will fail with errors

      I suspect that we can't specify ROW FORMAT DELIMITED with ROW FORMAT SERDE at the same time at table creation, this causes confusion to end users as copy table structure using "SHOW CREATE TABLE" will not work.

        Attachments

        1. HIVE-12506.patch
          7 kB
          Chaoyu Tang
        2. HIVE-12506.patch
          7 kB
          Chaoyu Tang
        3. HIVE-12506.branch-1.patch
          7 kB
          Chaoyu Tang

          Activity

            People

            • Assignee:
              ctang Chaoyu Tang
              Reporter:
              ericlin Eric Lin
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: