diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java index c3f2e99..73b95d9 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -7228,7 +7228,7 @@ public void validateTableCols(Table table, List colNames) throws MetaExc for (String colName : colNames) { boolean foundCol = false; for (FieldSchema mCol : colList) { - if (mCol.getName().equals(colName.trim())) { + if (mCol.getName().equals(colName)) { foundCol = true; break; } diff --git a/ql/src/test/queries/clientpositive/column_names_with_leading_and_trailing_spaces.q b/ql/src/test/queries/clientpositive/column_names_with_leading_and_trailing_spaces.q index 169088d..df2fe40 100644 --- a/ql/src/test/queries/clientpositive/column_names_with_leading_and_trailing_spaces.q +++ b/ql/src/test/queries/clientpositive/column_names_with_leading_and_trailing_spaces.q @@ -1,11 +1,16 @@ set hive.mapred.mode=nonstrict; +set hive.stats.column.autogather=true; create table space (` left` string, ` middle ` string, `right ` string); desc formatted space; +desc formatted space ` left`; + insert into space values ("1", "2", "3"); +desc formatted space ` left`; + select * from space; insert into space (` middle `) values("2"); diff --git a/ql/src/test/results/clientpositive/column_names_with_leading_and_trailing_spaces.q.out b/ql/src/test/results/clientpositive/column_names_with_leading_and_trailing_spaces.q.out index 61a4944..bc9258f 100644 --- a/ql/src/test/results/clientpositive/column_names_with_leading_and_trailing_spaces.q.out +++ b/ql/src/test/results/clientpositive/column_names_with_leading_and_trailing_spaces.q.out @@ -42,6 +42,16 @@ Bucket Columns: [] Sort Columns: [] Storage Desc Params: serialization.format 1 +PREHOOK: query: desc formatted space ` left` +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@space +POSTHOOK: query: desc formatted space ` left` +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@space +# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment + + left string from deserializer +COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"} PREHOOK: query: insert into space values ("1", "2", "3") PREHOOK: type: QUERY PREHOOK: Output: default@space @@ -51,6 +61,16 @@ POSTHOOK: Output: default@space POSTHOOK: Lineage: space. left SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ] POSTHOOK: Lineage: space. middle SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ] POSTHOOK: Lineage: space.right SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ] +PREHOOK: query: desc formatted space ` left` +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@space +POSTHOOK: query: desc formatted space ` left` +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@space +# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment + + left string 0 1 1.0 1 from deserializer +COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\" left\":\"true\",\" middle \":\"true\",\"right \":\"true\"}} PREHOOK: query: select * from space PREHOOK: type: QUERY PREHOOK: Input: default@space