You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by Chaoyu Tang <ct...@gmail.com> on 2014/11/24 22:12:11 UTC
Review Request 28403: HIVE-8889:JDBC Driver ResultSet.getXXXXXX(String
columnLabel) methods Broken
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28403/
-----------------------------------------------------------
Review request for hive, Ashutosh Chauhan, Prasad Mujumdar, and Szehon Ho.
Repository: hive-git
Description
-------
For JDBC application using query like select * , the columnLabel in ResultSet.getXXX(String columnLabel) has to be a full-qualified name (e.g. tableName.colName) unless you set the hive.resultset.use.unique.column.names to false, but this setting will break other cases which require the qualified name (see HIVE-6687).
I think Hive JDBC should not flip the support only to shortname or qualified name in getXXX(columnName) depending on a property, instead it should support both at same time like that in MySQL. For example, for queries to a table or view like following:
a)select * from src
b)select key from src
c)select * from srcview
d)select key from srcview
getXXX(key) and getXXX(src.key) (or getXXX(srcview.key)) should all work.
The changes in this patch include:
1. findColumn in HiveBaseResultSet will find a column either by short name or qualified name
2. HS2 always returns the qualified column name if possible, so remove the property hive.resultset.use.unique.column.names
3. Unit tests
Diffs
-----
common/src/java/org/apache/hadoop/hive/conf/HiveConf.java fafd78e63e9b41c9fdb0e017b567dc719d151784
itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java f2560e2e4793cca11950519708b1a666eb700e50
jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java 8cbf9e7092489a2adb0bc2ba6b5ee38e41c041f8
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java 1953e81e52bd7ada7b7ec750205a8e33edfcd9ae
Diff: https://reviews.apache.org/r/28403/diff/
Testing
-------
1. New test cases in TestJdbcDriver2.java passed
2. pre-committed tests were submitted
Thanks,
Chaoyu Tang
Re: Review Request 28403: HIVE-8889:JDBC Driver
ResultSet.getXXXXXX(String columnLabel) methods Broken
Posted by Brock Noland <br...@cloudera.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28403/#review62871
-----------------------------------------------------------
itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
<https://reviews.apache.org/r/28403/#comment104984>
trim trailing ws
jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java
<https://reviews.apache.org/r/28403/#comment104985>
Can we add a message here like:
"Could not find " + columnName + " in " + normalizedColumnNames
- Brock Noland
On Nov. 24, 2014, 9:12 p.m., Chaoyu Tang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/28403/
> -----------------------------------------------------------
>
> (Updated Nov. 24, 2014, 9:12 p.m.)
>
>
> Review request for hive, Ashutosh Chauhan, Prasad Mujumdar, and Szehon Ho.
>
>
> Repository: hive-git
>
>
> Description
> -------
>
> For JDBC application using query like select * , the columnLabel in ResultSet.getXXX(String columnLabel) has to be a full-qualified name (e.g. tableName.colName) unless you set the hive.resultset.use.unique.column.names to false, but this setting will break other cases which require the qualified name (see HIVE-6687).
> I think Hive JDBC should not flip the support only to shortname or qualified name in getXXX(columnName) depending on a property, instead it should support both at same time like that in MySQL. For example, for queries to a table or view like following:
> a)select * from src
> b)select key from src
> c)select * from srcview
> d)select key from srcview
> getXXX(key) and getXXX(src.key) (or getXXX(srcview.key)) should all work.
>
> The changes in this patch include:
> 1. findColumn in HiveBaseResultSet will find a column either by short name or qualified name
> 2. HS2 always returns the qualified column name if possible, so remove the property hive.resultset.use.unique.column.names
> 3. Unit tests
>
>
> Diffs
> -----
>
> common/src/java/org/apache/hadoop/hive/conf/HiveConf.java fafd78e63e9b41c9fdb0e017b567dc719d151784
> itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java f2560e2e4793cca11950519708b1a666eb700e50
> jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java 8cbf9e7092489a2adb0bc2ba6b5ee38e41c041f8
> ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java 1953e81e52bd7ada7b7ec750205a8e33edfcd9ae
>
> Diff: https://reviews.apache.org/r/28403/diff/
>
>
> Testing
> -------
>
> 1. New test cases in TestJdbcDriver2.java passed
> 2. pre-committed tests were submitted
>
>
> Thanks,
>
> Chaoyu Tang
>
>
Re: Review Request 28403: HIVE-8889:JDBC Driver
ResultSet.getXXXXXX(String columnLabel) methods Broken
Posted by Chaoyu Tang <ct...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28403/
-----------------------------------------------------------
(Updated Nov. 28, 2014, 6:04 p.m.)
Review request for hive, Ashutosh Chauhan, Prasad Mujumdar, and Szehon Ho.
Changes
-------
Update patch to limit the change in Hive JDBC driver.
Repository: hive-git
Description (updated)
-------
For JDBC application using query like select * , the columnLabel in ResultSet.getXXX(String columnLabel) has to be a full-qualified name (e.g. tableName.colName) unless you set the hive.resultset.use.unique.column.names to false, but this setting will break other cases which require the qualified name (see HIVE-6687).
This patch supports Hive JDBC ResultSet.getXXX(key) works for queries like following when hive.resultset.use.unique.column.names is true:
a)select * from src
b)select key from src
c)select * from srcview
d)select key from srcview.
The changes in this patch include:
1. findColumn in HiveBaseResultSet will find a column either by short name or qualified name
2. Unit tests
Diffs (updated)
-----
itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java f2560e2e4793cca11950519708b1a666eb700e50
jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java 8cbf9e7092489a2adb0bc2ba6b5ee38e41c041f8
Diff: https://reviews.apache.org/r/28403/diff/
Testing
-------
1. New test cases in TestJdbcDriver2.java passed
2. pre-committed tests were submitted
Thanks,
Chaoyu Tang
Re: Review Request 28403: HIVE-8889:JDBC Driver
ResultSet.getXXXXXX(String columnLabel) methods Broken
Posted by Chaoyu Tang <ct...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28403/
-----------------------------------------------------------
(Updated Nov. 24, 2014, 10:44 p.m.)
Review request for hive, Ashutosh Chauhan, Prasad Mujumdar, and Szehon Ho.
Changes
-------
Revised based on Brock's review comments
Repository: hive-git
Description
-------
For JDBC application using query like select * , the columnLabel in ResultSet.getXXX(String columnLabel) has to be a full-qualified name (e.g. tableName.colName) unless you set the hive.resultset.use.unique.column.names to false, but this setting will break other cases which require the qualified name (see HIVE-6687).
I think Hive JDBC should not flip the support only to shortname or qualified name in getXXX(columnName) depending on a property, instead it should support both at same time like that in MySQL. For example, for queries to a table or view like following:
a)select * from src
b)select key from src
c)select * from srcview
d)select key from srcview
getXXX(key) and getXXX(src.key) (or getXXX(srcview.key)) should all work.
The changes in this patch include:
1. findColumn in HiveBaseResultSet will find a column either by short name or qualified name
2. HS2 always returns the qualified column name if possible, so remove the property hive.resultset.use.unique.column.names
3. Unit tests
Diffs (updated)
-----
common/src/java/org/apache/hadoop/hive/conf/HiveConf.java fafd78e63e9b41c9fdb0e017b567dc719d151784
itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java f2560e2e4793cca11950519708b1a666eb700e50
jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java 8cbf9e7092489a2adb0bc2ba6b5ee38e41c041f8
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java 1953e81e52bd7ada7b7ec750205a8e33edfcd9ae
Diff: https://reviews.apache.org/r/28403/diff/
Testing
-------
1. New test cases in TestJdbcDriver2.java passed
2. pre-committed tests were submitted
Thanks,
Chaoyu Tang