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

Hive QA commented on HIVE-9580:
-------------------------------



{color:red}Overall{color}: -1 at least one tests failed

Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12723937/HIVE-9580.patch

{color:red}ERROR:{color} -1 due to 25 failed/errored test(s), 8666 tests 
executed
*Failed tests:*
{noformat}
TestMinimrCliDriver-bucketmapjoin6.q-constprog_partitioner.q-infer_bucket_sort_dyn_part.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-external_table_with_space_in_location_path.q-infer_bucket_sort_merge.q-auto_sortmerge_join_16.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-groupby2.q-import_exported_table.q-bucketizedhiveinputformat.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-index_bitmap3.q-stats_counter_partitioned.q-temp_table_external.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-infer_bucket_sort_map_operators.q-join1.q-bucketmapjoin7.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-infer_bucket_sort_num_buckets.q-disable_merge_for_bucketing.q-uber_reduce.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-infer_bucket_sort_reducers_power_two.q-scriptfile1.q-scriptfile1_win.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-leftsemijoin_mr.q-load_hdfs_file_with_space_in_the_name.q-root_dir_external_table.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-list_bucket_dml_10.q-bucket_num_reducers.q-bucket6.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-load_fs2.q-file_with_header_footer.q-ql_rewrite_gbtoidx_cbo_1.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-parallel_orderby.q-reduce_deduplicate.q-ql_rewrite_gbtoidx_cbo_2.q-and-1-more
 - did not produce a TEST-*.xml file
TestMinimrCliDriver-ql_rewrite_gbtoidx.q-smb_mapjoin_8.q - did not produce a 
TEST-*.xml file
TestMinimrCliDriver-schemeAuthority2.q-bucket4.q-input16_cc.q-and-1-more - did 
not produce a TEST-*.xml file
org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_auto_sortmerge_join_2
org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_vector_char_mapjoin1
org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_vector_varchar_mapjoin1
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver_mapjoin_decimal
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver_vector_char_mapjoin1
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver_vector_varchar_mapjoin1
org.apache.hadoop.hive.cli.TestNegativeMinimrCliDriver.testNegativeCliDriver_minimr_broken_pipe
org.apache.hadoop.hive.cli.TestSparkCliDriver.testCliDriver_mapjoin_decimal
org.apache.hadoop.hive.thrift.TestHadoop20SAuthBridge.testMetastoreProxyUser
org.apache.hadoop.hive.thrift.TestHadoop20SAuthBridge.testSaslWithHiveMetaStore
org.apache.hive.jdbc.TestSSL.testSSLFetchHttp
org.apache.hive.spark.client.TestSparkClient.testSyncRpc
{noformat}

Test results: 
http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/3343/testReport
Console output: 
http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/3343/console
Test logs: 
http://ec2-174-129-184-35.compute-1.amazonaws.com/logs/PreCommit-HIVE-TRUNK-Build-3343/

Messages:
{noformat}
Executing org.apache.hive.ptest.execution.PrepPhase
Executing org.apache.hive.ptest.execution.ExecutionPhase
Executing org.apache.hive.ptest.execution.ReportingPhase
Tests exited with: TestsFailedException: 25 tests failed
{noformat}

This message is automatically generated.

ATTACHMENT ID: 12723937 - PreCommit-HIVE-TRUNK-Build

> Server returns incorrect result from JOIN ON VARCHAR columns
> ------------------------------------------------------------
>
>                 Key: HIVE-9580
>                 URL: https://issues.apache.org/jira/browse/HIVE-9580
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>    Affects Versions: 0.12.0, 0.13.0, 0.14.0
>            Reporter: Mike
>            Assignee: Aihua Xu
>         Attachments: HIVE-9580.patch
>
>
> The database erroneously returns rows when joining two tables which each 
> contain a VARCHAR column and the join's ON condition uses the equality 
> operator on the VARCHAR columns.
> ******The following JDBC method exhibits the problem:
>       static void joinIssue() 
>               throws SQLException {
>               
>               String sql;
>               int rowsAffected;
>               ResultSet rs;
>               Statement stmt = con.createStatement();
>               String table1_Name = "blahtab1";
>               String table1A_Name = "blahtab1A";
>               String table1B_Name = "blahtab1B";
>               String table2_Name = "blahtab2";
>               
>               try {
>                       sql = "drop table " + table1_Name;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("Drop table error:" + se.getMessage());
>               }
>               try {
>                       sql = "CREATE TABLE " + table1_Name + "(" +
>                                               "VCHARCOL VARCHAR(10) " +
>                                               ",INTEGERCOL INT " +
>                                       ") "
>                       ;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("create table error:" + se.getMessage());
>               }
>                       
>               sql = "insert into " + table1_Name + " values ('jklmnopqrs', 
> 99)";
>               System.out.println("\nsql=" + sql);
>               stmt.executeUpdate(sql);
>               
>               
> System.out.println("=======================================================================================================================================");
>               
>               try {
>                       sql = "drop table " + table1A_Name;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("Drop table error:" + se.getMessage());
>               }
>               try {
>                       sql = "CREATE TABLE " + table1A_Name + "(" +
>                                               "VCHARCOL VARCHAR(10) " +
>                                       ") "
>                       ;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("create table error:" + se.getMessage());
>               }
>                       
>               sql = "insert into " + table1A_Name + " values ('jklmnopqrs')";
>               System.out.println("\nsql=" + sql);
>               stmt.executeUpdate(sql);
>               
> System.out.println("=======================================================================================================================================");
>               
>               try {
>                       sql = "drop table " + table1B_Name;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("Drop table error:" + se.getMessage());
>               }
>               try {
>                       sql = "CREATE TABLE " + table1B_Name + "(" +
>                                               "VCHARCOL VARCHAR(11) " +
>                                               ",INTEGERCOL INT " +
>                                       ") "
>                       ;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("create table error:" + se.getMessage());
>               }
>                       
>               sql = "insert into " + table1B_Name + " values ('jklmnopqrs', 
> 99)";
>               System.out.println("\nsql=" + sql);
>               stmt.executeUpdate(sql);
>               
>               
> System.out.println("=======================================================================================================================================");
>               
>               try {
>                       sql = "drop table " + table2_Name;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("Drop table error:" + se.getMessage());
>               }
>               try {
>                       sql = "CREATE TABLE " + table2_Name + "(" +
>                                               "VCHARCOL VARCHAR(30) " +
>                                       ") "
>                                       ;
>                       System.out.println("\nsql=" + sql);
>                       rowsAffected = stmt.executeUpdate(sql);
>               }
>               catch (SQLException se) {
>                       println("create table error:" + se.getMessage());
>               }
>               sql = "insert into " + table2_Name + " values ('jklmnopqrsX')";
>               System.out.println("\nsql=" + sql);
>               stmt.executeUpdate(sql);
>       
>               
> System.out.println("=======================================================================================================================================");
>               
>               sql = "select * from " + table1_Name;
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
> System.out.println("=======================================================================================================================================");
>               sql = "select * from " + table1A_Name;
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
>               
> System.out.println("=======================================================================================================================================");
>               sql = "select * from " + table1B_Name;
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
> System.out.println("=======================================================================================================================================");
>               
>               sql = "select * from " + table2_Name;
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
> System.out.println("=======================================================================================================================================");
>               
>               sql = "SELECT " + 
>                               table1_Name + ".VCHARCOL, " + 
>                               table2_Name + ".VCHARCOL " +
>                               "FROM " + table1_Name + " JOIN " + table2_Name 
> + 
>                                       " ON (" + table1_Name + ".VCHARCOL = " 
> + table2_Name + ".VCHARCOL)";
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
> System.out.println("=======================================================================================================================================");
>               
>               sql = "SELECT " + 
>                               table1_Name + ".VCHARCOL, " + 
>                               table2_Name + ".VCHARCOL " +
>                               "FROM " + table2_Name + " JOIN " + table1_Name 
> + 
>                                       " ON (" + table2_Name + ".VCHARCOL = " 
> + table1_Name + ".VCHARCOL)";
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
>               
> System.out.println("=======================================================================================================================================");
>               
>               sql = "SELECT " + 
>                               table1A_Name + ".VCHARCOL, " + 
>                               table2_Name + ".VCHARCOL " +
>                               "FROM " + table1A_Name + " JOIN " + table2_Name 
> + 
>                                       " ON (" + table1A_Name + ".VCHARCOL = " 
> + table2_Name + ".VCHARCOL)";
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>               
> System.out.println("=======================================================================================================================================");
>               
>               sql = "SELECT " + 
>                               table1B_Name + ".VCHARCOL, " + 
>                               table2_Name + ".VCHARCOL " +
>                               "FROM " + table1B_Name + " JOIN " + table2_Name 
> + 
>                                       " ON (" + table1B_Name + ".VCHARCOL = " 
> + table2_Name + ".VCHARCOL)";
>               System.out.println("\nsql=" + sql);
>               rs = stmt.executeQuery(sql);
>               dispResultSet(rs, true, true);
>       
>               stmt.close();
>       }
> ******The output generated by program run is as follows (for 0.13):
> sql=drop table blahtab1
> sql=CREATE TABLE blahtab1(VCHARCOL VARCHAR(10) ,INTEGERCOL INT ) 
> sql=insert into blahtab1 values ('jklmnopqrs', 99)
> =======================================================================================================================================
> sql=drop table blahtab1A
> sql=CREATE TABLE blahtab1A(VCHARCOL VARCHAR(10) ) 
> sql=insert into blahtab1A values ('jklmnopqrs')
> =======================================================================================================================================
> sql=drop table blahtab1B
> sql=CREATE TABLE blahtab1B(VCHARCOL VARCHAR(11) ,INTEGERCOL INT ) 
> sql=insert into blahtab1B values ('jklmnopqrs', 99)
> =======================================================================================================================================
> sql=drop table blahtab2
> sql=CREATE TABLE blahtab2(VCHARCOL VARCHAR(30) ) 
> sql=insert into blahtab2 values ('jklmnopqrsX')
> =======================================================================================================================================
> sql=select * from blahtab1
> vcharcol(10):jklmnopqrs|integercol(10):99|
> Num rows in result set = 1
> =======================================================================================================================================
> sql=select * from blahtab1A
> vcharcol(10):jklmnopqrs|
> Num rows in result set = 1
> =======================================================================================================================================
> sql=select * from blahtab1B
> vcharcol(11):jklmnopqrs|integercol(10):99|
> Num rows in result set = 1
> =======================================================================================================================================
> sql=select * from blahtab2
> vcharcol(30):jklmnopqrsX|
> Num rows in result set = 1
> =======================================================================================================================================
> sql=SELECT blahtab1.VCHARCOL, blahtab2.VCHARCOL FROM blahtab1 JOIN blahtab2 
> ON (blahtab1.VCHARCOL = blahtab2.VCHARCOL)
> vcharcol(10):jklmnopqrs|vcharcol(30):jklmnopqrsX|
> Num rows in result set = 1
> =======================================================================================================================================
> sql=SELECT blahtab1.VCHARCOL, blahtab2.VCHARCOL FROM blahtab2 JOIN blahtab1 
> ON (blahtab2.VCHARCOL = blahtab1.VCHARCOL)
> Num rows in result set = 0
> =======================================================================================================================================
> sql=SELECT blahtab1A.VCHARCOL, blahtab2.VCHARCOL FROM blahtab1A JOIN blahtab2 
> ON (blahtab1A.VCHARCOL = blahtab2.VCHARCOL)
> Num rows in result set = 0
> =======================================================================================================================================
> sql=SELECT blahtab1B.VCHARCOL, blahtab2.VCHARCOL FROM blahtab1B JOIN blahtab2 
> ON (blahtab1B.VCHARCOL = blahtab2.VCHARCOL)
> Num rows in result set = 0
> ******The server should NOT return any rows for the following query, but it 
> does:
> SELECT blahtab1.VCHARCOL, blahtab2.VCHARCOL FROM blahtab1 JOIN blahtab2 ON 
> (blahtab1.VCHARCOL = blahtab2.VCHARCOL)
> Result:
> vcharcol(10):jklmnopqrs|vcharcol(30):jklmnopqrsX|
> Num rows in result set = 1



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to