-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33171/
-----------------------------------------------------------
(Updated April 27, 2015, 4:58 p.m.)
Review request for hive, Ashutosh Chauhan, Szehon Ho, and Xuefu Zhang.
Changes
-------
Based on Xuefu's and Jimmy's feedback, I made the following changes:
1. Removed the property "hive.partition.check.column.type" which was intended
to replace "hive.typecheck.on.insert", and continue using the old one
"hive.typecheck.on.insert", but extend its control to other partition
operations such as alter/describe instead of only insert. The purpose is to
avoid the incompatibility though the old property name is a little confusing.
2. Removed the property "hive.partition.check.old.column.type.in.rename" which
was intended to control the type check of the column in old partition spec in
alter table partition rename. The purpose is to avoid introducing new property
to Hive as much as we can.
Bugs: HIVE-10307
https://issues.apache.org/jira/browse/HIVE-10307
Repository: hive-git
Description
-------
Data types like TinyInt, SmallInt, BigInt or Decimal can be expressed as
literals with postfix like Y, S, L, or BD appended to the number. These
literals work in most Hive queries, but do not when they are used as partition
column value. This patch is to address the issue of number literals used in
partition specification.
Highlights of the changes:
1. Validate, convert and normalize the partVal in partSpec to match its column
type when hive.partition.check.column.type is set to true (default). It not
only applies to opertion insert which used to be controlled by
"hive.typecheck.on.insert", but also for other partition operations (e.g. alter
table .. partition, partition statistics etc). The hive.typecheck.on.insert is
now removed.
2. Convert and normalize legacy partition column data by using alter table
partition .. rename with hive.partition.check.old.column.type.in.rename set to
true. this property only allows the partVal in old PartSpec to skip the type
check, conversion in partition rename.
Diffs (updated)
-----
common/src/java/org/apache/hadoop/hive/conf/HiveConf.java e138800
ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java 19234b5
ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
e8066be
ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java 8302067
ql/src/test/queries/clientpositive/alter_partition_coltype.q 8c9945c
ql/src/test/queries/clientpositive/partition_coltype_literals.q PRE-CREATION
ql/src/test/results/clientnegative/archive_partspec1.q.out da4817c
ql/src/test/results/clientnegative/archive_partspec5.q.out c18de52
ql/src/test/results/clientpositive/partition_coltype_literals.q.out
PRE-CREATION
ql/src/test/results/clientpositive/partition_timestamp.q.out bc6ab10
ql/src/test/results/clientpositive/partition_timestamp2.q.out 365df69
Diff: https://reviews.apache.org/r/33171/diff/
Testing
-------
1. Manaully tests covering various number literals (Y, S, L, BD)
2. new qfile test (partition_coltype_literals.q)
3. Precommit build
Thanks,
Chaoyu Tang