[ https://issues.apache.org/jira/browse/HIVE-4271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628544#comment-13628544 ]
Hudson commented on HIVE-4271: ------------------------------ Integrated in Hive-trunk-h0.21 #2055 (See [https://builds.apache.org/job/Hive-trunk-h0.21/2055/]) HIVE-4271 : Limit precision of decimal type (Gunther Hagleitner via Ashutosh Chauhan) (Revision 1466305) Result = FAILURE hashutosh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1466305 Files : * /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type * /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java * /hive/trunk/data/files/kv8.txt * /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveBaseResultSet.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAbs.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericOp.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericUnaryOp.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPower.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRound.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFReflect2.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java * /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java * /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q * /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out * /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out * /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out * /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out * /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out * /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/BinarySortableSerDe.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/BigDecimalWritable.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/TimestampWritable.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBigDecimal.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyFactory.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyUtils.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBigDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryBigDecimal.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryFactory.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/BigDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/HiveDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBigDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/SettableBigDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/SettableHiveDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableBigDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantBigDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/TestStatsSerde.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/binarysortable/MyTestClass.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/binarysortable/TestBinarySortableSerDe.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/lazybinary/MyTestClassBigger.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/lazybinary/MyTestClassSmaller.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/lazybinary/TestLazyBinarySerDe.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.java * /hive/trunk/service/src/java/org/apache/hive/service/cli/ColumnValue.java > Limit precision of decimal type > ------------------------------- > > Key: HIVE-4271 > URL: https://issues.apache.org/jira/browse/HIVE-4271 > Project: Hive > Issue Type: Bug > Reporter: Gunther Hagleitner > Assignee: Gunther Hagleitner > Fix For: 0.11.0 > > Attachments: HIVE-4271.1.patch, HIVE-4271.2.patch, HIVE-4271.3.patch, > HIVE-4271.4.patch, HIVE-4271.5.patch > > > The current decimal implementation does not limit the precision of the > numbers. This has a number of drawbacks. A maximum precision would allow us > to: > - Have SerDes/filformats store decimals more efficiently > - Speed up processing by implementing operations w/o generating java > BigDecimals > - Simplify extending the datatype to allow for decimal(p) and decimal(p,s) > - Write a more efficient BinarySortable SerDe for sorting/grouping/joining > Exact numeric datatype are typically used to represent money, so if the limit > is high enough it doesn't really become an issue. > A typical representation would pack 9 decimal digits in 4 bytes. So, with 2 > longs we can represent 36 digits - which is what I propose as the limit. > Final thought: It's easier to restrict this now and have the option to do the > things above than to try to do so once people start using the datatype. -- 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