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

Support alternate table types for HiveServer2

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.10.0
    • 0.12.0
    • HiveServer2, JDBC
    • None
    • Hide
      Adds new config parameter that needs to be documented:

      <property>
        <name>hive.server2.table.type.mapping</name>
        <value>HIVE</value>
        <description>
         This setting reflects how HiveServer will report the table types for JDBC and other
         client implementations that retrieves the available tables and supported table types
           HIVE : Exposes the hive's native table tyes like MANAGED_TABLE, EXTERNAL_TABLE, VIRTUAL_VIEW
           CLASSIC : More generic types like TABLE and VIEW
        </description>
      </property>
      Show
      Adds new config parameter that needs to be documented: <property>   <name>hive.server2.table.type.mapping</name>   <value>HIVE</value>   <description>    This setting reflects how HiveServer will report the table types for JDBC and other    client implementations that retrieves the available tables and supported table types      HIVE : Exposes the hive's native table tyes like MANAGED_TABLE, EXTERNAL_TABLE, VIRTUAL_VIEW      CLASSIC : More generic types like TABLE and VIEW   </description> </property>

    Description

      The getTables jdbc function no longer returns information when using normal JDBC table types like TABLE or VIEW. You must now use a more specific type such as MANAGED_TABLE or VIRTUAL_VIEW. An example application that will fail to return results against 0.10 is below, works without issue in 0.9. In my 0.10 test I used HS2.

      import java.sql.SQLException;
      import java.sql.Connection;
      import java.sql.ResultSet;
      import java.sql.Statement;
      import java.sql.DriverManager;
      import org.apache.hive.jdbc.HiveDriver;
      import java.sql.DatabaseMetaData;
      
      public class TestGet {
        private static String driverName = "org.apache.hive.jdbc.HiveDriver";
      
        /**
       * @param args
       * @throws SQLException
         */
        public static void main(String[] args) throws SQLException {
            try {
            Class.forName(driverName);
          } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.exit(1);
          }
          Connection con = DriverManager.getConnection("jdbc:hive2://hostname:10000/default");
          DatabaseMetaData dbmd = con.getMetaData();
          String[] types = {"TABLE"};
          ResultSet rs = dbmd.getTables(null, null, "%", types);
            while (rs.next()) {
              System.out.println(rs.getString("TABLE_NAME"));
            }
          }
        }
      }
      

      Attachments

        1. HIVE-4573.1.patch
          17 kB
          Prasad Suresh Mujumdar
        2. HIVE-4573.2.patch
          18 kB
          Prasad Suresh Mujumdar

        Issue Links

          Activity

            People

              prasadm Prasad Suresh Mujumdar
              johndee Johndee Burks
              Votes:
              0 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: