hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carl Steinbach (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HIVE-4573) JDBC Compliance getTables
Date Fri, 17 May 2013 07:17:16 GMT

    [ https://issues.apache.org/jira/browse/HIVE-4573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13660422#comment-13660422
] 

Carl Steinbach edited comment on HIVE-4573 at 5/17/13 7:15 AM:
---------------------------------------------------------------

bq. The getTables jdbc function no longer returns information when using normal JDBC table
types like TABLE or VIEW.

It's not good that the behavior has changed between versions, nor that we're pretty clearly
violating the principle of least astonishment for no good reason. At the same time it's unfair
to say that the driver doesn't use "normal JDBC table types" because JDBC doesn't define any
"normal table types". This also helps to explain why  DatabaseMetaData.getTableTypes() exists.
                
      was (Author: cwsteinbach):
    bq. The getTables jdbc function no longer returns information when using normal JDBC table
types like TABLE or VIEW.

It's not good that the behavior has changed between versions, nor that we're pretty clearly
violating the principle of least astonishment for not good reason. At the same time though
it's unfair to say that the driver doesn't use "normal JDBC table types" because JDBC doesn't
define any "normal table types". This also helps to explain why  DatabaseMetaData.getTableTypes()
exists.
                  
> JDBC Compliance getTables
> -------------------------
>
>                 Key: HIVE-4573
>                 URL: https://issues.apache.org/jira/browse/HIVE-4573
>             Project: Hive
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 0.10.0
>            Reporter: Johndee Burks
>            Priority: Minor
>
> 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"));
>       }
>     }
>   }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message